Ansible: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
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