Ansible Bootstrap

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Vorbereitung

Man kann als unpriviligierter Benutzer Ansible benutzen. Dazu erstellen wir erstmal einen Arbeitordner im Home-Verzeichnis.

  • cd ~
  • mkdir ansible

Ansible-Konfigurationsdateien

ansible.cfg

  • Hier schaut Ansible nach Dateien wie:
    • die Liste der Hosts
    • Playbook-Verzeichnisse
    • Standard Remote-User
    • etc.
  • cat ansible.cfg
[defaults]
inventory = inventory
remote_user = xinux

inventory

  • diese Datei enthält die zu administrierenden Hosts
  • man kann diese in Gruppen einteilen und bestimmte Variablen (SSH-Passwort, Python-Interpreter, Become-Methode…) zuordnen
  • cat inventory
[debian]
10.81.3.10

Erreichbarkeitstest

  • ansible -m gather_facts debian -k

Bootstrap

Passwortloses Login

Erstellen von SSH-Keys

  • ssh-keygen

Hinterlegen des öffentlichen SSH-Keys

  • cat bootstrap.yml
---
- name: Bootstrap eines einzelnen Hosts
  hosts: debian
  tasks:
    - name: Hinterlege SSH-Key
      authorized_key:
        user: xinux
        state: present
        key: "\Vorlage:Lookup('file', '~/.ssh/id rsa.pub')"
  • ansible-playbook bootstrap.yml -k

Playbook

  • cat bootstrap.yml
---
- name: Grundlegende Einrichtung der Hosts
  hosts: all
  become: true
  tasks:
    - name: Füge Benutzer xinux zur Gruppe sudo hinzu
      user:
        name: xinux
        groups: sudo
        append: true
    - name: Hinterlege SSH publickey bei den Benutzern xinux und root
      authorized_key:
        user: "Vorlage:Item"
        state: present
        key: "Vorlage:Lookup('file', '/path/to/public key')"
      with_items:
        - xinux
        - root

Ausführen

  • ansible-playbook bootstrap.yml