Wie man die Standard-Methode zur Privilegierhöhung in Ansible festlegt

AnsibleAnsibleBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Ansible ist ein leistungsstarkes Automatisierungstool, das die Verwaltung von Remote-Systemen vereinfacht. Wenn Sie mit Ansible arbeiten, ist es von entscheidender Bedeutung, die Standard-Methode zur Privilegierhöhung zu verstehen und zu konfigurieren, um eine sichere und effiziente Ausführung Ihrer Playbooks zu gewährleisten. In diesem Tutorial werden Sie durch den Prozess der Einstellung der Standard-Methode zur Privilegierhöhung in Ansible geführt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ansible(("Ansible")) -.-> ansible/ModuleOperationsGroup(["Module Operations"]) ansible(("Ansible")) -.-> ansible/PlaybookEssentialsGroup(["Playbook Essentials"]) ansible/ModuleOperationsGroup -.-> ansible/command("Execute Commands") ansible/ModuleOperationsGroup -.-> ansible/shell("Execute Shell Commands") ansible/PlaybookEssentialsGroup -.-> ansible/playbook("Execute Playbook") subgraph Lab Skills ansible/command -.-> lab-415241{{"Wie man die Standard-Methode zur Privilegierhöhung in Ansible festlegt"}} ansible/shell -.-> lab-415241{{"Wie man die Standard-Methode zur Privilegierhöhung in Ansible festlegt"}} ansible/playbook -.-> lab-415241{{"Wie man die Standard-Methode zur Privilegierhöhung in Ansible festlegt"}} end

Grundlagen der Privilegierhöhung

Die Privilegierhöhung ist ein grundlegendes Konzept in Ansible, das es Ihnen ermöglicht, Aufgaben mit erhöhten Rechten auf den Zielhosts auszuführen. Dies ist besonders wichtig, wenn Sie Systeme verwalten, die administrative oder Root-Rechte erfordern, um bestimmte Aktionen auszuführen, wie z. B. die Installation von Software, die Änderung von Systemkonfigurationen oder die Verwaltung von Diensten.

In Ansible ist die Standard-Methode zur Privilegierhöhung sudo, die es dem Ansible-Playbook ermöglicht, Befehle mit den Rechten des sudo-Benutzers auf den Zielhosts auszuführen. Ansible unterstützt jedoch auch andere Methoden zur Privilegierhöhung, wie su, pbrun, pfexec, doas und runas, je nach Anforderungen des Zielsystems.

Um die Wichtigkeit der Privilegierhöhung in Ansible zu verstehen, betrachten Sie das folgende Szenario:

- hosts: webservers
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present

In diesem Beispiel erfordert die Aufgabe der Installation des Apache-Webservers administrative Rechte auf den Zielhosts. Wenn das Ansible-Playbook ohne die entsprechende Methode zur Privilegierhöhung ausgeführt wird, wird die Aufgabe fehlschlagen und der Webserver nicht installiert werden.

Durch die Konfiguration der Standard-Methode zur Privilegierhöhung in Ansible können Sie sicherstellen, dass alle Aufgaben, die erhöhte Rechte erfordern, erfolgreich ausgeführt werden, ohne dass Sie für jede einzelne Aufgabe die Methode zur Privilegierhöhung angeben müssen.

Konfiguration der Standard-Methode zur Privilegierhöhung

Um die Standard-Methode zur Privilegierhöhung in Ansible zu konfigurieren, können Sie die Optionen become und become_method in Ihrer Ansible-Konfigurationsdatei (typischerweise ansible.cfg) oder in Ihrem Playbook verwenden.

Konfiguration in ansible.cfg

In der ansible.cfg-Datei können Sie die Standard-Methode zur Privilegierhöhung mit der folgenden Konfiguration festlegen:

[privilege_escalation]
become=yes
become_method=sudo

Diese Konfiguration legt die Standard-Methode zur Privilegierhöhung auf sudo fest. Sie können den Wert von become_method in andere unterstützte Methoden ändern, wie su, pbrun, pfexec, doas oder runas, je nach Anforderungen des Zielsystems.

Konfiguration im Playbook

Alternativ können Sie die Standard-Methode zur Privilegierhöhung direkt in Ihrem Ansible-Playbook mithilfe der Optionen become und become_method auf der Ebene des Plays oder der Aufgabe konfigurieren. Beispiel:

- hosts: webservers
  become: yes
  become_method: sudo
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present

In diesem Beispiel werden die Optionen become und become_method auf der Ebene des Plays festgelegt, was bedeutet, dass alle Aufgaben im Playbook standardmäßig die sudo-Methode zur Privilegierhöhung verwenden werden.

Sie können die Optionen become und become_method auch auf der Ebene der Aufgabe festlegen, wenn Sie für bestimmte Aufgaben eine andere Methode zur Privilegierhöhung verwenden müssen:

- hosts: webservers
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present
      become: yes
      become_method: sudo

Durch die Konfiguration der Standard-Methode zur Privilegierhöhung können Sie sicherstellen, dass Ihre Ansible-Playbooks Aufgaben mit den entsprechenden Rechten ausführen, ohne dass Sie für jede einzelne Aufgabe die Methode zur Privilegierhöhung angeben müssen.

Anwenden der Privilegierhöhung in Playbooks

Nachdem Sie nun wissen, wie Sie die Standard-Methode zur Privilegierhöhung in Ansible konfigurieren, wollen wir uns ansehen, wie Sie diese in Ihren Playbooks anwenden können.

Privilegierhöhung auf der Ebene des Plays

Wie bereits erwähnt, können Sie die Optionen become und become_method auf der Ebene des Plays festlegen, um die Standard-Methode zur Privilegierhöhung auf alle Aufgaben innerhalb des Plays anzuwenden. Dies ist eine bequeme Möglichkeit, sicherzustellen, dass alle Aufgaben, die erhöhte Rechte erfordern, erfolgreich ausgeführt werden.

- hosts: webservers
  become: yes
  become_method: sudo
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present
    - name: Start Apache service
      service:
        name: apache2
        state: started

In diesem Beispiel werden die Optionen become und become_method auf der Ebene des Plays festgelegt. Das bedeutet, dass sowohl die Aufgabe "Install Apache web server" als auch die Aufgabe "Start Apache service" mit der sudo-Methode zur Privilegierhöhung ausgeführt werden.

Privilegierhöhung auf der Ebene der Aufgabe

Wenn Sie für bestimmte Aufgaben eine andere Methode zur Privilegierhöhung verwenden müssen, können Sie die Optionen become und become_method auf der Ebene der Aufgabe festlegen. Dies kann nützlich sein, wenn Sie eine Mischung aus Aufgaben haben, die unterschiedliche Rechteebenen erfordern.

- hosts: webservers
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present
      become: yes
      become_method: sudo
    - name: Start Apache service
      service:
        name: apache2
        state: started
      become: yes
      become_method: su

In diesem Beispiel verwendet die Aufgabe "Install Apache web server" die sudo-Methode zur Privilegierhöhung, während die Aufgabe "Start Apache service" die su-Methode verwendet.

Indem Sie die Privilegierhöhung auf der entsprechenden Ebene in Ihren Ansible-Playbooks anwenden, können Sie sicherstellen, dass Ihre Aufgaben mit den erforderlichen Rechten ausgeführt werden, was die Zuverlässigkeit und Sicherheit der Verwaltung Ihrer Infrastruktur verbessert.

Zusammenfassung

In diesem Ansible-Tutorial haben Sie gelernt, wie Sie die Standard-Methode zur Privilegierhöhung konfigurieren, was für eine reibungslose und sichere Automatisierung Ihrer Remote-Systeme unerlässlich ist. Indem Sie die geeignete Methode zur Privilegierhöhung verstehen und anwenden, können Sie sicherstellen, dass Ihre Ansible-Playbooks mit den erforderlichen Rechten ausgeführt werden, was es Ihnen ermöglicht, Ihre Infrastruktur effektiver zu verwalten und zu warten.