Manuelle Server-Admin skaliert nach 10-20 Servern nicht mehr.
Was wir liefern
Git-Repo mit Playbooks, AWX, CI/CD-Integration.
Beispiel: Ansible-Playbook
Eine typische Playbook-Struktur mit Rollen, angewendet auf eine Servergruppe:
# site.yml — hardening de baza pe un grup de servere
- hosts: webservers
become: true
roles:
- common # useri, ssh keys, timezone
- hardening # sshd, fail2ban, unattended-upgrades
- nginx
# rulare: ansible-playbook -i inventory site.yml
Inventory + Ad-hoc-Befehle
Ein einfaches Inventory und schnelle Befehle ohne Playbook:
# inventory.ini
[web]
10.0.0.11
10.0.0.12
[db]
10.0.0.20
# comenzi ad-hoc
ansible all -i inventory.ini -m ping
ansible web -i inventory.ini -m apt -a 'name=nginx state=latest' --become
ansible all -i inventory.ini -m shell -a 'uptime'
Secrets mit Ansible Vault
Sie halten Passwoerter im Repo verschluesselt, entschluesselt nur zur Laufzeit:
ansible-vault create group_vars/all/vault.yml # editezi criptat
ansible-vault edit group_vars/all/vault.yml
# rulare cu parola vault
ansible-playbook site.yml --ask-vault-pass
# sau cu fisier de parola in CI
ansible-playbook site.yml --vault-password-file ~/.vault_pass
Rollen-Struktur
Eine wiederverwendbare Rolle, mit Tasks, Handlers und Templates:
ansible-galaxy init roles/nginx
# roles/nginx/tasks/main.yml
- apt: { name: nginx, state: present }
- template: { src: site.conf.j2, dest: /etc/nginx/sites-enabled/site.conf }
notify: reload nginx
# roles/nginx/handlers/main.yml
- name: reload nginx
service: { name: nginx, state: reloaded }
Sichere Laeufe: check, diff, tags
Sie sehen vorher, was sich aendern wuerde, und fuehren nur einen Teil aus:
ansible-playbook site.yml --check --diff # dry-run + ce se schimba
ansible-playbook site.yml --tags nginx --limit web
ansible-playbook site.yml --start-at-task 'Configure TLS'
ansible-lint site.yml # best practices