Max, Dominik und Jochen unterhalten sich diesmal über Ansible. Dass Ansible selbst in Python geschrieben ist, macht es für Python-Entwickler wie uns natürlich besonders interessant. "Infrastructure as code" machen inzwischen ja irgendwie auch alle - bleibt nur die Frage, ob man Terraform von Ansible aus aufrufen sollte, oder umgekehrt 😏.
Shownotes
Unsere E-Mail für Fragen, Anregungen & Kommentare:
[email protected]
News aus der Szene
Django 4.1 released
django-widget-tweaks
Pydantic2
Pydantic v2 - The Plan - Podcast Episode
Pydantic V2 Plan
EuroPython 2022
Build a production ready GraphQL API using Python - Strawberry
Norvig's lispy: beautiful and illuminating Python code
Python's role in unlocking the secrets of the Universe with the James Webb Space Telescope
The Design of Everyday APIs
Using python to predict Asset price reversals
How To Train Your Graphics Card (To Read)
How we are making Python 3.11 faster
Robyn: An async Python web framework with a Rust runtime
Multithreaded Python without the GIL
Let's talk about JWT
`typing.Protocol`: type hints as Guido intended
Super Search with OpenSearch and Python
Ansible
Ansible ist ein Werkzeug zum managen von Servern. Benannt nach einen Science-Fiktion-Gerät, dass FTL-Kommunikation möglich macht (*Rocannon’s World*, by Ursula K Le Guin, 1966). Wird seitdem auch von anderen Authoren in ihren Werken genutzt.
ansible
chef
puppet
salt
Terraform
Jinja
archlinux
Debian “bullseye”
Jeff Geerling (geerlingguy)
NixOS
docker
poetry
#309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets
The twelve-factor app
Picks
Ibis
Two Sigma Presents Pandas at a Crossroads the Past Present and Future with Jeff Reback
django-context-decorator
XONSH is a Python-powered shell
pytest-mock
Weeknotes: Joining the board of the Python Software Foundation
FuckIt.py
Notizen von Max (vielen Dank dafür!)
Ansible ist ein Werkzeug zum managen von Servern.
Benannt nach einen Science-Fiktion-Gerät, dass FTL-Kommunikation möglich macht (*Rocannon’s World*, by Ursula K Le Guin, 1966). Wird seitdem auch von anderen Authoren in ihren Werken genutzt.
Ansible wurde 2015 von Redhat gekauft, vorher Ansible Inc.
Deklarativ, man sagt also was man haben möchte und Ansible setzt es dann um
Idempotent, man kann alles beliebig oft wiederholen ohne negativen Effekt und man landet dann in seinem deklarierten Zustand
Aufbau
Eigentlich wirft Ansible die Befehle in paramiko, einer SSH Lib für Python, und sagt ssh.exec_command(command). Heute ist alles natürlich komplizierter, aber wenn man sich den ersten Commit zu Ansible ansieht
Inventory
Hier zieht Ansible sich die Informationen heraus, welche Server bearbeitet werden sollen. Hier kann man dann auch Gruppiern und schon ein paar Variablen deklarieren
Statisches Inventory
Eine yml-Datei oder INI-Datei in der man seine Server bzw. IPs zu den Servern einträgt
Dynamisches Inventory
Hier kann man seinen Cloudprovider anzapfen oder auch LDAP und weiteres. Hierzu hat man Inventory-Plugins: darunter sind AWS, Docker, Kubernetes, Proxmox, Hetzner DNS -> `ansible-doc -t inventory -l`
Playbook
Enthalten die Beschreibung, was mit den Hosts im Inventory passieren soll, dazu greifen diese auf Plays zurück.
Änlich wie Runbooks oder Checklisten die abzuarbeiten sind, nur automatisch
Plays
Hier wird beschrieben was ausgeführt werden soll und auf welchem Host das passieren soll
Plays haben Jinja2 support - Yeah!
Loopen mit `with_items` und dann o.ä
Tasks
Eine Aktion die in einem Play passiert
Handlers
Tasks die von vorherigen Tasks ausgeführt werden, sofern diese den Status auf dem Server geändert hat ('changed')
Role
Eine Sammlung von Tasks, Variablen, Plugins, Templates und