====== 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