Ansible

Kommandos

ansible-playbook playbook.yml --start-at-task="install packages"
ansible-playbook playbook.yml --step

ansible vault

Das Passwort kann in einer Datei abgelegt werden. Mit der Umgebungsvariable ANSIBLE_VAULT_PASSWORD_FILE kann auf die Passwortdatei verwiesen werden. Alternativ in der ansible.cfg im defaults Abschnitt mit vault_password_file.

Passwortdatei durch symlink vor git commit schützen
echo ${MY_VAULT_PASS} > ~/.config/.vault_pass
chmod 0600 ~/.config/.vault_pass
echo '.vault_pass' >> .gitignore
ln -s ~/.config/.vault_pass .vault_pass
Passwort aus Umgebungsvariable lesen
echo "#!/bin/sh" > .vault_pass
echo "echo ${MY_VAULT_PASS}" > .vault_pass
chmod +x .vault_pass
Verzeichnisstruktur
.
├── . . .
├── group_vars/
│   └── database/
│       ├── vars
│       └── vault
├── host_vars/
│   └── db01/
│       ├── vars
│       └── vault
└── . . .
Inhalt vars/vault
# vars
---
password: "{{ vault_password }}"

# vault
---
vault_password: P4ssw0rd

Beispiele

dynamic groups
# https://spacelift.io/blog/ansible-best-practices
- name: Gather facts from all hosts
  hosts: all
  tasks:
    - name: Classify hosts depending on their OS distribution
      group_by:
        key: OS_{{ ansible_facts['distribution'] }}
- hosts: OS_Ubuntu
- hosts: OS_CentOS

Referenzen