Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:ansible:playbook_example_08 [22.09.2022 14:27. ] – [Script Beschreibung] djangolinux:ansible:playbook_example_08 [25.09.2022 11:35. ] (aktuell) – [Lösung] django
Zeile 17: Zeile 17:
  
 ==== Lösung ==== ==== Lösung ====
 +<WRAP center round tip 80%>
 +Der ungeduldigen Leser kann auch direkt zur Tat schreiten und das manuelle Anlegen des Verzeichnisses und des Ansible-Scripts überspringen. Mit Folgendem Befehl erledigt man dies sozusagen auf einem Rutsch:
 +
 +<code> $ mkdir ~/ansible ; wget https://gitlab.nausch.org/django/example_8a/-/archive/main/example_8a-main.tar.gz -O - | tar -xz --strip-components=1 -C ~/ansible</code>
 +
 +Anschliessend kann man direkt **[[#script_starten|zur Ausführung schreiten]]**.
 +</WRAP>
 === Script anlegen === === Script anlegen ===
 Zunächst müssen wir manuell einmal das Verzeichnis **''~/ansible/playbooks''** in dem wir unsere Ansible-Playbooks ablegen werden auf unserer Admin-Workstation bzw. dem **A**nsible-**C**ontroll-**N**ode anlegen. Zunächst müssen wir manuell einmal das Verzeichnis **''~/ansible/playbooks''** in dem wir unsere Ansible-Playbooks ablegen werden auf unserer Admin-Workstation bzw. dem **A**nsible-**C**ontroll-**N**ode anlegen.
Zeile 119: Zeile 126:
         - {directory: "library/"}         - {directory: "library/"}
         - {directory: "module_utils/"}         - {directory: "module_utils/"}
 +        - {directory: "playbooks/"}
         - {directory: "inventories/production/group_vars/"}         - {directory: "inventories/production/group_vars/"}
         - {directory: "inventories/production/host_vars/"}         - {directory: "inventories/production/host_vars/"}
Zeile 220: Zeile 228:
 ok: [localhost] => (item={'directory': 'library/'}) ok: [localhost] => (item={'directory': 'library/'})
 ok: [localhost] => (item={'directory': 'module_utils/'}) ok: [localhost] => (item={'directory': 'module_utils/'})
 +ok: [localhost] => (item={'directory': 'playbooks/'})
 ok: [localhost] => (item={'directory': 'inventories/production/group_vars/'}) ok: [localhost] => (item={'directory': 'inventories/production/group_vars/'})
 ok: [localhost] => (item={'directory': 'inventories/production/host_vars/'}) ok: [localhost] => (item={'directory': 'inventories/production/host_vars/'})
Zeile 300: Zeile 309:
  
 ==== Lösung ==== ==== Lösung ====
 +<WRAP center round tip 90%>
 +Der ungeduldigen Leser kann auch direkt zur Tat schreiten und das manuelle Anlegen des Verzeichnisses und des Ansible-Scripts überspringen. Mit Folgendem Befehl erledigt man dies sozusagen auf einem Rutsch:
 +
 +<code> $ mkdir ~/ansible ; wget https://gitlab.nausch.org/django/example_8b/-/archive/main/example_8b-main.tar.gz -O - | tar -xz --strip-components=1 -C ~/ansible</code>
 +
 +Anschliessend kann man, nachdem man die Variable **''admin_mail''** angepasst hat, dann auch gleich direkt **[[#script_starten1|zur Ausführung schreiten]]**.
 +</WRAP>
 === Script anlegen === === Script anlegen ===
 <WRAP center round important 60%> <WRAP center round important 60%>
Zeile 410: Zeile 426:
         - {directory: "library/"}         - {directory: "library/"}
         - {directory: "module_utils/"}         - {directory: "module_utils/"}
 +        - {directory: "playbooks/"}
         - {directory: "inventories/production/group_vars/"}         - {directory: "inventories/production/group_vars/"}
         - {directory: "inventories/production/host_vars/"}         - {directory: "inventories/production/host_vars/"}
Zeile 494: Zeile 511:
     - name: "Sicherstellen dass das File für das verschlüsselte become-password noch nicht existiert"     - name: "Sicherstellen dass das File für das verschlüsselte become-password noch nicht existiert"
       ansible.builtin.file:       ansible.builtin.file:
-        path: '/home/{{ admin_user }}/ansible/inventories/production/group_vars/all/vault.yml'+        path: '/home/{{ admin_user }}/ansible/inventories/production/group_vars/all/vault'
         state: absent         state: absent
  
     - name: "Ansible Become Password für sudo Rechteerweiterung anlegen"     - name: "Ansible Become Password für sudo Rechteerweiterung anlegen"
       ansible.builtin.copy:       ansible.builtin.copy:
-        dest: '/home/{{ admin_user }}/ansible/inventories/production/group_vars/all/vault.yml'+        dest: '/home/{{ admin_user }}/ansible/inventories/production/group_vars/all/vault'
         content: |         content: |
 +          # Generated by Ansible on {{ ansible_date_time.date }}, do not edit manually!
           ansible_become_pass: {{ become_secret }}           ansible_become_pass: {{ become_secret }}
         owner: '{{ admin_user }}'         owner: '{{ admin_user }}'
Zeile 510: Zeile 528:
       become: true       become: true
       shell: |       shell: |
-        ansible-vault encrypt /home/{{ admin_user }}/ansible/inventories/production/group_vars/all/vault.yml+        ansible-vault encrypt /home/{{ admin_user }}/ansible/inventories/production/group_vars/all/vault
       changed_when: false       changed_when: false
  
     - name: "Sicherstellen dass das File mit der Ansible-Konfiguration nicht existiert"     - name: "Sicherstellen dass das File mit der Ansible-Konfiguration nicht existiert"
       ansible.builtin.file:       ansible.builtin.file:
-        path: '/home/{{ admin_user }}/ansible/inventories/production/group_vars/all/ansible_environment.yml'+        path: '/home/{{ admin_user }}/ansible/inventories/production/group_vars/all/ansible_environment'
         state: absent         state: absent
  
     - name: "Ansible Konfigurationsdatei mit den Definitionen zu privilege_escalation anlegen"     - name: "Ansible Konfigurationsdatei mit den Definitionen zu privilege_escalation anlegen"
       ansible.builtin.copy:       ansible.builtin.copy:
-        dest: '/home/{{ admin_user }}/ansible/inventories/production/group_vars/all/ansible_environment.yml'+        dest: '/home/{{ admin_user }}/ansible/inventories/production/group_vars/all/ansible_environment'
         content: |         content: |
           # Generated by Ansible on {{ ansible_date_time.date }}, do not edit manually!           # Generated by Ansible on {{ ansible_date_time.date }}, do not edit manually!
-          become: True +          ansible_become: True 
-          become_method: sudo +          ansible_become_method: sudo 
-          become_user: root +          ansible_become_user: root 
-          become_ask_pass: False+          ansible_become_ask_pass: False
         owner: '{{ admin_user }}'         owner: '{{ admin_user }}'
         group: '{{ admin_user }}'         group: '{{ admin_user }}'
Zeile 606: Zeile 624:
 ok: [localhost] => (item={'directory': 'library/'}) ok: [localhost] => (item={'directory': 'library/'})
 ok: [localhost] => (item={'directory': 'module_utils/'}) ok: [localhost] => (item={'directory': 'module_utils/'})
 +ok: [localhost] => (item={'directory': 'playbooks/'})
 ok: [localhost] => (item={'directory': 'inventories/production/group_vars/'}) ok: [localhost] => (item={'directory': 'inventories/production/group_vars/'})
 ok: [localhost] => (item={'directory': 'inventories/production/host_vars/'}) ok: [localhost] => (item={'directory': 'inventories/production/host_vars/'})
Zeile 665: Zeile 684:
 TASK [Ansible Become Password mit ansible-vault verschlüsseln] **************************************************************</font> TASK [Ansible Become Password mit ansible-vault verschlüsseln] **************************************************************</font>
 <font style="color: rgb(25, 100, 5)">ok: [localhost]</font> <font style="color: rgb(25, 100, 5)">ok: [localhost]</font>
 +<font style="color: rgb(0, 0, 0)">
 +TASK [Sicherstellen dass das File mit der Ansible-Konfiguration nicht existiert] ********************************************</font>
 +<font style="color: rgb(25, 100, 5)">ok: [localhost]</font>
 +<font style="color: rgb(0, 0, 0)">
 +TASK [Ansible Konfigurationsdatei mit den Definitionen zu privilege_escalation anlegen] *************************************</font>
 +<font style="color: rgb(196, 160, 0)">changed: [localhost]</font>
 <font style="color: rgb(0, 0, 0)"> <font style="color: rgb(0, 0, 0)">
 PLAY RECAP ********************************************************************************************************************</font> PLAY RECAP ********************************************************************************************************************</font>
-<font style="color: rgb(196, 160, 0)">localhost</font><font style="color: rgb(0, 0, 0)">                  : </font><font style="color: rgb(25, 100, 5)">ok=14    </font><font style="color: rgb(196, 160, 0)">changed=   </font><font style="color: rgb(0, 0, 0)">unreachable=0    failed=0    </font><font style="color: rgb(43, 100, 164)">skipped=3    </font><font style="color: rgb(0, 0, 0)">rescued=0    ignored=0</font>+<font style="color: rgb(196, 160, 0)">localhost</font><font style="color: rgb(0, 0, 0)">                  : </font><font style="color: rgb(25, 100, 5)">ok=16    </font><font style="color: rgb(196, 160, 0)">changed=   </font><font style="color: rgb(0, 0, 0)">unreachable=0    failed=0    </font><font style="color: rgb(43, 100, 164)">skipped=3    </font><font style="color: rgb(0, 0, 0)">rescued=0    ignored=0</font>
  
 </pre> </pre>
Zeile 686: Zeile 711:
 ====== Links ====== ====== Links ======
   * **[[detail|zurück zum Kapitel "Ansible - Erweiterte Konfigurationsbeispiele"]] <= **   * **[[detail|zurück zum Kapitel "Ansible - Erweiterte Konfigurationsbeispiele"]] <= **
-  * **=> [[playbook_example_08|weiter zum Kapitel "Ansible - erweitertes Konfigurationsbeispiel: Ansible mit Ansible einrichten]]**+  * **=> [[playbook_example_09|weiter zum Kapitel "Ansible - Erweiterte Konfigurationsbeispiel: Inventory]]**
   * **[[start|Zurück zur "Ansible"-Übersicht]]**   * **[[start|Zurück zur "Ansible"-Übersicht]]**
   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  • linux/ansible/playbook_example_08.1663856820.txt.gz
  • Zuletzt geändert: 22.09.2022 14:27.
  • von django