Zeile 156: |
Zeile 156: |
| install_recommends: false | | install_recommends: false |
| update_cache: true | | update_cache: true |
| + | |
| + | === Roles === |
| + | |
| + | Roles ist ein Konzept, um bestimmte Funktionalitäten zu bündeln; diese können dann auf verschiedenen Rechnern wiederverwendet werden. |
| + | |
| + | Mit ansible-galaxy können diese Rollen auch leicht an andere Benutzer weitergegeben werden. |
| + | |
| + | ==== Nginx Ansible Role ==== |
| + | |
| + | Die offizielle Rolle für den [[Nginx]]-Server nennt sich [https://galaxy.ansible.com/nginxinc/nginx nginxinc.nginx]. Sie lässt sich folgendermaßen installieren: |
| + | |
| + | ansible-galaxy install nginxinc.nginx |
| + | |
| + | Die Rolle lässt sich dann folgendermaßen ins Playbook integrieren: |
| + | <pre> |
| + | |
| + | - hosts: NGINXRECHNER |
| + | roles: |
| + | - role: galaxy/nginxinc.nginx |
| + | vars: |
| + | nginx_debug_output: true |
| + | nginx_install_from: os_repository |
| + | </pre> |
| + | |
| + | === Ansible und Container === |
| + | |
| + | Im Zusammenspiel mit podman bietet ansible-bender eine Möglichkeit Container-Images zu erstellen und zu betreiben. |
| + | |
| + | Auch das reine Ansible bietet im Zusammenspiel mit Docker vielfältige Möglichkeiten Docker-Container-Images zu erstellen und laufen zu lassen. Siehe |
| + | * https://tech.labs.oliverwyman.com/blog/2019/08/30/docker-without-dockerfiles/ |
| + | |
| + | === Ansible und Hetzner Cloud === |
| + | Siehe |
| + | * https://www.unixwitch.de/de/sysadmin/tools/hcloud-ansible |
| + | * https://community.hetzner.com/tutorials/howto-hcloud-ansible |
| + | |
| + | == Fehlerbehebung == |
| + | |
| + | Ansible hat Probleme, wenn die kontrollierende Maschine auf Python2 und die kontrollierte auf Python3 läuft. Das äußert sich z.B. mit folgender Warnung:<cite> |
| + | [WARNING]: Module invocation had junk after the JSON data: AttributeError("module 'platform' |
| + | has no attribute 'dist'") |
| + | </cite> |
| + | |
| + | Daher lässt man auf dem Zielrechner (hier: <code>TARGET</code>) auch Python2 laufen, indem man die <code>inventory.yaml</code> ändert: |
| + | |
| + | TARGET: |
| + | ansible_python_interpreter: "/usr/bin/python2" |
| | | |
| == Weiterführendes == | | == Weiterführendes == |