Ansible Bootstrap: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | <span id=" | + | <span id="vorbereitung"></span> |
| − | = | + | = Vorbereitung = |
| − | + | Man kann als unpriviligierter Benutzer Ansible benutzen. Dazu erstellen wir erstmal einen Arbeitordner im Home-Verzeichnis. | |
| − | + | * cd ~ | |
| − | + | * mkdir ansible | |
| + | <!-----> | ||
| + | <span id="ansible-konfigurationsdateien"></span> | ||
| + | = Ansible-Konfigurationsdateien = | ||
| + | |||
| + | == ansible.cfg == | ||
| + | |||
| + | * Hier schaut Ansible nach Dateien wie: | ||
| + | ** die Liste der Hosts | ||
| + | ** Playbook-Verzeichnisse | ||
| + | ** Standard Remote-User | ||
| + | ** etc. | ||
* cat ansible.cfg | * cat ansible.cfg | ||
| Zeile 12: | Zeile 23: | ||
[defaults] | [defaults] | ||
inventory = inventory | 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 | ||
| − | * cat | + | <!-----> |
| + | [debian] | ||
| + | 10.81.3.10 | ||
| + | <span id="erreichbarkeitstest"></span> | ||
| + | == Erreichbarkeitstest == | ||
| + | |||
| + | * ansible -m gather_facts debian -k | ||
| + | |||
| + | <!-----> | ||
| + | <span id="bootstrap"></span> | ||
| + | = Bootstrap = | ||
| + | |||
| + | <span id="passwortloses-login"></span> | ||
| + | == Passwortloses Login == | ||
| + | |||
| + | <span id="erstellen-von-ssh-keys"></span> | ||
| + | === Erstellen von SSH-Keys === | ||
| + | |||
| + | * ssh-keygen | ||
| + | |||
| + | <!-----> | ||
| + | <span id="hinterlegen-des-öffentlichen-ssh-keys"></span> | ||
| + | === 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 | ||
<!-----> | <!-----> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<span id="playbook"></span> | <span id="playbook"></span> | ||
= Playbook = | = Playbook = | ||
Version vom 13. Februar 2023, 11:09 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