Erste Schritte mit Ansible
Ich habe inzwischen viel gutes über ein Werkzeug namens ansible gehört. Es erlaubt recht einfach Konfigurationen für mehrere Maschinen zu automatisieren ohne das auf diesen Software installiert sein muss.
Ansible is the easiest way to deploy, manage, and orchestrate computer systems you've ever seen. You can get started in minutes.
OK, das mit den Minuten würde ich eher in "in a hour" hochstufen.
Hier meine Schritte auf einem Ubuntu 12.04. Sie basieren im wesentlichen auf dieser Dokumentation. Zuerst eine Abhängigkeiten installieren
sudo apt-get install python-yaml python-jinja2 python-paramiko git
Dann ansible auf Github auschecken:
git clone git://github.com/ansible/ansible.git Cloning into 'ansible'... remote: Counting objects: 18889, done. remote: Compressing objects: 100% (5064/5064), done. remote: Total 18889 (delta 12608), reused 18230 (delta 12470) Receiving objects: 100% (18889/18889), 4.27 MiB | 357 KiB/s, done. Resolving deltas: 100% (12608/12608), done.
und Umgebungsvariablen setzen:
source ./hacking/env-setup PATH=/home/hbauer/Daten/ansible/ansible/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games PYTHONPATH=/home/hbauer/Daten/ansible/ansible/lib: ANSIBLE_LIBRARY=/home/hbauer/Daten/ansible/ansible/library MANPATH=/home/hbauer/Daten/ansible/ansible/docs/man: Reminder: specify your host file with -i Done.
In einer bestimmten Datei werden die Rechner mit Namen versehen und können in Gruppen eingeteilt werden. Zuerst mal einige Rechner aus dem Netzwerk hinzufügen bei denen eine Certifikatsbasiertes Login ermöglicht worden ist.
vi ansible_hosts export ANSIBLE_HOSTS=ansible_hosts
Dann mal einen ersten kleinen Test starten (localhost erlaubt kein Login. Der Fehler ist also "normal")
ansible all -m ping 127.0.0.1 | FAILED => FAILED: [Errno 111] Connection refused 192.168.221.6 | success >> { "changed": false, "ping": "pong" } 192.168.221.160 | success >> { "changed": false, "ping": "pong" }
Ist man auf dem Zielrechner auch für passwordloses sudo berechtigt kann man als harten Test kann man ja dann mal einen Neustart testen
ansible 192.168.221.xx6 -a "/sbin/reboot" --sudo
Jetzt müsste ich noch
- Ansible in den Pfad aufnehmen
- Die Umgebungsvariablen aus ./hacking/env-setup und
-
ansible_host in die Loginvariablen aufnehmen