Code source wiki de Créer une VM

Modifié par Kevin FRICK le 2024/04/02 01:17

Afficher les derniers auteurs
1 **Sur [[Touffu>>doc:Infrastructure.Serveurs_physiques.Touffu.WebHome]], [[Laika>>doc:Infrastructure.Serveurs_physiques.Laika.WebHome]], [[Odie>>doc:Infrastructure.Serveurs_physiques.Odie.WebHome]] ou [[Balto>>doc:Infrastructure.Serveurs_physiques.Balto.WebHome]]** (touffu.infra.atilla.org, laika.infra.atilla.org, odie.infra.atilla.org ou balto.infra.atilla.org) :
2
3
4 Créer une nouvelle instance de xen (par exemple) :
5
6 {{code language="bash"}}
7 xen-create-image --hostname=<nom de la VM> --dist=stable --lvm=VMs --dhcp --memory=1G --password=<mot de passe de la VM> --size=5G --swap=256M --vcpus=1
8 {{/code}}
9
10 {{error}}
11 Sur Odie il faut remplacer {{code language="none"}}--lvm=VMs{{/code}} par {{code language="none"}}--lvm=data{{/code}}. Et sur Balto par {{code language="none"}}--lvm==lvm{{/code}}.
12 {{/error}}
13
14 {{warning}}
15 Pour le nom de la VM, ne pas oublier d'y ajouter les suffixes -prod, -preprod, -dev...
16 {{/warning}}
17
18 **Sur [[Bill>>doc:Infrastructure.Serveurs_physiques.Bill.WebHome]] **(root@atilla.org depuis l'extérieur, bill.infra.atilla.org depuis l'intérieur du réseau) :
19
20 Dans /etc/bind/internal, on cherche un slot vide à la bonne adresse IP et on le remplit BIEN (c'est-à-dire qu'on fait attention à bien écrire si on est en prod, preprod, ou dev dans le nom de la VM). On modifie aussi db.10.168.192.in-addr.arpa
21
22 //Si on met le site en ligne ~:// On modifie aussi le fichier db du nom de domaine (db.atilla.org ou db.eistiens.net) dans /etc/bind/internal et dans /etc/bind/external.
23
24 {{info}}
25 Si vous voulez comprendre ce que vous venez de faire, [[cliquez ici>>Infrastructure.Tutoriels.MiseEnPlaceSousDomaine.WebHome||anchor="HIdE9egE9nE9rale"]]
26 {{/info}}
27
28 Dans /etc/dhcp, on trouve tous les DHCP dans chacun des fichiers (prod.conf, dev.conf, ...), on remplit le bon fichier avec l'adresse MAC et l'adresse IP correspondante.
29
30 Ensuite, on restart le système avec :
31
32 {{code language="none"}}
33 systemctl restart isc-dhcp-server.service # pour restart le DHCP
34 systemctl restart bind9 # pour restart le DNS
35 {{/code}}
36
37 **Sur [[Touffu>>doc:Infrastructure.Serveurs_physiques.Touffu.WebHome]], [[Laika>>doc:Infrastructure.Serveurs_physiques.Laika.WebHome]], [[Odie>>doc:Infrastructure.Serveurs_physiques.Odie.WebHome]] ou [[Balto>>doc:Infrastructure.Serveurs_physiques.Balto.WebHome]]** :
38
39 On voit que dans /etc/xen un fichier .cfg a été ajouté automatiquement.
40
41 Dans /etc/xen/auto, on crée un lien symbolique pour notre VM :
42
43 {{code language="none"}}
44 ln -s ../<nom de la VM>.cfg
45 {{/code}}
46
47 On crée ensuite la machine et on se rend sur son interface :
48
49 {{code language="none"}}
50 xl create -c <nom de la VM>.cfg
51 {{/code}}
52
53 **Sur la VM :**
54
55 login : root
56
57 mdp : celui que vous avez mis quand vous avez créé votre VM
58
59 Maintenant qu'on est sur l'interface de notre VM, on installe la base (vim et wget pour installer puppet) :
60
61 {{code language="none"}}
62 apt install vim wget
63 {{/code}}
64
65 On télécharge ensuite le paquet de puppet, et on l'installe :
66
67 {{code language="none"}}
68 wget https://apt.puppet.com/puppet7-release-<debian version>.deb # exemple de debian version : stretch, buster, ...
69 dpkg -i <nom du fichier téléchargé>.deb
70 {{/code}}
71
72 (% class="box infomessage" %)
73 (((
74 Pour chercher la version de debian, on peut regarder le contenu du fichier /etc/debian_version
75 )))
76
77 On update ensuite les paquets disponibles, et on installe l'agent puppet :
78
79 {{code language="none"}}
80 apt-get update
81 apt-get install puppet-agent
82 {{/code}}
83
84 {{warning}}
85 Les exécutables de Puppet ne sont pas dans le ##PATH## par défaut (ces derniers se trouvent dans ##/opt/puppetlabs/bin##). On utilise donc des chemins absolus dans les prochaines étapes. Lors de la première sychronisation avec Puppet, le ##.bashrc## de l'utilisateur ##root## sera mis à jour pour inclure ce chemin dans le ##PATH## par défaut.
86 {{/warning}}
87
88 On démarre ensuite le service de puppet :
89
90 {{code language="none"}}
91 /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
92 {{/code}}
93
94 On connecte ensuite l'agent au serveur de puppet :
95
96 {{code language="none"}}
97 /opt/puppetlabs/bin/puppet ssl bootstrap
98 {{/code}}
99
100 **En  parallèle, sur [[Puppet>>doc:Infrastructure.Puppet.WebHome]]** (puppet.infra.atilla.org) :
101
102 Via la commande précédente, un certificat a été créé, que le serveur doit signer pour que les deux machines puissent communiquer.
103
104 Pour voir la liste des certificats pas signés :
105
106 {{code language="none"}}
107 puppetserver ca list
108 {{/code}}
109
110 Pour signer un certificat précis :
111
112 {{code language="none"}}
113 puppetserver ca sign --certname <nom de la VM>
114 {{/code}}
115
116 Pour signer tous les certificats pas signés :
117
118 {{code language="none"}}
119 puppetserver ca sign --all
120 {{/code}}
121
122 **Sur la VM :**
123
124 Pour vérifier que tout marche bien :
125
126 {{code language="none"}}
127 /opt/puppetlabs/bin/puppet ssl bootstrap
128 {{/code}}
129
130 == Si on veut mettre la VM en ligne : ==
131
132 **Sur [[Bill>>doc:Infrastructure.Serveurs_physiques.Bill.WebHome]] :**
133
134 {{info}}
135 Il existe plusieurs manières de configurer nginx, on en détaille une ici, mais si vous voulez la comprendre ou utiliser l'autre, [[cliquez ici>>Infrastructure.Tutoriels.MiseEnPlaceSousDomaine.WebHome||anchor="HMiseenplacedelaconfigurationNginx"]]
136 {{/info}}
137
138 On crée un nouveau fichier dans /etc/nginx pour la VM (on peut copier sur les autres et adapter le nom).
139
140 On crée un fichier error.log et un fichier access.log dans /var/log/nginx
141
142 On va ensuite dans /etc/nginx/sites-enabled/<nom de domaine qu'on a choisi> et on crée un lien symbolique :
143
144 {{code language="none"}}
145 ln -s ../../sites-available/<DNS de la VM>
146 {{/code}}
147
148 De plus, on ajoute un certificat à l'aide de cette suite de commandes :
149
150 {{code language="none"}}
151 systemctl stop nginx && certbot certonly -d <DNS de la VM> && systemctl start nginx
152 {{/code}}
153
154 {{info}}
155 Si vous voulez comprendre ce que vous venez de faire, [[cliquez ici>>Infrastructure.Tutoriels.MiseEnPlaceSousDomaine.WebHome||anchor="HMiseenplacedescertificatsSSL"]]
156 {{/info}}
157
158
159
160 == ==