Getting Started
Last updated
Was this helpful?
Last updated
Was this helpful?
http://docs.ansible.com/ansible/index.html
Ansible unterscheidet bei den beteiligten Rechnern zwischen Controller-System (steuert die Ausführung des Playbooks) und Zielsystem.
Software-Voraussetzungen:
Controller-System:
Ansible installiert (und Python)
ssh client installiert und passwortlose Authentifizierung möglich
Zielsystem:
SSH-Server installiert und Passwortlose Authentifizierung über Public-Private-Key möglich ...
Python installiert
http://docs.ansible.com/ansible/intro_installation.html
http://docs.ansible.com/ansible/intro_inventory.html
Die Zielrechner können gruppiert werden - das ist sehr praktisch, um mit einem Befehl gleich mehrere Rechner adressieren zu adressieren.
Option 1: sytemweit
Unter /etc/ansible/hosts
müssen die zu verwaltenden Rechner eingetragen werden. Im einfachsten Fall trägt man dort localhost
ein
Option 2: userspezifisch
... damit die passwortfreie Authentifizierung funktioniert muß der Public-Keys des Users auf dem Controller-Rechner in die ~/.ssh/authorized_keys
auf dem Zielrechner für den Zielnutzer aufgenommen werden. Ansonsten bekommt wird ein Fehler dieser Art ausgegeben:
ACHTUNG: Will man später Tasks als User root
durchführen (remote_user: root
), so muß der Public-Key in /root/.ssh/authorized_keys
eingetragen werden.
Gib auf allen konfigurierten Zielsystemen den gleichen altbekannten Text aus:
Damit kann getestet werden, ob Ansible und die System-Konfiguration (ssh-keys, ssh-agent) funktionieren.
ACHTUNG: sollte der ssh-agent nicht laufen und der Private-SSH-Key mit einer Passphrase geschützt sein, so wird interaktiv nach der Passphrase gefragt. Das widerspricht eigentlich der Ansible-Idee einer Vollautomatisierung ... der SSH-Agent löst dieses Problem.
Die Skipte heißen bei Ansible Playbook. Das folgende Ansible-Playbook (myplaybook.yml
)
wird per ansible-playbook myplaybook.yml
ausgeführt und installiert das Paket Midnight Commander. Wenn es nicht funktionieren sollte, die Option -vvv
bzw. -vvvv
macht Ansible ein wenig geschwätziger.
Windows-User werden von RedHat (dem Ansible-Sponsor) derzeit nicht unterstützt ... ein Windows-System ist weder als Zielsystem noch als Controller offiziell vorgesehen.
Es gibt dennoch ein paar Ansätze, unter einem Windows-Host Linux-Zielsysteme zu steuern.
In diesem Zuge spricht man von
Ansible-Remote: in diesem Fall werden vom Controller Kommandos via ssh zum Zielsystem geschickt. Das Controller-System muß mit Ansible und Python ausgestattet sein
Ansible-Local: in diesem Fall wird das Playbook auf den Zielrechner transportiert und dort lokal ausgeführt. Der Controller-System braucht kein Ansible/Python
besonders für Controller auf Windows-Basis interessant
https://www.azavea.com/blog/2014/10/30/running-vagrant-with-ansible-provisioning-on-windows/
Python Paketmanager (pip
) installieren
und anschließend das Ansible-Paket
Danach muß ansible-playbook
noch in $PATH
aufgenommen werden und los gehts ... äh, war da nicht noch was in obigem Link beschrieben?
Die Kommandos aus dem Ansible-Playbook werden später über ssh auf die Zielsysteme übertragen und dort ausgeführt. Um eine scriptgesteuerte Ausführung zu ermöglichen, darf kein Passwort abgefragt werden. Das wird über die Verwendung von Public/Private Keys erreicht ().
Vor der Nutzung sollte man die verstanden haben!!!
Bei diesem Ansatz wird der Python-Paketmanager (pip
) verwendet, um das ansible
Paket unter zu installieren.
Sicherstellen, daß die Umgebungsvariablen in / gesetzt sind:
/ werden durch Installation folgender Pakete vorbereitet (hier mittels Babuns Paketmanager pact
):