ansible,  DevOps,  Docker,  Jinja,  Middleware,  YAML

Ansible Installation auf Windows 10 Systemen

Ansible kann lokal in der Windows Bash installiert und zusammen mit Visual Studio Code (https://code.visualstudio.com/) effektiv betrieben werden. Die Windows Bash muss installiert sein. Die Bash kann über den Windows Store installiert werden. Einfach nach Ubuntu suchen. Nach der Installation die bash starten.

PS C:\Users\user01> bash

Die eigentliche ansible Installation erfolgt im Windows Linux Subsystem mit diesen Befehlen. Der letzte Befehl fügt die ansible Kommandos zum Pfad hinzu, damit sie direkt aufrufbar sind.

sudo apt-get -y install python-pip python-dev libffi-dev libssl-dev
pip install --upgrade pip
pip install ansible --user
echo 'PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc

<em>"pip install --upgrade pip"</em> ist nur der Schönheit halber enthalten, damit pip auch aktuell ist, sonst gibt es Warnungen. Das war es schon. Jetzt noch in Visual Studio Code (im Folgenden VSC genannt) die Erweiterung ansible installiert und ein erstes Playbook kann geschrieben werden:

---
- name: first Test
  hosts: all
  connection: local
  tasks:
    - debug: msg="Das lokal installierte Ansible funktioniert bestens!"

Download des Beispiels hier: firstPlaybook.yaml

Ganz wichtig sind die nicht vorhandenen Leerzeichen in den ersten beiden Zeilen, eine Leerzeile am Ende und keine Leerzeichen an den Zeilenenden.

Tipp: Visual Studio Code kann so eingestellt werden, die letzten beiden Punkte automatisch beim Speichern zu ändern. Dazu sind die beiden Zeilen in den Einstellungen von VSC anzupassen:

"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,

Im Terminal von VSC die bash aufrufen (einfach bash eingeben). Dann kann auch schon fast das Playbook ausgeführt werden. Das Inventory muss noch gepflegt werden. Konkret fehlen die Hosts Informationen.

  sudo mkdir /etc/ansible sudo vi /etc/ansible/hosts

Der Hostname der lokalen Maschine ist einzutragen. In diesen ersten einfachen Fall kann der Eintrag des Hostnamens ohne eine Gruppierung erfolgen, die Datei enthält also vorerst nur den Hostnamen oder einfach “localhost”.

ansible-playbook firstPlaybook.yaml --connection=local


PLAY [first Test] ********************************

TASK [Gathering Facts] ***************************
ok: [localhost] <br />
TASK [debug] *************************************
ok: [localhost] => {
"msg": "Das lokal installierte Ansible funktioniert bestens!"
}
<br />
PLAY RECAP ************************************
localhost : ok=2 changed=0 unreachable=0 failed=0

Weitergehende Tipps: Um Ansible und Jinja Templates zu testen, gibt es 2 extrem nützliche Seiten:

YAML Online Tests: http://yaml-online-parser.appspot.com/ JINJA2 Online Tests: http://cryptic-cliffs-32040.herokuapp.com/ Den Jinja2 Parser gibt es auch als Github Projekt https://github.com/qn7o/jinja2-live-parser für eine lokale Installation.