Im Eingangskapitel Grundlagen haben wir uns mit der Installation bereits befasst. Auch haben wir uns schon in den beiden Kapiteln Playbooks und YAML - was ist das? eingehend mit den Hintergrundinformationen beschäftigt, so dass wir uns nun mit unsere Playbooks beschäftigen können.
Bei unserem zweiten Beispiel wollen wir lediglich dafür sorgen, dass die Nutzer der Gruppe wheel
beim Ausführen von Befehlen, die root-Berechtigungen erfordern, ihr Passwort eingeben müssen. Hierzu werden wir im Verzeichnis /etc/sudoers.d/
eine Datei mit dem Namen 10_passwd_sudo_wheel
ablegen, die nachfolgenden Inhalt aufweist.
# Allows people in group wheel to run all command %wheel ALL=(ALL) ALL
Hier legen wir nun unser Ansible-Script ab.
$ vim 02_passwd_sudo_wheel.yml
--- - hosts: centos8 become: true vars: sudoers: ansible tasks: - name: All users from groub 'wheel' are allowed sudo users copy: content: "# Allows people in group wheel to run all command\n%wheel ALL=(ALL) ALL\n" dest: /etc/sudoers.d/10_passwd_sudo_wheel owner: root group: root mode: "0440" validate: visudo -cf %s ...
Die einzelnen Zeilen/Blöcke haben dabei folgende Funktionen und Aufgaben. Zeile:
tasks
Schlüsselwort mit den nachfolgenden Aufgaben, die mit dem Playbook dann abgearbeitet werden sollen.name
: Beschreibender Text (All users from groub 'wheel' are allowed sudo users), der später beim Aufruf von ansible-playbooks
ausgegeben werden soll.copy:
Ansible Module copy welches zum Kopieren, verändern und auch Löschen von Dateien herangezogen werden kann. ...
Endekennzeichen der YML-DateiNun wollen wir unser ersten Playbook ausführen, um auf dem Zielhost eine Datei mit dem gewünschten Inhalt ablegen; hierzu rufen wir unser Script wie folgt auf:
$ ansible-playbook -v 02_passwd_sudo_wheel.yml
Using /etc/ansible/ansible.cfg as config file BECOME password: PLAY [centos8] **************************************************************************************************************************************** TASK [Gathering Facts] **************************************************************************************************************************************** ok: [www8.dmz.nausch.org]
TASK [All users from groub 'wheel' are allowed sudo users] ***************************************************************************** changed: [www8.dmz.nausch.org] => {"changed": true, "checksum": "b51f017f799aca0d0aef9fa29b7da87006ea5c29", "dest": "/etc/sudoers.d/10_passwd_sudo_wheel", "gid": 0, "group": "root", "md5sum": "a7c4cc84eb0dbbf844d2a8d4fbe64164", "mode": "0440", "owner": "root", "secontext": "system_u:object_r:etc_t:s0", "size": 80, "src": "/home/ansible/.ansible/tmp/ansible-tmp-1578174240.9800038-82649856412743/source", "state": "file", "uid": 0}
PLAY RECAP *************************************************************************************************************************************** www8.dmz.nausch.org : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Auf dem Zielhost findet sich nun unsere gewünschte Datei mit dem zugehörigen Inhalt.
# cat /etc/sudoers.d/10_passwd_sudo_wheel
# Allows people in group wheel to run all command %wheel ALL=(ALL) ALL