Ansible Bootstrap: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
<span id="einstellung"></span>
+
<span id="vorbereitung"></span>
= Einstellung =
+
= Vorbereitung =
  
Es liegt hier alles unter ~/ansible
+
Man kann als unpriviligierter Benutzer Ansible benutzen. Dazu erstellen wir erstmal einen Arbeitordner im Home-Verzeichnis.
  
<span id="ansible-konfigurationsdatei"></span>
+
* cd ~
= Ansible-Konfigurationsdatei =
+
* 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
  private_key_file = ~/.ssh/id_rsa
+
  remote_user = xinux
<span id="hosts"></span>
+
== inventory ==
  
= Hosts =
+
* 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 inventory
+
<!----->
 +
[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
  
 
<!----->
 
<!----->
10.82.243.96
 
10.82.243.97
 
10.82.243.98
 
10.82.243.22
 
 
[all:vars]
 
ansible_ssh_pass=123Start$
 
ansible_become_pass=123Start$
 
ansible_become_method=su
 
 
<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