kB schrieb:
Es benötigt wohl auf jedem zu pflegenden System einen laufenden SSH-Server und der Benutzer root
(bzw. ein Äquivalent) muss sich direkt anmelden dürfen?
Genau, du brauchst auf dem Ziel einen SSH-Server, Python (aktuell wird sowohl Python 2 als auch Python3 unterstützt) und einen Nutzer, der sich dort anmelden und die zur Ausführung des Playbooks benötigten Rechte erlangen kann (darf auch über su bzw. sudo passieren, dafür gibt es die become Direktive)
Ist es auch zur Erstinstallation geeignet, d.h. kann dieser SSH-Server auch in der Firmware des Rechners laufen?
Wenn diese "Firmware" ein unterstütztes Ziel von Ansible ist und die oben genannten Voraussetzungen unterstützt - ja. Aber abgesehen von CoreBoot gibt es da ja eigentlich nichts an Firmware, was auf Linux aufbaut und ich weiß nicht, ob und wie gut man das dafür erweitern könnte. Den Schritt kann man ja normalerweise z.B. mittels PXE-Boot und preseed-Datei (bzw. dem für 20.04 geplanten Nachfolger für automatisierte Server-Installationen) oder Vagrant für VMs erschlagen - puppet macht das ja auch nicht viel anders: https://puppet.com/docs/pe/2017.2/razor_using.html
Was passiert, wenn ein zu aktualisierender Rechner temporär nicht erreichbar ist? Wird dann ein beauftragter, aber nicht ausführbarer Task später automatisch wieder gestartet oder muss das der Administrator am Steuerrechner selbst verwalten/veranlassen?
Wenn man keine besonderen Vorkehrungen trifft, wird standardmäßig in einer .retry Datei vermerkt, wenn ein Host nicht erreichbar ist oder Tasks fehlschlagen. Man könnte dann den Exit-Code von ansible-playbook auswerten und das Playbook erneut mit gesetzter --limit
Option starten lassen, um es gezielt auf den vorher nicht erreichbaren Systemen laufen zu lassen (vgl. z.B. https://github.com/ksator/EVPN_DCI_automation/wiki/how-to-retry-a-playbook-for-the-devices-that-failed). Wenn man erwartet, dass ein System oder Dienst länger brauchen könnte, um wieder verfügbar zu sein, kann man darauf warten: https://docs.ansible.com/ansible/latest/modules/wait_for_module.html