Projet

Général

Profil

ClientSalt » Historique » Version 14

Klaas TJEBBES, 04/05/2018 12:06

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 14 Klaas TJEBBES
h3. Changer le DNS
97 13 Klaas TJEBBES
98 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
99 13 Klaas TJEBBES
100 1 Joël Cuissinat
<pre>
101 1 Joël Cuissinat
salt 'PC-124784.ac-test.fr' network.get_route 192.168.0.5
102 13 Klaas TJEBBES
</pre>
103 13 Klaas TJEBBES
104 13 Klaas TJEBBES
<pre>
105 1 Joël Cuissinat
root@dc1:~# salt 'PC-124784.ac-test.fr' network.get_route 192.168.0.5
106 1 Joël Cuissinat
PC-124784.ac-test.fr:
107 1 Joël Cuissinat
    ----------
108 1 Joël Cuissinat
    destination:
109 13 Klaas TJEBBES
        192.168.0.5
110 1 Joël Cuissinat
    gateway:
111 1 Joël Cuissinat
        0.0.0.0
112 13 Klaas TJEBBES
    interface:
113 1 Joël Cuissinat
        MonInterface
114 1 Joël Cuissinat
    source:
115 8 Joël Cuissinat
        192.168.0.184
116 1 Joël Cuissinat
</pre>
117 1 Joël Cuissinat
118 1 Joël Cuissinat
<pre>
119 1 Joël Cuissinat
salt 'PC-124784.ac-test.fr' ip.set_static_dns MonInterface 192.168.0.5
120 1 Joël Cuissinat
</pre>
121 1 Joël Cuissinat
122 1 Joël Cuissinat
123 1 Joël Cuissinat
h3. Joindre Domaine
124 14 Klaas TJEBBES
125 13 Klaas TJEBBES
<pre>
126 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
127 13 Klaas TJEBBES
</pre>
128 13 Klaas TJEBBES
129 14 Klaas TJEBBES
h3. Redémarrage du PC
130 14 Klaas TJEBBES
131 14 Klaas TJEBBES
* Immédiat
132 14 Klaas TJEBBES
133 1 Joël Cuissinat
<pre>
134 14 Klaas TJEBBES
salt PC-124784.ac-test.fr system.reboot 0
135 14 Klaas TJEBBES
</pre>
136 13 Klaas TJEBBES
137 14 Klaas TJEBBES
<pre>
138 14 Klaas TJEBBES
salt 'PC-12511.ac-test.fr' cmd.run 'shutdown /r /t 0 /f' 
139 1 Joël Cuissinat
</pre>
140 1 Joël Cuissinat
141 14 Klaas TJEBBES
* 5 secondes
142 14 Klaas TJEBBES
143 14 Klaas TJEBBES
<pre>
144 14 Klaas TJEBBES
salt 'FDGFDG.ac-test.fr' system.reboot 5 True
145 14 Klaas TJEBBES
</pre>
146 14 Klaas TJEBBES
147 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 :)_
148 14 Klaas TJEBBES
149 13 Klaas TJEBBES
h3. Autre
150 13 Klaas TJEBBES
151 13 Klaas TJEBBES
<pre>
152 13 Klaas TJEBBES
salt 'PC-12511.ac-test.fr' cmd.run notepad.exe
153 13 Klaas TJEBBES
</pre>
154 13 Klaas TJEBBES
155 13 Klaas TJEBBES
<pre>
156 13 Klaas TJEBBES
salt '*ac-test.fr' sys.list_functions
157 14 Klaas TJEBBES
salt '*ac-test.fr' sys.list_state_functions
158 14 Klaas TJEBBES
</pre>
159 14 Klaas TJEBBES
160 14 Klaas TJEBBES
<pre>
161 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' win_dns_client.get_dns_config
162 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' win_dns_client.add_dns 8.8.8.8 "Ethernet" 1
163 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' cmd.run "netsh interface ip show config"
164 1 Joël Cuissinat
salt 'FDGFDG.ac-test.fr' cmd.run "CHCP 1252 & netsh interface ip show config"
165 1 Joël Cuissinat
</pre>
166 13 Klaas TJEBBES
167 14 Klaas TJEBBES
<pre>
168 14 Klaas TJEBBES
salt -G 'os_family:Windows' network.interfaces
169 14 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.interfaces
170 14 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' network.interfaces_names
171 14 Klaas TJEBBES
</pre>
172 14 Klaas TJEBBES
173 13 Klaas TJEBBES
h3. Commandes non fonctionnelles 
174 13 Klaas TJEBBES
175 13 Klaas TJEBBES
Les commandes suivantes ne fonctionne pas :
176 13 Klaas TJEBBES
177 13 Klaas TJEBBES
<pre>
178 13 Klaas TJEBBES
salt 'PC-124784.ac-test.fr' ip.get_all_interfaces
179 13 Klaas TJEBBES
</pre> 
180 13 Klaas TJEBBES
<pre>
181 13 Klaas TJEBBES
salt -G 'os_family:Windows' ip.get_all_interfaces
182 1 Joël Cuissinat
</pre>