Ansible Bootstrap
Version vom 13. Februar 2023, 11:10 Uhr von Linkai.zhang (Diskussion | Beiträge)
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: "\{\{ 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