Projet

Général

Profil

ClientSalt » Historique » Version 15

Joël Cuissinat, 04/05/2018 12:08

1 1 Joël Cuissinat
h1. Utilisation de Salt pour remplacer le client Scribe
2 1 Joël Cuissinat
3 6 Joël Cuissinat
{{>toc}}
4 6 Joël Cuissinat
5 1 Joël Cuissinat
h2. Mise en place sur le module
6 1 Joël Cuissinat
7 1 Joël Cuissinat
Les paquets nécessaires sont déjà en place sur un module Seth ou un module Scribe car ils sont nécessaires à l'EAD3.
8 1 Joël Cuissinat
Dans le cadre de ScribeAD, on pourrait envisager d'installer le paquet *salt-master* dans le conteneur _addc_.
9 1 Joël Cuissinat
10 4 Joël Cuissinat
Le service salt-master doit être activé (même si l'EAD3 est désactivé !) et les minions (clients) doivent pouvoir accéder aux ports 4405 et 4406 du master.
11 4 Joël Cuissinat
L'extrait de dictionnaire Creole suivant force l'activation du service (utilisation d'une balise conteneur pour contourner #10956) et ouvre l'accès _eole-firewall_ :
12 1 Joël Cuissinat
<pre>
13 4 Joël Cuissinat
    <containers>
14 4 Joël Cuissinat
        <container name='fichier'>
15 4 Joël Cuissinat
            <service servicelist='websockify'>salt-master</service>
16 4 Joël Cuissinat
            <service_access service='salt-master'>
17 4 Joël Cuissinat
                <port>4505</port>
18 4 Joël Cuissinat
                <port>4506</port>
19 4 Joël Cuissinat
            </service_access>
20 4 Joël Cuissinat
        </container>
21 4 Joël Cuissinat
    </containers>
22 1 Joël Cuissinat
</pre>
23 1 Joël Cuissinat
24 1 Joël Cuissinat
h2. Mise en place sur les clients
25 1 Joël Cuissinat
26 1 Joël Cuissinat
Pour les premières maquettes, nous installons manuellement la dernière version de Salt-Minion à partir de l'exécutable officiel (Python3 AMD64) : https://docs.saltstack.com/en/latest/topics/installation/windows.html
27 2 Joël Cuissinat
28 2 Joël Cuissinat
À l'étape *Minion Settings* :
29 2 Joël Cuissinat
* sélectionner *Default Config*
30 2 Joël Cuissinat
* renseigner Master IP or Hostname avec l'IP du master (exemple : 10.1.3.5 pour etb1.scribe)
31 11 Klaas TJEBBES
* laisser *_hostname_* dans *_Minion Name:_* (c'est un mot clé, "hostname" ne sera pas renseigné dans la configuration et Minion utilisera "socket.getfqdn()" pour savoir quel nom renvoyer au Master)
32 3 Joël Cuissinat
33 3 Joël Cuissinat
NB : Le fichier de configuration du Minion est disponible dans @C:\salt\conf\minion@
34 5 Joël Cuissinat
35 5 Joël Cuissinat
h2. Enregistrement du minion
36 5 Joël Cuissinat
37 12 Klaas TJEBBES
* Le Minion apparaît dans la liste des clés à accepter :
38 12 Klaas TJEBBES
39 5 Joël Cuissinat
<pre>
40 5 Joël Cuissinat
root@scribe:~# salt-key -L
41 5 Joël Cuissinat
Accepted Keys:
42 5 Joël Cuissinat
Denied Keys:
43 5 Joël Cuissinat
Unaccepted Keys:
44 5 Joël Cuissinat
PC-124784.ac-test.fr
45 5 Joël Cuissinat
Rejected Keys:
46 1 Joël Cuissinat
</pre>
47 1 Joël Cuissinat
48 12 Klaas TJEBBES
* Accepter la clé :
49 12 Klaas TJEBBES
50 5 Joël Cuissinat
<pre>
51 5 Joël Cuissinat
root@scribe:~# salt-key -y -a PC-124784.ac-test.fr
52 5 Joël Cuissinat
The following keys are going to be accepted:
53 5 Joël Cuissinat
Unaccepted Keys:
54 5 Joël Cuissinat
PC-124784.ac-test.fr
55 1 Joël Cuissinat
Key for minion PC-124784.ac-test.fr accepted.
56 1 Joël Cuissinat
</pre>
57 5 Joël Cuissinat
58 12 Klaas TJEBBES
* Supprimer la clé :
59 12 Klaas TJEBBES
60 1 Joël Cuissinat
<pre>
61 1 Joël Cuissinat
root@scribe:~# salt-key -d PC-124784.ac-test.fr
62 7 Joël Cuissinat
</pre>
63 7 Joël Cuissinat
64 12 Klaas TJEBBES
* Accepter toutes les clés :
65 12 Klaas TJEBBES
66 7 Joël Cuissinat
<pre>
67 7 Joël Cuissinat
root@scribe:~# salt-key -A
68 7 Joël Cuissinat
</pre>
69 7 Joël Cuissinat
70 1 Joël Cuissinat
h2. Commandes basiques
71 8 Joël Cuissinat
72 8 Joël Cuissinat
h3. Test du Minion
73 9 Joël Cuissinat
74 8 Joël Cuissinat
<pre>
75 8 Joël Cuissinat
root@scribe:~# salt PC-124784.ac-test.fr  test.ping 
76 1 Joël Cuissinat
PC-124784.ac-test.fr:
77 1 Joël Cuissinat
    True
78 1 Joël Cuissinat
</pre>
79 1 Joël Cuissinat
80 13 Klaas TJEBBES
h3. Renommage du PC
81 12 Klaas TJEBBES
82 1 Joël Cuissinat
<pre>
83 13 Klaas TJEBBES
root@scribe:~# salt PC-124784.ac-test.fr system.set_computer_name PC-CDI1
84 13 Klaas TJEBBES
PC-124784.ac-test.fr:
85 13 Klaas TJEBBES
    ----------
86 13 Klaas TJEBBES
    Computer Name:
87 13 Klaas TJEBBES
        ----------
88 13 Klaas TJEBBES
        Current:
89 13 Klaas TJEBBES
            PC-125292
90 13 Klaas TJEBBES
        Pending:
91 13 Klaas TJEBBES
            PC-CDI1
92 1 Joël Cuissinat
</pre>
93 1 Joël Cuissinat
94 13 Klaas TJEBBES
Le renommage ne sera effectif qu'après redémarrage du poste client.
95 13 Klaas TJEBBES
96 15 Joël Cuissinat
97 15 Joël Cuissinat
h2. Gestion des clients Microsoft 
98 15 Joël Cuissinat
99 15 Joël Cuissinat
h3. Documentation
100 15 Joël Cuissinat
101 15 Joël Cuissinat
* Module win_system : https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.win_system.html
102 15 Joël Cuissinat
* Module win_dns_client : https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.win_dns_client.html
103 15 Joël Cuissinat
104 15 Joël Cuissinat
h3. Renommage du PC
105 15 Joël Cuissinat
106 15 Joël Cuissinat
<pre>
107 15 Joël Cuissinat
root@scribe:~# salt PC-124784.ac-test.fr system.set_computer_name PC-CDI1
108 15 Joël Cuissinat
PC-124784.ac-test.fr:
109 15 Joël Cuissinat
    ----------
110 15 Joël Cuissinat
    Computer Name:
111 15 Joël Cuissinat
        ----------
112 15 Joël Cuissinat
        Current:
113 15 Joël Cuissinat
            PC-125292
114 15 Joël Cuissinat
        Pending:
115 15 Joël Cuissinat
            PC-CDI1
116 15 Joël Cuissinat
</pre>
117 15 Joël Cuissinat
118 15 Joël Cuissinat
Le renommage ne sera effectif qu'après redémarrage du poste client.
119 15 Joël Cuissinat
Évidemment le renommage du poste ne modifie pas le nom du Minion !
120 15 Joël Cuissinat
121 15 Joël Cuissinat
h3. Intégration au domaine
122 15 Joël Cuissinat
123 15 Joël Cuissinat
<pre>
124 15 Joël Cuissinat
salt PC-124784.ac-test.fr system.join_domain domain='etb1.lan' username='admin' password='eole' account_exists=False restart=True
125 15 Joël Cuissinat
</pre>
126 15 Joël Cuissinat
127 15 Joël Cuissinat
Si on relance la commande une seconde fois, on obtient le message suivant :
128 15 Joël Cuissinat
<pre>
129 15 Joël Cuissinat
PC-124784.ac-test.fr:
130 15 Joël Cuissinat
    Already joined to etb1.lan
131 15 Joël Cuissinat
</pre>
132 15 Joël Cuissinat
133 15 Joël Cuissinat
134 14 Klaas TJEBBES
h3. Changer le DNS
135 13 Klaas TJEBBES
136 13 Klaas TJEBBES
* Récupérer le nom de l'interface réseau du client, 192.168.0.5=<ip salt master> => on récupère le nom de la bonne interface s'il y en a plusieurs
137 13 Klaas TJEBBES
138 1 Joël Cuissinat
<pre>
139 1 Joël Cuissinat
salt 'PC-124784.ac-test.fr' network.get_route 192.168.0.5
140 13 Klaas TJEBBES
</pre>
141 13 Klaas TJEBBES
142 13 Klaas TJEBBES
<pre>
143 1 Joël Cuissinat
root@dc1:~# salt 'PC-124784.ac-test.fr' network.get_route 192.168.0.5
144 1 Joël Cuissinat
PC-124784.ac-test.fr:
145 1 Joël Cuissinat
    ----------
146 1 Joël Cuissinat
    destination:
147 13 Klaas TJEBBES
        192.168.0.5
148 1 Joël Cuissinat
    gateway:
149 1 Joël Cuissinat
        0.0.0.0
150 13 Klaas TJEBBES
    interface:
151 1 Joël Cuissinat
        MonInterface
152 1 Joël Cuissinat
    source:
153 8 Joël Cuissinat
        192.168.0.184
154 1 Joël Cuissinat
</pre>
155 1 Joël Cuissinat
156 1 Joël Cuissinat
<pre>
157 1 Joël Cuissinat
salt 'PC-124784.ac-test.fr' ip.set_static_dns MonInterface 192.168.0.5
158 1 Joël Cuissinat
</pre>
159 1 Joël Cuissinat
160 1 Joël Cuissinat
161 1 Joël Cuissinat
h3. Joindre Domaine
162 14 Klaas TJEBBES
163 13 Klaas TJEBBES
<pre>
164 13 Klaas TJEBBES
salt 'PC-12511.ac-test.fr' system.join_domain domain='ac-test.fr' username='admin' password='Eole;2121' account_exists=False restart=True
165 13 Klaas TJEBBES
</pre>
166 13 Klaas TJEBBES
167 14 Klaas TJEBBES
h3. Redémarrage du PC
168 14 Klaas TJEBBES
169 14 Klaas TJEBBES
* Immédiat
170 14 Klaas TJEBBES
171 1 Joël Cuissinat
<pre>
172 14 Klaas TJEBBES
salt PC-124784.ac-test.fr system.reboot 0
173 14 Klaas TJEBBES
</pre>
174 13 Klaas TJEBBES
175 14 Klaas TJEBBES
<pre>
176 14 Klaas TJEBBES
salt 'PC-12511.ac-test.fr' cmd.run 'shutdown /r /t 0 /f' 
177 1 Joël Cuissinat
</pre>
178 1 Joël Cuissinat
179 14 Klaas TJEBBES
* 5 secondes
180 14 Klaas TJEBBES
181 14 Klaas TJEBBES
<pre>
182 14 Klaas TJEBBES
salt 'FDGFDG.ac-test.fr' system.reboot 5 True
183 14 Klaas TJEBBES
</pre>
184 14 Klaas TJEBBES
185 14 Klaas TJEBBES
_Par défaut, le timeout s'exprime en minutes. Il est possible de l'exprimer en seconde en passant le second paramètre à True :)_
186 14 Klaas TJEBBES
187 13 Klaas TJEBBES
h3. Autre
188 13 Klaas TJEBBES
189 13 Klaas TJEBBES
<pre>
190 13 Klaas TJEBBES
salt 'PC-12511.ac-test.fr' cmd.run notepad.exe
191 13 Klaas TJEBBES
</pre>
192 13 Klaas TJEBBES
193 13 Klaas TJEBBES
<pre>
194 13 Klaas TJEBBES
salt '*ac-test.fr' sys.list_functions
195 14 Klaas TJEBBES
salt '*ac-test.fr' sys.list_state_functions
196 14 Klaas TJEBBES
</pre>
197 14 Klaas TJEBBES
198 14 Klaas TJEBBES
<pre>
199 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' win_dns_client.get_dns_config
200 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' win_dns_client.add_dns 8.8.8.8 "Ethernet" 1
201 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' cmd.run "netsh interface ip show config"
202 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' cmd.run "CHCP 1252 & netsh interface ip show config"
203 1 Joël Cuissinat
</pre>
204 13 Klaas TJEBBES
205 14 Klaas TJEBBES
<pre>
206 14 Klaas TJEBBES
salt -G 'os_family:Windows' network.interfaces
207 14 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.interfaces
208 14 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.interfaces_names
209 14 Klaas TJEBBES
</pre>
210 14 Klaas TJEBBES
211 13 Klaas TJEBBES
h3. Commandes non fonctionnelles 
212 13 Klaas TJEBBES
213 13 Klaas TJEBBES
Les commandes suivantes ne fonctionne pas :
214 13 Klaas TJEBBES
215 13 Klaas TJEBBES
<pre>
216 13 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' ip.get_all_interfaces
217 13 Klaas TJEBBES
</pre> 
218 13 Klaas TJEBBES
<pre>
219 13 Klaas TJEBBES
salt -G 'os_family:Windows' ip.get_all_interfaces
220 1 Joël Cuissinat
</pre>