Ansible - einfaches Playbook-Beispiel: sudoers anpassen

Bild: Ansible Logo

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
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:

  • Zeile 1 - 5: Der bereits bekannte Block aus dem ersten Beispiel, der Aussagen trifft, wo das Script laufen soll, unter welchen User-Rechten das passieren soll etc. pp..
  • Zeile 6:
  • Zeile 7: tasks Schlüsselwort mit den nachfolgenden Aufgaben, die mit dem Playbook dann abgearbeitet werden sollen.
  • Zeile 8: name: Beschreibender Text (All users from groub 'wheel' are allowed sudo users), der später beim Aufruf von ansible-playbooks ausgegeben werden soll.
  • Zeile 9 - 15: copy: Ansible Module copy welches zum Kopieren, verändern und auch Löschen von Dateien herangezogen werden kann.
  • Zeile 16: ... Endekennzeichen der YML-Datei

Nun 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
/etc/sudoers.d/10_passwd_sudo_wheel
# Allows people in group wheel to run all command
%wheel    ALL=(ALL)       ALL

Links

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • linux/ansible/playbook_example_02.txt
  • Zuletzt geändert: 14.09.2022 13:46.
  • von django