Code source wiki de Créer une VM

Version 3.1 par sasportesj le 2021/04/04 00:10

Afficher les derniers auteurs
1 **Sur Touffu** (touffu.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> --mac=<adresse MAC libre> --dist=stable --lvm=VMs --dhcp --memory=1G --password=<mot de passe de la VM> --size=5G --swap=256M --vcpus=1
8 {{/code}}
9
10
11 **Sur Bill **(root@atilla.org depuis l'extérieur, bill.infra.atilla.org depuis l'intérieur du réseau) :
12
13
14 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 et le fichier db du nom de domaine si on met le site en ligne.
15
16 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.
17
18
19 Ensuite, on restart le système avec :
20
21 {{code language="none"}}
22 systemctl restart isc-dhcp-server.service # pour restart le DHCP
23 systemctl restart bind9 # pour restart le DNS
24 {{/code}}
25
26
27 **Sur Touffu :**
28
29
30 On voit que dnas /etc/xen un fichier .cfg a été ajouté automatiquement.
31
32 Dans /etc/xen/auto, on crée un lien symbolique pour notre VM :
33
34 {{code language="none"}}
35 ln -s ../<nom de la VM>.cfg
36 {{/code}}
37
38 On crée ensuite la machine et on se rend sur son interface :
39
40 {{code language="none"}}
41 xl create -c <nom de la VM>.cfg
42 {{/code}}
43
44 **Sur la VM :**
45
46
47 login : root
48
49 mdp : celui que vous avez mis quand vous avez créé votre VM
50
51
52 Maintenant qu'on est sur l'interface de notre VM, on installe la base (vim et wget pour installer puppet) :
53
54 {{code language="none"}}
55 apt install vim wget
56 {{/code}}
57
58 On télécharge ensuite le paquet de puppet, et on l'installe :
59
60 {{code language="none"}}
61 wget https://apt.puppet.com/puppet7-release-<debian version>.deb # exemple de debian version : stretch, buster, ...
62 dpkg -i <nom du fichier téléchargé>.deb
63 {{/code}}
64
65 On update ensuite les paquets disponibles, et on installe l'agent puppet :
66
67 {{code language="none"}}
68 apt-get update
69 apt-get install puppet-agent
70 {{/code}}
71
72 (% class="box warningmessage" %)
73 (((
74 Pour utiliser la commande puppet, on devra maintenant utiliser le lien /opt/puppetlabs/bin/puppet, à moins de mettre à jour le path
75 )))
76
77 On démarre ensuite le service de puppet :
78
79 {{code language="none"}}
80 /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
81 {{/code}}
82
83 On connecte ensuite l'agent au serveur de puppet (à ce jour Milou) :
84
85 {{code language="none"}}
86 /opt/puppetlabs/bin/puppet ssl bootstrap
87 {{/code}}
88
89 **En  parallèle, sur Milou** (milou.infra.atilla.org) :
90
91 Via la commande précédente, un certificat a été créé, que le serveur doit signer pour que les deux machines puissent communiquer.
92
93 Pour voir la liste des certificats pas signés :
94
95 {{code language="none"}}
96 puppetserver ca list
97 {{/code}}
98
99 Pour signer un certificat précis :
100
101 {{code language="none"}}
102 puppetserver ca sign --certname <nom de la VM>
103 {{/code}}
104
105 Pour signer tous les certificats pas signés :
106
107 {{code language="none"}}
108 puppetserver ca sign --all
109 {{/code}}
110
111 **Sur la VM :**
112
113
114 Pour vérifier que tout marche bien :
115
116 {{code language="none"}}
117 /opt/puppetlabs/bin/puppet ssl bootstrap
118 {{/code}}
119
120 == Si on veut mettre la VM en ligne : ==
121
122
123 **Sur Bill :**
124
125
126 On crée un nouveau fichier dans /etc/nginx pour la VM (on peut copier sur les autres et adapter le nom).
127
128 On crée un fichier error.log et un fichier access.log dans /var/log/nginx
129
130 On va ensuite dans /etc/nginx/sites-enables/<nom de domaine qu'on a choisi> et on crée un lien symbolique :
131
132 {{code language="none"}}
133 ln -s ../../sites-available/<DNS de la VM>
134 {{/code}}
135
136 On redémarre nginx pour que ça marche :
137
138 {{code language="none"}}
139 systemctl restart nginx
140 {{/code}}
141
142