Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

7 tägliche Sysadmin-Aufgaben zur Automatisierung mit Ansible

Systemadministrator mit ansible
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Ansible, ein kostenloses und Open-Source-Python-basiertes Projekt von Red Hat, ist eine beliebte Konfigurationsmanagement- und IT-Automatisierungsplattform.

Es ist plattformübergreifend und kann mit den meisten modernen Betriebssystemen arbeiten, einschließlich Linux, Windows und Mac. Es unterstützt eine deklarative Sprache, die in geschrieben ist YAML or YAML Ain't Markup Language Systemkonfiguration zu beschreiben.

Ansible hat zusammen mit anderen modernen Konfigurationsmanagement-Plattformen die IT-Automatisierung und Industriestandards revolutioniert. Konfigurationsmanagement-Tools sind Teil der DevOps Toolset und sind ein untrennbarer Bestandteil eines modernen IT-Prozesslebenszyklus. Dies gilt für jede moderne Infrastrukturumgebung, unabhängig davon, ob sie auf einer On-Premise-, Hybrid- oder Cloud-Umgebung aufgebaut ist. Nicht nur für DevOps, Ansible kann auch dabei helfen, viele alltägliche Aufgaben zu automatisieren, die von einem System Administrator.

Einer der Vorteile der Verwendung Ansible ist, dass es agentenlos ist und nicht viel braucht, um loszulegen SSH Zugriff auf den Zielcomputer und die unterstützte Version von Python, die auf den meisten modernen Betriebssystemen bereits standardmäßig installiert ist. Da es sich um ein leichtgewichtiges Tool handelt, kann es außerdem mit einem Erbe innovativer Systeme bereitgestellt und verwendet werden.

Verwendung von Ansible

Besetzung

Ansible ist ein Tool der Wahl für die Orchestrierung verschiedener Systemadministrations- und Bereitstellungsaufgaben. Playbooks ermöglichen die Verwendung derselben Orchestrierung workflows über verschiedene Projekte und YAML basierte Konfigurationsdaten ermöglichen das Speichern und Versionieren Ihrer Infrastruktur in einem Git-Repository oder einem unterstützten Versionskontrolle Plattform.

Anwendungsbereitstellung

Egal, ob es sich um eine einfache Codeanwendung mit wenigen Zeilen oder um eine umfangreiche Bereitstellung mit mehreren Ebenen handelt, Ansible ermöglicht die Automatisierung der End-to-End Anwendungsbereitstellung Lebenszyklus.

Sicherheit und Compliance

Ansible kann auch dabei helfen, sicherzustellen, dass Ihre Systeme gemäß den Richtlinien Ihres Unternehmens gesichert sind und den Industriestandards entsprechen. Es kann auf Tausenden von Servern ausgeführt werden, ein Audit generieren und diese Sicherheitslücken schließen, wodurch der Administrator die vollständige Kontrolle über die Umgebung erhält.

Sehen wir uns nun einige der häufigsten an Sysadmin Aufgaben, die Sie mit Ansible automatisieren können.

Copy files from a local or remote system

Als Systemadministrator ist es üblich, Dateien von einem Verzeichnis in ein anderes zu kopieren. Konfigurationsdateien müssen oft auf Remote-Server kopiert werden, oder manchmal müssen wir Dateien von einem Remote-Standort an einen anderen verschieben.

Ansible copy Modul kann Ihnen helfen, diese Aufgaben in a Textbuch.

Es ist eine Routineaufgabe für einen Systemadministrator, den Status von verwalteten Servern zu kennen und vordefinierte Aktionen gemäß den Richtlinien des Unternehmens auszuführen. Eine solche Aufgabe besteht darin, die Serverbetriebszeit zu kennen. Mit Ansible können wir Betriebszeitwerte einfach abrufen und zusammen ausdrucken. Ein Beispiel zum Kopieren ntp Konfiguration vom lokalen zu einem entfernten Server mit copy Modul ist unten dargestellt:

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Copy a new ntp configuration file and back up the original, if it differs
      copy:
        src: ./ntp.conf
        dest: /etc/ntp.conf
        owner: root
        group: root
        mode: '0644'
        backup: yes

Configure additional cron jobs

Das Einrichten geplanter Jobs zur Ausführung von Routineaufgaben gehört zur Verwaltung jedes Servers. Sie können planen automatische Backups, Patching, Auditing usw. zu bestimmten Tages- oder Monatszeiten automatisch und lässt Ihnen produktive Zeit.

cron ist ein solches Tool in Linux, das die Planung unterstützt, und Ansible kann Ihnen dabei helfen, diese Jobs hinzuzufügen oder zu ändern. Als Beispiel zeigt das folgende Playbook, wie Sie a rsync Job als root auf einigen oder allen Ihrer Server ganz einfach mit Ansible.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Deploy cron job
      cron:
        name: "Set rsync job"
        user: root
        minute: "5"
        hour: "4"
        job: "rsync -avz /path/to/folder1 /path/to/folder1 2>&1"

Manage disks and filesystems

Ansible kann verwendet werden, um Festplatten zu verwalten, Partitionslayouts, Dateisysteme und Mounts, einschließlich /etc/fstab auf Linux-Servern. Verschiedene Ansible-Module machen dies möglich. Hier ist ein Beispiel, das eine Partition auf einem erstellt 100GB Festplatte, formatiert sie mit ext4 filesystem erstellt ein neues Verzeichnis zum Mounten der Partition und mountet es schließlich in ein bestimmtes Verzeichnis. Ein Eintrag in /etc/fstab wird je nach Moduloptionen auch durch temporäres oder permanentes Mounten erstellt.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Create a partition
      parted:
        device: /dev/sdb
        number: 1
        part_end: "100%"
        state: present
    - name: Format new partition
      filesystem:
        fstype: ext4
        dev: /dev/sdb1
    - name: Create mount directory
      file:
        path: /data
        state: directory
    - name: Mount partition
      mount:
        path: /data
        src: /dev/sdb1
        fstype: ext4
        state: mounted

Collect server logs

Das Aufbewahren von Protokollen an einem bequemen Ort ist manchmal für Sicherheit, Audit und Analyse unerlässlich. Ansible ermöglicht die Sammlung von Protokolle von verschiedenen Servern in Ihrer Unternehmensumgebung und hält sie einfach an Ihrem definierten Standort. Hier ist das Playbook, um dies zu erreichen:

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
  
    - name: Find logs
      find:
        paths: /var/log/
        patterns: '*.log'
        recurse: yes
      register: _logs

    - name: Fetch logs
      fetch:
        src: "{{ item.path }}"
        dest: /tmp/logs
      with_items: "{{ _logs.files }}"

Install or remove packages and software

Pakete müssen häufig auf Benutzeranfragen oder als Teil der anfänglichen Server-Builds installiert werden. Möglicherweise müssen wir auch bestimmte Pakete entfernen, die nicht mehr benötigt werden oder einige kritische Fehler usw. aufweisen. Ansible ermöglicht es Ihnen, Pakete einfach zu installieren oder zu entfernen, ohne zu jedem Server gehen und manuelle Befehle ausführen zu müssen. Hier ist ein Beispiel, das die Installation und Entfernung von jeweils einem Paket demonstriert für Ubuntu und RHEL/CentOS-basierte Linux-Server.

---
- hosts: ubuntu
  gather_facts: no
  tasks:
    - name: Install lsof utility
      apt:
        pkg: lsof
        state: latest
      sudo: yes
    - name: Remove ARP Scan utility
      apt:
        pkg: arp-scan
        state: absent
      sudo: yes
      
 ---
- hosts: centos
  gather_facts: no
  tasks:
    - name: Install lsof utility
      yum:
        pkg: lsof
        state: latest
      sudo: yes
    - name: Remove ARP Scan utility
      yum:
        pkg: arp-scan
        state: absent
      sudo: yes

Managing users

Benutzer und Gruppen bilden die Grundstruktur, um die herum Unix/Linux-basierte Systeme Zugriffe und Berechtigungen verwalten. In einem großen Unternehmen kann die Verwaltung von Benutzern und Gruppen trotz Automatisierung zur Unterstützung der Umgebung eine große Herausforderung sein.

Mit Ansible verfügt der Systemadministrator über ein hervorragendes Werkzeug zum Erstellen, Ändern und Löschen von Benutzern und Gruppen mit allen im Betriebssystem unterstützten Möglichkeiten.

Hier ist ein einfaches Beispiel, das das Erstellen und Löschen von Benutzern und Gruppen mit Ansible zeigt. Nachdem dieses Playbook ausgeführt wurde, haben die Zielserver groupA und groupB erstellt mit gegebenen GIDs während user1 wird entfernt, falls vorhanden. Ein neuer Benutzer ohne Shell wird erstellt als user2 mit gegebener UID, zugewiesenen Gruppen und gesperrtem Passwort.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - group:
        gid: 12310
        name: groupA
        state: present
    - group:
        gid: 12311
        name: groupB
        state: present
    - user:
        name: user1
        state: absent
    - user:
        name: user2
        uid: 12427
        shell: /bin/false
        password_lock: yes
        groups: groupA, groupB

Managing services

Dienste sind Prozess-Daemons, die im Hintergrund laufen und Dienste wie sshd Bereitstellung SSH Konnektivität usw. Mit Ansible können Sie System- und Benutzerdienste verwalten, z. B. starten, stoppen und neu starten. Hier ist ein Beispiel-Playbook, um dies zu demonstrieren:

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Restart ssh daemon
      service:
        name: ssh
        state: restarted
    - name: Restart sssd daemon
      service:
        name: sssd
        state: stopped
    - name: Restart httpd daemon
      service:
        name: httpd
        state: started

Im obigen Beispiel wird der SSH-Dienst neu gestartet, während der SSSD-Dienst als nächstes gestoppt wird. Die httpd Daemon wird gegen Ende gestartet. Da Ansible idempotent ist, werden alle Dienste, die bereits gestartet oder gestoppt wurden, nicht geändert, während der Neustart immer den Dienststatus ändert. Denken Sie daran, den Dienstnamen zu überprüfen, da verschiedene Linux-Distributionen andere Namen verwenden, sogar für denselben Dienst wie ssh und sshd.

Zusammenfassung

Ansible macht das Leben eines Systemadministrators einfach, indem es Ihnen ermöglicht, wiederholte und zeitaufwendige Aufgaben automatisiert auszuführen und menschliche Fehler und Arbeitsaufwand zu reduzieren. Darüber hinaus ermöglicht es die Speicherung von Konfigurationsdaten in einem zentralen Code-Repository wie Git, sodass mehrere Benutzer zusammenarbeiten und jede Aktivität überprüfen können.

Um mehr über Ansible und seine umfangreichen Module zu erfahren, beziehen Sie sich auf seine Dokumentation.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu DevOps
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder