tachtler:benutzer_mit_ansible_einrichten
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
tachtler:benutzer_mit_ansible_einrichten [2020/03/19 07:42] – [~/ansible/inventories/production/host_vars/00_user.yml] klaus | tachtler:benutzer_mit_ansible_einrichten [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Benutzer mit Ansible einrichten | ||
- | |||
- | [[tachtler: | ||
- | |||
- | ^ Beschreibung | ||
- | | Homepage | ||
- | | Dokumentation | ||
- | | Best Practise | ||
- | |||
- | Ab hier werden '' | ||
- | < | ||
- | $ su - ansible | ||
- | Password: | ||
- | </ | ||
- | |||
- | ===== Vorbereitung ===== | ||
- | |||
- | Nachfolgend soll davon ausgegangen werden, dass | ||
- | - [[https:// | ||
- | - [[https:// | ||
- | - Ein **eigener Benutzer** für die Nutzung von [[https:// | ||
- | - Die **Authentifizierung** des [[https:// | ||
- | |||
- | ===== Aufgaben ===== | ||
- | |||
- | Aufbauend auf die Installation und Einrichtung von [[https:// | ||
- | - die Erstellung von Benutzern, auf dem [[https:// | ||
- | - auf dem [[https:// | ||
- | - die auf dem [[https:// | ||
- | - Mitglieder der Gruppe '' | ||
- | |||
- | ===== Konfiguration ===== | ||
- | |||
- | Ausgehend davon, dass folgende Konfigurationen | ||
- | - [[https:// | ||
- | - [[https:// | ||
- | bereits durchgeführt worden sind, erfolgen die weiteren Konfigurationen als **role** (Rolle). | ||
- | |||
- | Nachfolgende Dateien müssen dazu **__verändert__**: | ||
- | - '' | ||
- | bzw. nachfolgende Dateien sollen dazu mindestens **__neu__ erstellt**: | ||
- | - '' | ||
- | - '' | ||
- | - '' | ||
- | werden: | ||
- | |||
- | ==== ~/ | ||
- | |||
- | In nachfolgendem Aufruf wird die **hosts**-Datei unter nachfolgendem Pfad verwendet: | ||
- | * '' | ||
- | |||
- | Der Inhalt, falls dies nicht schin geschen sein sollte, muss entsprechend mindestens wie folgt angepasst werden: | ||
- | <code yaml> | ||
- | [ansible] | ||
- | 192.168.1.10 | ||
- | |||
- | [all] | ||
- | 192.168.1.20 | ||
- | 192.168.1.30 | ||
- | </ | ||
- | |||
- | **__Erklärung__**: | ||
- | |||
- | * <code yaml> | ||
- | 192.168.1.10</ | ||
- | |||
- | Die Einträge sollte aus der nachfolgenden [[https:// | ||
- | |||
- | * <code yaml> | ||
- | 192.168.1.20 | ||
- | 192.168.1.30</ | ||
- | |||
- | Die **Gruppe** - **'' | ||
- | |||
- | ==== " | ||
- | |||
- | Bevor mit der eigentlichen Konfiguration begonnen werden soll, sollen vorab die später benötigten **'' | ||
- | |||
- | Zur Erstellung einer **'' | ||
- | <code yaml> | ||
- | $ ansible-vault encrypt_string --stdin-name ' | ||
- | New Vault password: | ||
- | Confirm New Vault password: | ||
- | Reading plaintext input from stdin. (ctrl-d to end input) | ||
- | geheimpassword: | ||
- | $ANSIBLE_VAULT; | ||
- | 35323839633331323063396362343163313632626634386366383961343632376636626335396564 | ||
- | 6461313461343538383738653365373036623837626136650a633961326533616133626262346133 | ||
- | 32653636343836303866303262653164326166356138356239333266616632646364343066306537 | ||
- | 3637623863373362660a626362653737623735623565343262333033323163386566376333393164 | ||
- | 3731 | ||
- | Encryption successful | ||
- | </ | ||
- | bzw. | ||
- | <code yaml> | ||
- | $ ansible-vault encrypt_string --stdin-name ' | ||
- | New Vault password: | ||
- | Confirm New Vault password: | ||
- | Reading plaintext input from stdin. (ctrl-d to end input) | ||
- | geheimssh_key_passphrase: | ||
- | $ANSIBLE_VAULT; | ||
- | 31653266333835333866323833643664363562323438333935303737383064346139306630396366 | ||
- | 6139336531393164643835353334346666623238336334330a623030353633666237343737326531 | ||
- | 66346338613735356131663035343632623238343331666566386639393231353061643862343961 | ||
- | 3361326130386664350a336538636238633638353730363935363339636632316135303635356138 | ||
- | 6330 | ||
- | Encryption successful | ||
- | </ | ||
- | |||
- | Nach absetzen des Befehls | ||
- | * '' | ||
- | muss **zuerst** ein **Passwort** für **__ALLE__** nachfolgende **'' | ||
- | < | ||
- | New Vault password: | ||
- | Confirm New Vault password: | ||
- | </ | ||
- | |||
- | Nach Eingabe des **Passwort** für **__ALLE__** nachfolgende **'' | ||
- | * **Tastenkombination** - **'' | ||
- | <code yaml> | ||
- | geheimpassword: | ||
- | $ANSIBLE_VAULT; | ||
- | 35323839633331323063396362343163313632626634386366383961343632376636626335396564 | ||
- | 6461313461343538383738653365373036623837626136650a633961326533616133626262346133 | ||
- | 32653636343836303866303262653164326166356138356239333266616632646364343066306537 | ||
- | 3637623863373362660a626362653737623735623565343262333033323163386566376333393164 | ||
- | 3731 | ||
- | Encryption successful | ||
- | </ | ||
- | |||
- | * //Die **'' | ||
- | |||
- | ==== ~/ | ||
- | |||
- | :!: **HINWEIS** - **Nachfolgende Variablen Definitionen sollen __GLOBAL__ verfügbar sein!** | ||
- | |||
- | :!: **HINWEIS** - **Eine Beschreibung zur " | ||
- | * [[tachtler: | ||
- | |||
- | Die Konfigurationsdatei '' | ||
- | < | ||
- | $ touch ~/ | ||
- | </ | ||
- | |||
- | Der Inhalt der Konfigurationsdatei '' | ||
- | <code yaml> | ||
- | --- ### Verwaltet Benutzergruppen, | ||
- | # | ||
- | # Generate a encrypted password string: ansible-vault encrypt_string --stdin-name ' | ||
- | # To test the gernated password string: ansible localhost -m debug -a var=" | ||
- | # (The encrypted string must be in a file in the same directory named ' | ||
- | # | ||
- | users: | ||
- | ansible: | ||
- | protected: True | ||
- | gid: 65533 | ||
- | group: ' | ||
- | comment: " | ||
- | name: ' | ||
- | password: !vault | | ||
- | $ANSIBLE_VAULT; | ||
- | 35323839633331323063396362343163313632626634386366383961343632376636626335396564 | ||
- | 6461313461343538383738653365373036623837626136650a633961326533616133626262346133 | ||
- | 32653636343836303866303262653164326166356138356239333266616632646364343066306537 | ||
- | 3637623863373362660a626362653737623735623565343262333033323163386566376333393164 | ||
- | 3731 | ||
- | shell: '/ | ||
- | ssh_key_passphrase: | ||
- | $ANSIBLE_VAULT; | ||
- | 31653266333835333866323833643664363562323438333935303737383064346139306630396366 | ||
- | 6139336531393164643835353334346666623238336334330a623030353633666237343737326531 | ||
- | 66346338613735356131663035343632623238343331666566386639393231353061643862343961 | ||
- | 3361326130386664350a336538636238633638353730363935363339636632316135303635356138 | ||
- | 6330 | ||
- | uid: 65533 | ||
- | wheel: True | ||
- | </ | ||
- | |||
- | **__Erklärung__**: | ||
- | |||
- | * <code yaml>--- ### Verwaltet Benutzergruppen, | ||
- | |||
- | Hier ist der Anfang der Konfigurationsdatei im [[https:// | ||
- | |||
- | * <code yaml> | ||
- | # Generate a encrypted password string: ansible-vault encrypt_string --stdin-name ' | ||
- | # To test the gernated password string: ansible localhost -m debug -a var=" | ||
- | # (The encrypted string must be in a file in the same directory, for example named ' | ||
- | #</ | ||
- | |||
- | Ein Kommentar, welcher eine Beschreibung enthält, wie eine **'' | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Name des **dictionarys** (Wörterbuchs) unter dem auf die nachfolgenden Inhalte zugegriffen werden kann. | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Name des Benutzers im **dictionary** (Wörterbuch) unter dem die nachfolgenden Eigenschaften abgelegt werden. | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | :!: **HINWEIS** - **Dies ist __nur__ für den Benutzer erforderlich, | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | * <code yaml> | ||
- | $ANSIBLE_VAULT; | ||
- | 35323839633331323063396362343163313632626634386366383961343632376636626335396564 | ||
- | 6461313461343538383738653365373036623837626136650a633961326533616133626262346133 | ||
- | 32653636343836303866303262653164326166356138356239333266616632646364343066306537 | ||
- | 3637623863373362660a626362653737623735623565343262333033323163386566376333393164 | ||
- | 3731</ | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | * <code yaml> | ||
- | $ANSIBLE_VAULT; | ||
- | 31653266333835333866323833643664363562323438333935303737383064346139306630396366 | ||
- | 6139336531393164643835353334346666623238336334330a623030353633666237343737326531 | ||
- | 66346338613735356131663035343632623238343331666566386639393231353061643862343961 | ||
- | 3361326130386664350a336538636238633638353730363935363339636632316135303635356138 | ||
- | 6330</ | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Eigenschaft: | ||
- | |||
- | ==== ~/ | ||
- | |||
- | Die Konfigurationsdatei '' | ||
- | < | ||
- | $ touch ~/ | ||
- | </ | ||
- | |||
- | Der Inhalt der Konfigurationsdatei '' | ||
- | <code yaml> | ||
- | --- ### Verwaltet Benutzergruppen, | ||
- | # | ||
- | # # ansible-playbook -i / | ||
- | # | ||
- | - hosts: all | ||
- | vars_files: | ||
- | - / | ||
- | roles: | ||
- | - { role: 00_user, tags: [' | ||
- | </ | ||
- | |||
- | **__Erklärungen__**: | ||
- | |||
- | * <code yaml>--- ### Verwaltet Benutzergruppen, | ||
- | |||
- | Hier ist der Anfang der Konfigurationsdatei im [[https:// | ||
- | |||
- | * <code yaml> | ||
- | # # ansible-playbook -i / | ||
- | #</ | ||
- | |||
- | Ein Kommentar, welcher eine Beschreibung enthält, mit welchen Parametern das **Playbook** ausgeführt werden muss. | ||
- | |||
- | * <code yaml>- hosts: all</ | ||
- | |||
- | Auf welche **hosts** das **Playbook** angewendet werden soll. | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Die Definition, das das **Playbook** nachfolgende Variablen Datei verwenden soll. | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Die Definition, der Variablen Datei welche das **Playbook** verwenden soll. | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Die Definition, das das **Playbook** aus nachfolgender **role** (Rolle) besteht. | ||
- | |||
- | * <code yaml> | ||
- | |||
- | Welche **role** (Rolle) das **Playbook** benutzen soll. | ||
- | |||
- | ==== ~/ | ||
- | |||
- | Die Verzeichnisstruktur für die **role** (Rolle) - '' | ||
- | < | ||
- | $ mkdir -p ~/ | ||
- | </ | ||
- | |||
- | Die Konfigurationsdatei '' | ||
- | < | ||
- | $ touch ~/ | ||
- | </ | ||
- | |||
- | Der Inhalt der Konfigurationsdatei '' | ||
- | <code yaml> | ||
- | --- ### Verwaltet Benutzergruppen, | ||
- | # | ||
- | # # ansible-playbook -i / | ||
- | # | ||
- | - name: Make sure group ' | ||
- | group: | ||
- | name: wheel | ||
- | state: present | ||
- | - name: Allow ' | ||
- | copy: | ||
- | content: ' | ||
- | dest: / | ||
- | group: root | ||
- | mode: " | ||
- | owner: root | ||
- | validate: visudo -cf %s | ||
- | - name: Ensure user does NOT exists, if NOT protected. | ||
- | user: | ||
- | name: "{{ item.value.name }}" | ||
- | remove: yes | ||
- | state: absent | ||
- | when: " | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True | ||
- | - name: Ensure group does NOT exists, if NOT protected. | ||
- | group: | ||
- | name: "{{ item.value.group }}" | ||
- | state: absent | ||
- | when: " | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True | ||
- | - name: Ensure group exists. | ||
- | group: | ||
- | gid: "{{ item.value.gid }}" | ||
- | name: "{{ item.value.group }}" | ||
- | state: present | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True | ||
- | - name: Ansible-Host - Ensure user exists. | ||
- | user: | ||
- | append: yes | ||
- | comment: "{{ item.value.comment }}" | ||
- | force: yes | ||
- | generate_ssh_key: | ||
- | group: "{{ item.value.group }}" | ||
- | name: "{{ item.value.name }}" | ||
- | password: "{{ item.value.password | password_hash(' | ||
- | shell: "{{ item.value.shell }}" | ||
- | ssh_key_comment: | ||
- | ssh_key_file: | ||
- | ssh_key_passphrase: | ||
- | ssh_key_type: | ||
- | state: present | ||
- | uid: "{{ item.value.uid }}" | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | delegate_to: | ||
- | no_log: True | ||
- | - name: Clients - Ensure user exists. | ||
- | user: | ||
- | append: yes | ||
- | comment: "{{ item.value.comment }}" | ||
- | force: yes | ||
- | group: "{{ item.value.group }}" | ||
- | name: "{{ item.value.name }}" | ||
- | password: "{{ item.value.password | password_hash(' | ||
- | shell: "{{ item.value.shell }}" | ||
- | state: present | ||
- | uid: "{{ item.value.uid }}" | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True | ||
- | - name: Add users to group ' | ||
- | user: | ||
- | append: yes | ||
- | groups: wheel | ||
- | name: "{{ item.value.name }}" | ||
- | when: " | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True | ||
- | - name: Set exclusive authorized key for users taken from file. | ||
- | authorized_key: | ||
- | user: "{{ item.value.name }}" | ||
- | key: "{{ lookup(' | ||
- | state: present | ||
- | exclusive: True | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True | ||
- | </ | ||
- | |||
- | **__Erklärungen__**: | ||
- | |||
- | * <code yaml>--- ### Verwaltet Benutzergruppen, | ||
- | |||
- | Hier ist der Anfang der Konfigurationsdatei im [[https:// | ||
- | |||
- | * <code yaml> | ||
- | # # ansible-playbook -i / | ||
- | #</ | ||
- | |||
- | Ein Kommentar, welcher eine Beschreibung enthält, mit welchen Parametern das **Playbook** ausgeführt werden muss. | ||
- | |||
- | * <code yaml>- name: Make sure group ' | ||
- | group: | ||
- | name: wheel | ||
- | state: present</ | ||
- | |||
- | Es wird sicher gestellt, das ein **Gruppe** '' | ||
- | |||
- | * <code yaml>- name: Allow ' | ||
- | copy: | ||
- | content: ' | ||
- | dest: / | ||
- | group: root | ||
- | mode: " | ||
- | owner: root | ||
- | validate: visudo -cf %s</ | ||
- | |||
- | Erstellt eine **__neue__** Konfigurationsdatei | ||
- | * ''/ | ||
- | mit dem Inhalt | ||
- | * '' | ||
- | welcher besagt, dass alle Mitglieder der Gruppe '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | * <code yaml>- name: Ensure user does NOT exists, if NOT protected. | ||
- | user: | ||
- | name: "{{ item.value.name }}" | ||
- | remove: yes | ||
- | state: absent | ||
- | when: " | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True</ | ||
- | |||
- | Es wird sicher gestellt, das ein **Benutzer** des **Benutzers** aus dem **dictionary (Wörterbuch)** - '' | ||
- | * auf **__allen__ Clients** | ||
- | * '' | ||
- | * mit dem Status '' | ||
- | * '' | ||
- | * '' | ||
- | **gelöscht** wird, **__falls dieser NICHT als geschützt gekennzeichnet ist!__** | ||
- | |||
- | :!: **HINWEIS** - **Dies bewirkt, das der Benutzer zuerst gelöscht und später __komplett NEU__ erstellt wird!** | ||
- | |||
- | * <code yaml>- name: Ensure group does NOT exists, if NOT protected. | ||
- | group: | ||
- | name: "{{ item.value.group }}" | ||
- | state: absent | ||
- | when: " | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True</ | ||
- | |||
- | Es wird sicher gestellt, das eine **Gruppe** des **Benutzers** aus dem **dictionary (Wörterbuch)** - '' | ||
- | * '' | ||
- | * mit dem Status '' | ||
- | * '' | ||
- | * '' | ||
- | **gelöscht** wird, **__falls dieser NICHT als geschützt gekennzeichnet ist!__** | ||
- | |||
- | :!: **HINWEIS** - **Dies bewirkt, das die Gruppe zuerst gelöscht und später __komplett NEU__ erstellt wird!** | ||
- | |||
- | * <code yaml>- name: Ensure group exists. | ||
- | group: | ||
- | gid: "{{ item.value.gid }}" | ||
- | name: "{{ item.value.group }}" | ||
- | state: present | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True</ | ||
- | |||
- | Es wird sicher gestellt, das eine **Gruppe** des **Benutzers** aus dem **dictionary (Wörterbuch)** - '' | ||
- | * '' | ||
- | * '' | ||
- | * mit dem Status '' | ||
- | * '' | ||
- | durchgeführt wird. | ||
- | |||
- | * <code yaml>- name: Ensure user exists. (Host) | ||
- | user: | ||
- | append: yes | ||
- | comment: "{{ item.value.comment }}" | ||
- | force: yes | ||
- | generate_ssh_key: | ||
- | group: "{{ item.value.group }}" | ||
- | name: "{{ item.value.name }}" | ||
- | password: "{{ item.value.password | password_hash(' | ||
- | shell: "{{ item.value.shell }}" | ||
- | ssh_key_comment: | ||
- | ssh_key_file: | ||
- | ssh_key_passphrase: | ||
- | ssh_key_type: | ||
- | state: present | ||
- | uid: "{{ item.value.uid }}" | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | delegate_to: | ||
- | no_log: True</ | ||
- | |||
- | Es wird sicher gestellt, das ein **Benutzer** des **Benutzers** aus dem **dictionary (Wörterbuch)** - '' | ||
- | * nur auf dem [[https:// | ||
- | hinzugefügt wird und nachfolgende Eigenschaften besitzt: | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * mit dem Status '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | durchgeführt wird. | ||
- | |||
- | * <code yaml>- name: Ensure user exists. (Clients) | ||
- | user: | ||
- | append: yes | ||
- | comment: "{{ item.value.comment }}" | ||
- | force: yes | ||
- | group: "{{ item.value.group }}" | ||
- | name: "{{ item.value.name }}" | ||
- | password: "{{ item.value.password | password_hash(' | ||
- | shell: "{{ item.value.shell }}" | ||
- | state: present | ||
- | uid: "{{ item.value.uid }}" | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True</ | ||
- | |||
- | Es wird sicher gestellt, das ein **Benutzer** des **Benutzers** aus dem **dictionary (Wörterbuch)** - '' | ||
- | * auf **__allen__ Clients** | ||
- | hinzugefügt wird und nachfolgende Eigenschaften besitzt: | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * mit dem Status '' | ||
- | * '' | ||
- | * '' | ||
- | durchgeführt wird. | ||
- | |||
- | * <code yaml>- name: Add users to group ' | ||
- | user: | ||
- | append: yes | ||
- | groups: wheel | ||
- | name: "{{ item.value.name }}" | ||
- | when: " | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True</ | ||
- | |||
- | Es wird sicher gestellt, das ein **Benutzer** des **Benutzers** aus dem **dictionary (Wörterbuch)** - '' | ||
- | * auf **__allen__ Clients** | ||
- | der Gruppe '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | durchgeführt wird. | ||
- | |||
- | * <code yaml>- name: Set exclusive authorized key for users taken from file. | ||
- | authorized_key: | ||
- | user: "{{ item.value.name }}" | ||
- | key: "{{ lookup(' | ||
- | state: present | ||
- | exclusive: True | ||
- | with_dict: | ||
- | - "{{ users }}" | ||
- | no_log: True</ | ||
- | |||
- | Es wird sicher gestellt, das der **öffentliche** **'' | ||
- | * auf **__allen__ Clients** | ||
- | hinzugefügt wird und nachfolgende Eigenschaften besitzt: | ||
- | * '' | ||
- | * '' | ||
- | * mit dem Status '' | ||
- | * '' | ||
- | * '' | ||
- | durchgeführt wird. | ||
- | |||
- | ===== Playbook Ausführung ===== | ||
- | |||
- | Ab hier werden '' | ||
- | < | ||
- | $ su - | ||
- | Password: | ||
- | </ | ||
- | |||
- | :!: **HINWEIS** - **Dies ist aktuell __noch__ erforderlich, | ||
- | |||
- | Bevor das **Playbbok** ausgeführt werden kann, muss eine **erste** Verbindung mittels der ipv4-Adresse **lokal** auf und von dem[[https:// | ||
- | < | ||
- | # ssh root@192.168.1.20 | ||
- | The authenticity of host ' | ||
- | ECDSA key fingerprint is SHA256: | ||
- | Are you sure you want to continue connecting (yes/ | ||
- | Warning: Permanently added ' | ||
- | root@192.168.1.20' | ||
- | Last login: Sun Jan 12 13:07:20 2020 from 192.168.1.1 | ||
- | </ | ||
- | bzw. | ||
- | < | ||
- | # ssh root@192.168.1.30 | ||
- | The authenticity of host ' | ||
- | ECDSA key fingerprint is SHA256: | ||
- | Are you sure you want to continue connecting (yes/ | ||
- | Warning: Permanently added ' | ||
- | root@192.168.1.30' | ||
- | Last login: Sun Jan 12 13:07:20 2020 from 192.168.1.1 | ||
- | </ | ||
- | |||
- | ==== / | ||
- | |||
- | Nachfolgender Befehl führt eine detaillierte Überprüfung des angegeben **Playbook** durch: | ||
- | <code yaml> | ||
- | # ansible-playbook --syntax-check -i / | ||
- | Vault password: | ||
- | |||
- | playbook: / | ||
- | </ | ||
- | |||
- | Nachfolgender Befehl für das **Playbook**, | ||
- | <code yaml> | ||
- | # ansible-playbook -i / | ||
- | SSH password: | ||
- | Vault password: | ||
- | </ | ||