Ansible unter Ubuntu 14.04 installieren

MadicVeröffentlicht von

Verschiedene Ansible Versionen lassen sich gleichzeitig unter Ubuntu, oder mit dieser Herangehensweise unter jedem Linux mit python, ganz einfach mit pip installieren.
Dafür richte ich pro Ansible Version eine eigene virtuelle python Umgebung mit virtualenv ein. Vorteil dieser Herangehensweise ist, dass ich zwischen den Ansible Versionen einfach wechseln und neue Versionen ausprobieren kann. Kommt ja schon mal vor, dass Optionen deprecated werden und man seine Config erst mal anpassen muss.

Abhängigkeiten

apt install libssl-dev python-setuptools python-pip
easy_install pip
pip install --upgrade pip virtualenv virtualenvwrapper

Ansible 2.1

virtualenv ansible2.1
source ansible2.1/bin/activate
pip install ansible==2.1

Ansible 2.0

virtualenv ansible2.0
source ansible2.0/bin/activate
pip install ansible==2.0.1.0

Ansible Vorbereiten

Nach der Installation von Ansible müssen noch Configs und Ordner erstellt werden.

Ordnerstruktur anlegen

Meine komplette Ansible Config habe ich, wie vom Debian Ansible Paket auch vorgegeben, unter /etc/ansible angelegt.

mkdir -p /etc/ansible/{files,group_vars,host_vars,playbooks}
mkdir -p /var/log/ansible
touch /var/log/ansible/ansible.log

Mehr Informationen zur Ordnerstruktur finden sich in den offiziellen Best Practices.

Download Ansible.cfg

wget -O /etc/ansible/ansible.cfg https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg

Folgende Parameter habe ich in der CFG angepasst:

inventory = /etc/ansible/hosts
remote_tmp = /tmp
roles_path = /etc/ansible/roles
sudo_exe = sudo
log_path = /var/log/ansible/ansible.log
ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host}

Die Parameter sind im offiziellen Guide des Configuration file erklärt.

Ergebnis

Die Ordnerstruktur sieht danach so aus:

(ansible2.1) root@server:/etc/ansible# ll
total 44K
drwxr-xr-x   7 root root 4.0K Jan 26 12:07 .
drwxr-xr-x 113 root root 4.0K Jan 24 06:51 ..
drwxr-xr-x   2 root root 4.0K Jan 25 10:03 files
drwxr-xr-x   2 root root 4.0K Jan 22 22:27 group_vars
drwxr-xr-x   2 root root 4.0K Jan 25 18:22 host_vars
drwxr-xr-x   2 root root 4.0K Jan 25 19:35 playbooks
drwxr-xr-x   2 root root 4.0K Jan 25 09:22 roles
-rw-r--r--   1 root root 8.1K Jan 25 19:27 ansible.cfg

Wie geht es weiter?

Nachdem alles vorbereitet wurde, muss für Ansible ein Inventory erstellt und es müssen Playbooks / Roles geschrieben werden. Das Inventory beinhaltet alle Hosts, die bearbeitet, und Playbooks / Roles die Tasks, die auf den jeweiligen Hosts ausgeführt werden sollen. Roles bekommt man z.B. von Ansible Galaxy oder Github.com.

Fazit

Mit der hier beschriebenen Herangehensweise kann ich quasi jede über pip verfügbare Ansible Version installieren und zwischen ihnen wechseln. Wenn ich mit einer bestimmten Version arbeiten möchte, gebe ich einfach folgenden Befehl ein:

source <PFAD_ZUM_VIRTUAL_PYTHON_DIR>/ansible2.1/bin/activate

Man erkennt direkt am Eingabe Prompt mit welcher Ansible Version, bzw. python environment, gerade gearbeitet wird.

(ansible2.1) root@server:~#

Mit which ansible-playbook lässt sich noch kontrollieren, welche Ansible executables genutzt werden.
Der Pfad sollte, wenn man die python virtualenvironment geladen hat, den Pfad zu dieser enthalten:

(ansible2.1) root@server:~# which ansible-playbook
/root/ansible2.1/bin/ansible-playbook

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.