ansible
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| ansible [2024-04-04 14:11:21] – manfred | ansible [2024-04-04 16:02:21] (aktuell) – [Wenn-Sonst] manfred | ||
|---|---|---|---|
| Zeile 12: | Zeile 12: | ||
| * [[https:// | * [[https:// | ||
| - | > ansible-playbook -i inventory.yml -l test01 playbook_update.yml | + | < |
| - | > ansible-playbook -i inventory.yml -l test02 playbook_update.yml | + | |
| - | + | ||
| - | < | + | |
| --- | --- | ||
| - name: PlayBook Betriebssystemversion anzeigen | - name: PlayBook Betriebssystemversion anzeigen | ||
| Zeile 23: | Zeile 20: | ||
| tasks: | tasks: | ||
| - | - name: jammy | + | - name: "jammy" |
| ansible.builtin.debug: | ansible.builtin.debug: | ||
| var: ansible_facts.lsb.codename | var: ansible_facts.lsb.codename | ||
| - | - name: Ubuntu 22.04.4 LTS | + | - name: "Ubuntu 22.04.4 LTS" |
| ansible.builtin.debug: | ansible.builtin.debug: | ||
| var: ansible_facts.lsb.description | var: ansible_facts.lsb.description | ||
| - | - name: Ubuntu | + | - name: "Ubuntu" |
| ansible.builtin.debug: | ansible.builtin.debug: | ||
| var: ansible_facts.lsb.id | var: ansible_facts.lsb.id | ||
| - | - name: 22 | + | - name: "22" |
| ansible.builtin.debug: | ansible.builtin.debug: | ||
| var: ansible_facts.lsb.major_release | var: ansible_facts.lsb.major_release | ||
| - | - name: 22.04 | + | - name: "22.04" |
| ansible.builtin.debug: | ansible.builtin.debug: | ||
| var: ansible_facts.lsb.release | var: ansible_facts.lsb.release | ||
| </ | </ | ||
| - | < | + | > ansible-playbook -i inventory.yml -l test01 playbook_update.yml |
| + | > ansible-playbook -i inventory.yml -l test02 playbook_update.yml | ||
| + | |||
| + | < | ||
| --- | --- | ||
| servers: | servers: | ||
| Zeile 56: | Zeile 56: | ||
| </ | </ | ||
| - | < | + | < |
| --- | --- | ||
| ansible_python_interpreter: | ansible_python_interpreter: | ||
| Zeile 66: | Zeile 66: | ||
| </ | </ | ||
| - | < | + | < |
| --- | --- | ||
| # | # | ||
| Zeile 110: | Zeile 110: | ||
| </ | </ | ||
| - | < | + | < |
| --- | --- | ||
| # ----------------------------------------------------------- | # ----------------------------------------------------------- | ||
| Zeile 184: | Zeile 184: | ||
| </ | </ | ||
| - | < | + | < |
| --- | --- | ||
| - hosts: servers | - hosts: servers | ||
| Zeile 420: | Zeile 420: | ||
| enabled: true | enabled: true | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== File ===== | ||
| + | |||
| + | <code python> | ||
| + | --- | ||
| + | - name: Dateien und Verzeichnisse löschen | ||
| + | file: | ||
| + | path: "{{ item }}" | ||
| + | state: absent | ||
| + | with_items: | ||
| + | - / | ||
| + | - / | ||
| + | </ | ||
| + | |||
| + | <code python> | ||
| + | --- | ||
| + | # Inhalte von einem Verzeichnis löschen; z.B. von einem Mount-Point | ||
| + | - block: | ||
| + | - name: Dateien im Verzeichnis einlesen | ||
| + | find: | ||
| + | paths: "/ | ||
| + | hidden: True | ||
| + | recurse: True | ||
| + | register: collected_files | ||
| + | |||
| + | - name: Sym-Links im Verzeichnis einlesen | ||
| + | find: | ||
| + | paths: "/ | ||
| + | hidden: True | ||
| + | recurse: True | ||
| + | file_type: link | ||
| + | register: collected_link | ||
| + | |||
| + | - name: Unterverzeichnisse einlesen | ||
| + | find: | ||
| + | paths: "/ | ||
| + | hidden: True | ||
| + | recurse: True | ||
| + | file_type: directory | ||
| + | register: collected_directories | ||
| + | |||
| + | - name: entferne Dateien und Unterverzeichnisse aus dem Verzeichnis | ||
| + | file: | ||
| + | path: "{{ item.path }}" | ||
| + | state: absent | ||
| + | with_items: > | ||
| + | {{ | ||
| + | collected_files.files | ||
| + | + collected_link.files | ||
| + | + collected_directories.files | ||
| + | }} | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== LineInFile ===== | ||
| + | |||
| + | <code python> | ||
| + | --- | ||
| + | # ----------------------------------------------------------- | ||
| + | # Tests | ||
| + | # ----------------------------------------------------------- | ||
| + | - name: " | ||
| + | gather_facts: | ||
| + | become: true | ||
| + | hosts: servers | ||
| + | vars_files: | ||
| + | - include_variables.yml | ||
| + | |||
| + | # https:// | ||
| + | tasks: | ||
| + | - name: Add a line to a file if the file does not exist, without passing regexp | ||
| + | ansible.builtin.lineinfile: | ||
| + | path: / | ||
| + | line: 192.168.1.99 foo.lab.net foo | ||
| + | create: yes | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== BlockInFile ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <code python> | ||
| + | - name: Insert/ | ||
| + | ansible.builtin.blockinfile: | ||
| + | path: / | ||
| + | marker: "< | ||
| + | insertafter: | ||
| + | block: | | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <code python> | ||
| + | - name: Remove HTML as well as surrounding markers | ||
| + | ansible.builtin.blockinfile: | ||
| + | path: / | ||
| + | marker: "< | ||
| + | block: "" | ||
| + | </ | ||
| + | |||
| + | <code python> | ||
| + | - name: Textblock aus der Datei entfernen | ||
| + | ansible.builtin.blockinfile: | ||
| + | path: / | ||
| + | marker: "# {mark} Sicherheitssektion" | ||
| + | block: "" | ||
| + | state: absent | ||
| + | </ | ||
| + | |||
| + | <file bash / | ||
| + | aaa | ||
| + | bbb | ||
| + | ccc | ||
| + | # BEGIN Sicherheitssektion | ||
| + | ddd | ||
| + | eee | ||
| + | fff | ||
| + | # END Sicherheitssektion | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Wenn-Sonst ===== | ||
| + | |||
| + | Wenn die Major-Versionsnummer eine " | ||
| + | ### OS-Schalter | ||
| + | - name: Ubuntu 22.04 LTS | ||
| + | set_fact: | ||
| + | php_version: | ||
| + | percona_repo_version: | ||
| + | when: | ||
| + | ansible_facts.lsb.major_release == " | ||
| + | |||
| + | |||
| + | ===== cut / split ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ### ein einfaches Beispiel, hier wird die Zeichenkette einer E-Mail beim '' | ||
| + | --- | ||
| + | - name: Ansible Split Example 1 | ||
| + | hosts: localhost | ||
| + | tasks: | ||
| + | - name: Split Simple String Example | ||
| + | debug: msg={{ ' | ||
| + | |||
| + | ### in diesem Beispiel wird eine Zeichenkette bei bestimmten Zeichen (-) getrennt | ||
| + | --- | ||
| + | - name: Ansible Split Example 2 | ||
| + | hosts: localhost | ||
| + | vars: | ||
| + | var1: dos-e1-south-209334567829102380 | ||
| + | tasks: | ||
| + | - set_fact: | ||
| + | var2: "{{ var1.split(' | ||
| + | - debug: | ||
| + | msg: "{{ var2.0 }}-{{ var2.1 }}-{{ var2.2 }}" | ||
| + | |||
| + | ### in diesem Beispiel wird alles nach dem letzten Trennzeichen (-), einschließlich des Trennzeiches selbst, per RegEx entfernt | ||
| + | --- | ||
| + | - name: Ansible Split Example 3 | ||
| + | hosts: localhost | ||
| + | vars: | ||
| + | var: dos-e1-south-209334567829102380 | ||
| + | tasks: | ||
| + | - debug: | ||
| + | msg: '{{ var | regex_replace(" | ||
| + | |||
| + | Die Ausgaben von Beispiel 2 und 3 sind identisch und lauten: '' | ||
| + | |||
| + | Erklärung der im 3. Beispiel verwendeten RegEx: | ||
| + | | ||
| + | ^(.*) | ||
| + | behalte alles vom Beginn im Zwischenspeicher (1. Zwischenspeicher) | ||
| + | | ||
| + | -[^-]+$ | ||
| + | finde das " | ||
| + | | ||
| + | \\1 | ||
| + | ersetze die Zeichenkette durch den Inhalt aus dem 1. Zwischenspeicher | ||
| + | |||
| + | ### man kann auch mehrere Zeichenketten mit einem Spaltentrenner (-) wieder zu einer einzigen Zeichenkette zusammensetzen | ||
| + | - debug: | ||
| + | msg: "{{ var2[0:3] | join(' | ||
| + | |||
| + | ### in diesem Beispiel wird eine Datei eingelesen, zeilenweise bearbeitet und die einzelnen Zeilen werden beim '':'' | ||
| + | --- | ||
| + | - name: Ansible Split Example 4 | ||
| + | hosts: localhost | ||
| + | vars: | ||
| + | - usernames : [] | ||
| + | tasks: | ||
| + | - name: print only domain names from Email IDs with Split | ||
| + | set_fact: | ||
| + | usernames: '{{ usernames + [ item | split(":" | ||
| + | loop: "{{ lookup(' | ||
| + | | ||
| + | - debug: var=usernames | ||
| + | |||
| + | |||
| + | ===== SED / regex_replace ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <code python> | ||
| + | - name: Replace old hostname with new hostname (requires Ansible >= 2.4) | ||
| + | ansible.builtin.replace: | ||
| + | path: /etc/hosts | ||
| + | regexp: ' | ||
| + | replace: ' | ||
| + | </ | ||
| + | |||
| + | <code python> | ||
| + | - name: Supports a validate command | ||
| + | ansible.builtin.replace: | ||
| + | path: / | ||
| + | regexp: ' | ||
| + | replace: '\1 127.0.0.1: | ||
| + | validate: '/ | ||
| + | </ | ||
/home/http/wiki/data/attic/ansible.1712239881.txt · Zuletzt geändert: von manfred
