====== salt ======
permet de déclencher des actions à distance (execution a distance) administration de machines, déploiement de logiciels.
basé sur le bus ZeroMQ (bibliotheque C avec wrappers dans bcp de languages, permet d'utiliser beaucoup de protocole de communication simplement genre pub/sub)
ports 4505(bus publication) 4506 (bus de request reply)
architecture
master:
minion: sur chaque machine a administrer: demande au master le fichier a executer
1 master n minion. syndic est un noeud intermediaire, administré papr un master et peut s'occuper de n minion.
les echange sont chiffrés par AES
lancer le service minion
salt-minion -l info
Toutes les commandes à distance sont les modules fournis de bases.voir la doc %% pydoc salt.module %%
Demander la
salt proxy -d pkg
afficher les clés recues par le master
salt-key
accepter la
la machine est t elle vivante
salt uid test.ping
salt uid
installer un paqket sur une machine
Déployer un paquet sur une machine distante
salt uid pkg.install vim
Lancer une commande a distance
salt uid
les grains sont les données vivante du systeme: etat du systeme distant.
le **returner** ou les grains sont retournés et comment ils sont stockés.
===== installer docker =====
docker est un systeme de containers dans lesquels on place des vms
les commandes pour l'installation sont listées sur http://get.docker.io/ubuntu
Ajouter la source get.docker.io dans le fichier source.list
deb http://get.docker/io/ubuntu docker main
Accepter la clé
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo apt-get clean
sudo apt-get install lxc-docker
Remarque: sous debian/ubuntu un paquet nommé docker existe mais ce n'est pa le logiciel que nous installons ici
===== créer une vm =====
Recueprer une image parmis les images disponibles
docker pull saltstack/debian-7
Lancer des containers sur l'image téléchargée
%%docker run -t -i -h toto -n toto saltstack/debian-7%%
avec:
* -h hostname que le souhaite attribuer a la machine
* -n le container, c'est une bonne chose de le nommer avec le hostname
* -i interactif
===== Installation de salt =====
Installer salt le minion dans la vm du docker
wget -O - http://bootstrap.saltstack.org | sh
==== gerer les jobs ===
Si on arrete un job lancer sur un minion avec ctrl-c, un message indique que le job s'excute toujours sur le minion avec l'uid du job
pour arreter le job, on lance une commade de controle des job salt:
salt proxy saltutil.killjob uid
salt proxy saltutil.findjob uid
ficheir de config au format YAML
top.sls: fichier de configuration decrit la structure de la communication
ans le fichier de config on peut definir des roles avec le fomat
declaration d'un etat
base_pkgs:
pk.installed:
- pkgs:
- htop
- mercurial
- tree