Projet

Général

Profil

ClientSalt » Historique » Version 13

Klaas TJEBBES, 04/05/2018 12:02

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 13 Klaas TJEBBES
97 1 Joël Cuissinat
h3. Redémarrage du PC
98 8 Joël Cuissinat
99 12 Klaas TJEBBES
* Immédiat
100 12 Klaas TJEBBES
101 12 Klaas TJEBBES
<pre>
102 1 Joël Cuissinat
salt PC-124784.ac-test.fr system.reboot 0
103 9 Joël Cuissinat
</pre>
104 12 Klaas TJEBBES
105 9 Joël Cuissinat
<pre>
106 9 Joël Cuissinat
salt 'PC-12511.ac-test.fr' cmd.run 'shutdown /r /t 0 /f' 
107 8 Joël Cuissinat
</pre>
108 1 Joël Cuissinat
109 8 Joël Cuissinat
* 5 secondes
110 13 Klaas TJEBBES
111 8 Joël Cuissinat
<pre>
112 8 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' system.reboot 5 True
113 8 Joël Cuissinat
</pre>
114 8 Joël Cuissinat
115 1 Joël Cuissinat
_Par défaut, le timeout s'exprime en minutes. Il est possible de l'exprimer en seconde en passant le second paramètre à True :)_
116 1 Joël Cuissinat
117 1 Joël Cuissinat
118 13 Klaas TJEBBES
119 13 Klaas TJEBBES
h4. Changer le DNS
120 13 Klaas TJEBBES
121 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
122 13 Klaas TJEBBES
123 1 Joël Cuissinat
<pre>
124 13 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.get_route 192.168.0.5
125 13 Klaas TJEBBES
</pre>
126 13 Klaas TJEBBES
127 13 Klaas TJEBBES
<pre>
128 13 Klaas TJEBBES
root@dc1:~# salt 'PC-124784.ac-test.fr' network.get_route 192.168.0.5
129 8 Joël Cuissinat
PC-124784.ac-test.fr:
130 1 Joël Cuissinat
    ----------
131 13 Klaas TJEBBES
    destination:
132 13 Klaas TJEBBES
        192.168.0.5
133 13 Klaas TJEBBES
    gateway:
134 13 Klaas TJEBBES
        0.0.0.0
135 13 Klaas TJEBBES
    interface:
136 13 Klaas TJEBBES
        MonInterface
137 13 Klaas TJEBBES
    source:
138 13 Klaas TJEBBES
        192.168.0.184
139 1 Joël Cuissinat
</pre>
140 1 Joël Cuissinat
141 13 Klaas TJEBBES
<pre>
142 13 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' ip.set_static_dns MonInterface 192.168.0.5
143 13 Klaas TJEBBES
</pre>
144 1 Joël Cuissinat
145 1 Joël Cuissinat
146 13 Klaas TJEBBES
h3. Joindre Domaine
147 13 Klaas TJEBBES
<pre>
148 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
149 13 Klaas TJEBBES
</pre>
150 13 Klaas TJEBBES
151 13 Klaas TJEBBES
h3. Reboot
152 13 Klaas TJEBBES
<pre>
153 13 Klaas TJEBBES
salt 'FDGFDG.ac-test.fr' system.reboot 0
154 13 Klaas TJEBBES
salt 'FDGFDG.ac-test.fr' system.reboot 1 True
155 13 Klaas TJEBBES
156 13 Klaas TJEBBES
salt 'PC-12511.ac-test.fr' cmd.run 'shutdown /r /t 0 /f'
157 13 Klaas TJEBBES
</pre>
158 13 Klaas TJEBBES
159 13 Klaas TJEBBES
h3. Autre
160 13 Klaas TJEBBES
161 13 Klaas TJEBBES
<pre>
162 13 Klaas TJEBBES
salt 'PC-12511.ac-test.fr' cmd.run notepad.exe
163 13 Klaas TJEBBES
</pre>
164 13 Klaas TJEBBES
165 13 Klaas TJEBBES
<pre>
166 13 Klaas TJEBBES
salt '*ac-test.fr' sys.list_functions
167 13 Klaas TJEBBES
salt 'FDGFDG.ac-test.fr' win_dns_client.get_dns_config
168 13 Klaas TJEBBES
salt 'FDGFDG.ac-test.fr' win_dns_client.add_dns 8.8.8.8 "Ethernet" 1
169 13 Klaas TJEBBES
salt 'FDGFDG.ac-test.fr' cmd.run "netsh interface ip show config"
170 13 Klaas TJEBBES
salt 'FDGFDG.ac-test.fr' cmd.run "CHCP 1252 & netsh interface ip show config"
171 13 Klaas TJEBBES
</pre>
172 13 Klaas TJEBBES
173 1 Joël Cuissinat
h3. Commandes non fonctionnelles 
174 1 Joël Cuissinat
175 1 Joël Cuissinat
Les commandes suivantes ne fonctionne pas :
176 1 Joël Cuissinat
177 1 Joël Cuissinat
<pre>
178 1 Joël Cuissinat
salt 'PC-124784.ac-test.fr' ip.get_all_interfaces
179 1 Joël Cuissinat
</pre> 
180 1 Joël Cuissinat
<pre>
181 1 Joël Cuissinat
salt -G 'os_family:Windows' ip.get_all_interfaces
182 13 Klaas TJEBBES
</pre>
183 13 Klaas TJEBBES
184 13 Klaas TJEBBES
h3. Réseau
185 13 Klaas TJEBBES
186 13 Klaas TJEBBES
* Ne fonctionne pas... (fait un traceback)
187 13 Klaas TJEBBES
188 13 Klaas TJEBBES
<pre>
189 13 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' ip.get_all_interfaces
190 13 Klaas TJEBBES
</pre>
191 13 Klaas TJEBBES
192 13 Klaas TJEBBES
* Fonctionne ...
193 13 Klaas TJEBBES
194 13 Klaas TJEBBES
<pre>
195 13 Klaas TJEBBES
salt -G 'os_family:Windows' network.interfaces
196 13 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.interfaces
197 13 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.interfaces_names
198 1 Joël Cuissinat
</pre>