„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Erste Schritte mit Ansible – Der Anfängerleitfaden: Day of Days DevOps Tools-Reihe

Erste Schritte mit Ansible – Der Anfängerleitfaden: Day of Days DevOps Tools-Reihe

Veröffentlicht am 08.11.2024
Durchsuche:306

Getting Started with Ansible - The Beginner’s Guide : Day of days DevOps Tools Series

Willkommen zum 30. Tag unserer Serie „50 DevOps-Tools in 50 Tagen“! Heute werden wir Ansible erkunden, eines der wichtigsten Tools im DevOps-Toolkit. Dieser Blog führt Sie in die Grundlagen von Ansible ein, erläutert die wichtigsten Komponenten und zeigt Ihnen anhand einfacher Beispiele den Einstieg. Wir halten die Dinge einfach und machen dies zu einem perfekten Ausgangspunkt für Anfänger.

Was ist Ansible?

Ansible ist ein Open-Source-Automatisierungstool, das Aufgaben wie Konfigurationsmanagement, Anwendungsbereitstellung und Orchestrierung vereinfacht. Es ist einfach und dennoch leistungsstark konzipiert und ermöglicht es Ihnen, sich wiederholende Aufgaben zu automatisieren und Ihre Infrastruktur effizienter zu verwalten.

Hauptmerkmale:

Agentlos: Ansible erfordert keine Installation eines Agenten auf Remote-Systemen, was den Overhead reduziert.
Von Menschen lesbare YAML-Playbooks: Ansible verwendet YAML (Yet Another Markup Language), um Playbooks zu schreiben, die einfach zu lesen und zu schreiben sind.
Idempotent: Sie können dasselbe Playbook mehrmals ausführen, ohne sich Gedanken über unbeabsichtigte Änderungen machen zu müssen.

Warum Ansible verwenden?

Agentenlose Architektur: Da Ansible agentenlos ist, muss keine zusätzliche Software auf den Client-Systemen installiert werden, wodurch der Overhead und potenzielle Sicherheitsrisiken reduziert werden.

Einfache Syntax: Ansible verwendet YAML für seine Playbooks, das einfach zu lesen und zu schreiben ist und es auch für diejenigen zugänglich macht, die neu in der Automatisierung sind.

Idempotenz: Ansible stellt sicher, dass der gewünschte Zustand unabhängig vom aktuellen Zustand erreicht wird. Das bedeutet, dass das mehrmalige Ausführen eines Playbooks keine Probleme oder doppelten Aktionen verursacht.

Umfassender Community-Support: Mit einer großen und aktiven Community verfügt Ansible über eine Fülle von Rollen, Modulen und Playbooks, die wiederverwendet und an Ihre Bedürfnisse angepasst werden können.

Skalierbarkeit: Ganz gleich, ob Sie ein paar Server oder Tausende verwalten, Ansible lässt sich gut skalieren und eignet sich daher für Organisationen jeder Größe.

Kernkomponenten von Ansible

Inventar: Dies ist eine Liste der Hosts (Server), die Ansible verwaltet. Inventare können statisch (in einer Datei definiert) oder dynamisch (durch ein Skript generiert) sein.

Module: Module sind die Arbeitspferde von Ansible. Sie werden auf Remote-Hosts ausgeführt, um Aufgaben wie das Installieren von Paketen, das Kopieren von Dateien oder das Verwalten von Diensten auszuführen.

Playbooks: Playbooks sind die Konfigurations-, Bereitstellungs- und Orchestrierungssprache von Ansible. Sie sind in YAML geschrieben und beschreiben eine Reihe von Aufgaben, die auf Hosts ausgeführt werden sollen.

Rollen: Rollen ermöglichen es Ihnen, Playbooks in wiederverwendbare Komponenten zu unterteilen, was die Verwaltung und Organisation großer Projekte erleichtert.

Variablen: Variablen werden zum Speichern von Werten verwendet, die in Playbooks wiederverwendet werden können. Sie bieten Flexibilität und ermöglichen Ihnen die Anpassung von Playbooks ohne Hardcodierung von Werten.

Handler: Handler sind spezielle Aufgaben, die nur ausgeführt werden, wenn sie von anderen Aufgaben ausgelöst werden. Sie werden oft für Dinge wie den Neustart von Diensten verwendet.

Ansible einrichten

Beginnen wir mit der Installation von Ansible auf Ihrem Kontrollknoten. Der Installationsprozess ist unkompliziert und variiert je nach Betriebssystem leicht.

Ansible unter Ubuntu/Debian installieren

sudo apt update
sudo apt install ansible -y

Ansible unter CentOS/RHEL installieren

sudo yum install epel-release -y
sudo yum install ansible -y

Überprüfen der Installation
Nach der Installation können Sie überprüfen, ob Ansible korrekt installiert ist, indem Sie Folgendes ausführen:

ansible --version

Schreiben Sie Ihr erstes Ansible-Playbook

Lassen Sie uns ein einfaches Playbook erstellen, um Nginx auf einem Remote-Server zu installieren. Wir beginnen mit der Definition unseres Inventars.

Schritt 1: Erstellen Sie eine Inventardatei
Erstellen Sie eine Datei mit dem Namen hosts:

[webservers]
34.42.111.35
34.42.111.66

Diese Inventardatei definiert eine Gruppe namens Webserver, die zwei Server enthält.

Schritt 2: Schreiben Sie das Playbook
Als Nächstes schreiben wir ein Playbook, um Nginx auf diesen Servern zu installieren und zu starten.

Erstellen Sie eine Datei mit dem Namen nginx_setup.yml:

---
- name: Install Nginx on web servers
  hosts: webservers
  become: yes

  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present

    - name: Start Nginx service
      service:
        name: nginx
        state: started
        enabled: true

Das Playbook verstehen

name: Eine für Menschen lesbare Beschreibung dessen, was das Playbook oder die Aufgabe tut.
hosts: Gibt die Gruppe von Hosts (aus dem Inventar) an, auf denen das Playbook ausgeführt werden soll.
become: Gibt an, dass Ansible erhöhte Berechtigungen verwenden soll (wie sudo).
Aufgaben: Listet die Schritte auf, die Ansible ausführen wird. Hier installieren wir Nginx und stellen sicher, dass der Dienst beim Booten gestartet und aktiviert wird.

Schritt 3: Führen Sie das Playbook aus
Um das Playbook auszuführen, führen Sie den folgenden Befehl aus:

ansible-playbook -i hosts nginx_setup.yml

Dieser Befehl weist Ansible an, die Aufgaben in nginx_setup.yml auf den Hosts auszuführen, die in der Host-Inventardatei definiert sind.

Reales Szenario: Automatisierung der Paketinstallation

Stellen Sie sich ein Szenario vor, in dem Sie eine Reihe von Paketen auf mehreren Servern installieren müssen. Dies manuell durchzuführen wäre zeitaufwändig und fehleranfällig. Mit Ansible können Sie diese Aufgabe einfach automatisieren.

Hier ist ein einfaches Playbook zum Installieren mehrerer Pakete:

---
- name: Install essential packages
  hosts: all
  become: yes

  tasks:
    - name: Install packages
      apt:
        name:
          - git
          - curl
          - htop
        state: present

In diesem Playbook installiert Ansible Git, Curl und Htop auf allen im Inventar aufgeführten Servern. Das apt-Modul stellt sicher, dass jedes Paket installiert wird.

Beispiel aus der Praxis: Vereinfachung der Benutzerverwaltung

Stellen Sie sich vor, Sie müssen einen neuen Benutzer auf mehreren Servern erstellen und ihn bestimmten Gruppen zuweisen. Es wäre mühsam, diese Aufgabe manuell auf jedem Server auszuführen. Mit Ansible ist das ein Kinderspiel.

So können Sie es tun:

---
- name: Create a new user
  hosts: all
  become: yes

  tasks:
    - name: Create user "devuser"
      user:
        name: devuser
        state: present
        groups: sudo

Dieses Playbook erstellt einen neuen Benutzer-Devuser auf allen verwalteten Servern und fügt ihn der Sudo-Gruppe hinzu.

Vorteile der Verwendung von Ansible

Konsistenz: Ansible stellt sicher, dass Ihre Systeme konsistent konfiguriert sind, wodurch das Risiko einer Konfigurationsabweichung verringert wird.
Effizienz: Die Automatisierung sich wiederholender Aufgaben schafft Zeit für wichtigere Arbeiten.
Skalierbarkeit: Ganz gleich, ob Sie eine Handvoll Server oder Tausende verwalten, Ansible lässt sich mühelos skalieren.
Flexibilität: Der modulare Ansatz von Ansible ermöglicht es Ihnen, die Funktionalität nach Bedarf anzupassen und zu erweitern.

Abschluss

Ansible ist ein leistungsstarkes und dennoch benutzerfreundliches Tool, das die Verwaltung Ihrer Infrastruktur erheblich vereinfachen kann. Mit nur wenigen Codezeilen können Sie komplexe Aufgaben automatisieren und so Konsistenz und Zuverlässigkeit in Ihrer gesamten Umgebung gewährleisten. Ganz gleich, ob Sie Server einrichten, Anwendungen bereitstellen oder Konfigurationen verwalten, Ansible kann Ihnen dabei helfen, dies effizienter zu tun.

Morgen befassen wir uns mit fortgeschritteneren Ansible-Themen und erkunden Funktionen, die Ihre Automatisierung auf die nächste Stufe heben können. Bleiben Sie dran!

? Folgen Sie mir unbedingt auf LinkedIn, um die neuesten Updates zu erhalten: Shiivam Agnihotri

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/shivam_agnihotri/getting-started-with-ansible-the-beginners-guide-day-30-of-50-days-devops-tools-series-1iae?1 Beliebig Wenn Sie gegen einen Verstoß verstoßen, wenden Sie sich zum Löschen bitte an [email protected]
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3