Inhaltsverzeichnis

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.

Beispiel 2: sudoers anpassen

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

Script anlegen

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

Script Beschreibung

Die einzelnen Zeilen/Blöcke haben dabei folgende Funktionen und Aufgaben. Zeile:

Script ausführen

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

Ergebnis

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