Ansible

Vorbereitungen (einmalig)

python3.8 -m venv ansible
cd ansible
pip install ansible

Aufruf (erster Test)

ansible localhost -a "echo 'Hallo Du Pappnase'"

SSH-Key

Für den Login per SSH einen public/privat-Key erzeugen.

ssh-keygen -t rsa -b 4096 -o -C norbert@koppatz.com
Speichern als: ~/.ssh/norbert-ansible

ls ~/.ssh | grep norber
norbert-ansible
norbert-ansible.pub

Struktur

../../_images/ansible-struktur.png

Roles

Container für diverse Aufgabengruppen. Jede Gruppe setzt sich aus unterschiedlichen Aufgaben zusammen.

Tasks

Die Aufgaben werden in main.yml durch import-Anweisungen zusammengestellt.

Python 2

Vorbedingungen

yum install -y python-devel python-setuptools python-pip
pip install virtualenv

Inventory

hosts-Datei

  • Standard-Ordner: /etc/ansible/hosts
  • Welche Server werden bedient
  • besser mit -i explizit eine Datei angeben, ist felxibler
[Rolle1]
127.0.0.1

[Rolle2]
168.0.0.3

Konfiguration mit YAML

  • Einrückung ist wichtig

Python3 statt Python2 verwenden

[Rolle1]
127.0.0.1 ansible_python_interpreter=/usr/local/bin/python3

Ausführen

ansible-playbook -i ./hosts playbook.yml

Variablen

Variablen verschlüsseln/entschlüsseln

ansible-vault encrypt all # verschlüsseln
ansible-vault decrypt all # entschlüsseln
ansible-vault edit all    # direkte Bearbeitung

Variablen bearbeiten (bleiben verschlüsselt)

ansible-vault edit all

Verwenden

ansible-playbook --ask-vault-pass -i ./hosts playbook

Environmentvariablen

export AUTHORISIZED_KEY=~/.ssh/spezieller_key
ansible playbook --ask-vault-pass -i ./host --private-key=spezieller_key playbook

Templates