Ansible Bootstrap: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 65: Zeile 65:
 
         user: xinux
 
         user: xinux
 
         state: present
 
         state: present
         key: "\{\{ lookup('file', '~/.ssh/id_rsa.pub') }}"
+
         key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
 
* ansible-playbook bootstrap.yml -k
 
* ansible-playbook bootstrap.yml -k
  
 
<!----->
 
<!----->
 
<span id="playbook"></span>
 
<span id="playbook"></span>
 +
 
= Playbook =
 
= Playbook =
  

Version vom 13. Februar 2023, 11:12 Uhr

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