Ansible: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
Zeile 58: Zeile 58:
 
In YAML werden die Zeilen mit Leerzeichen, nicht mit Tabs eingerückt.
 
In YAML werden die Zeilen mit Leerzeichen, nicht mit Tabs eingerückt.
  
=== Ping-Test ===
+
=== Einfache Kommandos ===
 +
==== Ping-Test ====
  
 
   ansible all -m ping
 
   ansible all -m ping
  
=== Ausführen eines Shell-Kommandos ===
+
==== Ausführen eines Shell-Kommandos ====
  
 
Mit Ansible lässt sich auch jedes beliebige [[Shell]]-Kommando ausführen:
 
Mit Ansible lässt sich auch jedes beliebige [[Shell]]-Kommando ausführen:
Zeile 70: Zeile 71:
 
Will man das Kommando als root ausführen, setzt man <code>--become</code> hinzu:
 
Will man das Kommando als root ausführen, setzt man <code>--become</code> hinzu:
 
   ansible pia2016 --become -m command -a "whoami"
 
   ansible pia2016 --become -m command -a "whoami"
 +
 +
=== Playbooks ===
 +
 +
Mit Playbooks kann man automatisieren, welcher Rechner welchen Zustand erreichen soll.
 +
 +
Dazu nutzt man Tasks in Form von Modulaufrufen (deklarative Ansible-Form von Befehlen), Rechnergruppen und Rollen.
 +
 +
==== Package-Updates ====
 +
 +
Folgender Auszug aus den Tasks eines Playbooks sollte das Paket-Updaten auf einem [[Debian]]- oder [[Ubuntu]]-System ermöglichen:
 +
 +
  - name: update and upgrade apt packages
 +
    become: true
 +
    apt: 
 +
      name: "*"
 +
      state: latest
 +
      install_recommends: false
 +
      update_cache: true
  
 
== Weiterführendes ==
 
== Weiterführendes ==

Version vom 15. September 2019, 06:39 Uhr

Ansible ist ein so genanntes Orchestrierungswerkzeug, mit dem man Computer automatisch konfigurieren kann. Dazu verwendet Ansible so genannte Playbooks.



Vorbereitung

Vorbereitung des Zielrechners

  • Installation eines Minimalsystems
  • Einrichten eines Benutzers speziell für ansible (optional)
  • Installation der Pakete
    • openssh-server
    • sudo
      • Der ansible-Benutzer das passwortlose Ausführen erlauben (siehe Sudo)
    • python3
      • Verlinke python3: sudo ln -s /usr/bin/python3 /usr/bin/python oder
      • Deklarieren der entsprechenden Variable für die Rechnergruppe. Beispiel einer inventory.yaml:
 all:
   hosts:
     blacky:
       ansible_host: blacky.fritz.box    
   children:
     home:
       hosts:
         blacky:
     python3: # All hosts that only have python3
       hosts:
         blacky:
       vars:
         ansible_python_interpreter: /usr/bin/python3

Vorbereitung des Kontrollrechners

 sudo aptitude install ansible

Nutzen von Ansible

Konfiguration

Die Konfiguration kann durch verschiedene Dateien erfolgen, z.B.:

  • ansible.cfg
  • ~/.ansible.cfg

Der Inhalt einer ansible.cfg könnte z.B. lauten:

 [defaults]
 inventory=inventory.yaml

Inventory

Die Inventory-Datei wird in YAML geschrieben, z.B.:

 all:
   hosts:
     blacky:
       ansible_host: blacky.fritz.box

In YAML werden die Zeilen mit Leerzeichen, nicht mit Tabs eingerückt.

Einfache Kommandos

Ping-Test

 ansible all -m ping

Ausführen eines Shell-Kommandos

Mit Ansible lässt sich auch jedes beliebige Shell-Kommando ausführen:

 ansible zielrechner  -m command -a "whoami"

Will man das Kommando als root ausführen, setzt man --become hinzu:

 ansible pia2016 --become -m command -a "whoami"

Playbooks

Mit Playbooks kann man automatisieren, welcher Rechner welchen Zustand erreichen soll.

Dazu nutzt man Tasks in Form von Modulaufrufen (deklarative Ansible-Form von Befehlen), Rechnergruppen und Rollen.

Package-Updates

Folgender Auszug aus den Tasks eines Playbooks sollte das Paket-Updaten auf einem Debian- oder Ubuntu-System ermöglichen:

 - name: update and upgrade apt packages
   become: true
   apt:  
     name: "*"
     state: latest
     install_recommends: false
     update_cache: true

Weiterführendes

Siehe