Ansible: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
Zeile 55: Zeile 55:
 
       blacky:
 
       blacky:
 
         ansible_host: blacky.fritz.box
 
         ansible_host: blacky.fritz.box
         ansible_ssh_user: ansible
+
         ansible_user: ansible
  
 
In YAML werden die Zeilen mit Leerzeichen, nicht mit Tabs eingerückt.
 
In YAML werden die Zeilen mit Leerzeichen, nicht mit Tabs eingerückt.

Version vom 15. September 2019, 06:44 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
       ansible_user: ansible

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

Siehe

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