Projet

Général

Profil

ClientSalt » Historique » Version 16

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

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 13 Klaas TJEBBES
h3. Autre
168 13 Klaas TJEBBES
169 13 Klaas TJEBBES
<pre>
170 13 Klaas TJEBBES
salt 'PC-12511.ac-test.fr' cmd.run notepad.exe
171 13 Klaas TJEBBES
</pre>
172 13 Klaas TJEBBES
173 13 Klaas TJEBBES
<pre>
174 13 Klaas TJEBBES
salt '*ac-test.fr' sys.list_functions
175 14 Klaas TJEBBES
salt '*ac-test.fr' sys.list_state_functions
176 14 Klaas TJEBBES
</pre>
177 14 Klaas TJEBBES
178 14 Klaas TJEBBES
<pre>
179 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' win_dns_client.get_dns_config
180 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' win_dns_client.add_dns 8.8.8.8 "Ethernet" 1
181 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' cmd.run "netsh interface ip show config"
182 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' cmd.run "CHCP 1252 & netsh interface ip show config"
183 1 Joël Cuissinat
</pre>
184 13 Klaas TJEBBES
185 14 Klaas TJEBBES
<pre>
186 14 Klaas TJEBBES
salt -G 'os_family:Windows' network.interfaces
187 14 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.interfaces
188 14 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.interfaces_names
189 14 Klaas TJEBBES
</pre>
190 14 Klaas TJEBBES
191 13 Klaas TJEBBES
h3. Commandes non fonctionnelles 
192 13 Klaas TJEBBES
193 13 Klaas TJEBBES
Les commandes suivantes ne fonctionne pas :
194 13 Klaas TJEBBES
195 13 Klaas TJEBBES
<pre>
196 13 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' ip.get_all_interfaces
197 13 Klaas TJEBBES
</pre> 
198 13 Klaas TJEBBES
<pre>
199 13 Klaas TJEBBES
salt -G 'os_family:Windows' ip.get_all_interfaces
200 1 Joël Cuissinat
</pre>