| |
linux:ansible:playbook_example_04 [14.09.2022 14:15. ] – angelegt django | linux:ansible:playbook_example_04 [18.11.2024 19:01. ] (aktuell) – Externe Bearbeitung 127.0.0.1 |
---|
| |
===== Beispiel 4: bedingtes Kopieren ===== | ===== Beispiel 4: bedingtes Kopieren ===== |
Im vierten Beispiel wollen wir die Konfigurationsdatei **''mailserver.guru.repo''** für das Repository **[[http://repo.mailserver.guru/|repo.mailserver.guru]]** auf alle unsere definierten CentOS-Hosts kopieren. Dabei müssen wir natürlich beachten, dass sich die Datei zwischen den Versionen CentOS 7 und CentOS 8 unterscheiden, wenn auch nur geringfügig! | Im vierten Beispiel wollen wir die Konfigurationsdatei **''nausch.org.repo''** für das Repository **[[http://repo.nausch.org/|repo.nausch.org]]** auf alle unsere definierten CentOS-Hosts kopieren. Dabei müssen wir natürlich beachten, dass sich die Datei zwischen den Versionen CentOS 7 und CentOS 8 unterscheiden, wenn auch nur geringfügig! |
| |
==== Script anlegen ==== | ==== Script anlegen ==== |
| |
tasks: | tasks: |
- name: Place repo-file mailserver.guru for CentOS 8 right in place | - name: Place repo-file nausch.org for CentOS 8 right in place |
copy: | copy: |
src: /home/django/ansible/files/CentOS8/mailserver.guru.repo | src: /home/django/ansible/files/CentOS8/nausch.org.repo |
dest: /etc/yum.repos.d/ | dest: /etc/yum.repos.d/ |
when: | when: |
- ansible_facts['distribution_major_version'] == "8" | - ansible_facts['distribution_major_version'] == "8" |
| |
- name: Place repo-file mailserver.guru for CentOS 7 right in place | - name: Place repo-file nausch.org for CentOS 7 right in place |
copy: | copy: |
src: files/CentOS7/mailserver.guru.repo | src: files/CentOS7/nausch.org.repo |
dest: /etc/yum.repos.d/ | dest: /etc/yum.repos.d/ |
when: | when: |
| |
\\ | \\ |
Die **CentOS 7** spezifische Repo-Datei **''mailserver.guru.repo''** speichern wir nun im Verzeichnis **''~/ansible/files/CentOS7''**. | Die **CentOS 7** spezifische Repo-Datei **''nausch.org.repo''** speichern wir nun im Verzeichnis **''~/ansible/files/CentOS7''**. |
$ vim ~/ansible/files/CentOS7/mailserver.guru.repo | $ vim ~/ansible/files/CentOS7/nausch.org.repo |
| |
<file bash ~/ansible/files/CentOS7/mailserver.guru.repo># Repository mailserver.guru | <file bash ~/ansible/files/CentOS7/nausch.org.repo># Repository nausch.org |
[mailserver.guru-os] | [nausch.org-os] |
name=Extra (Mailserver-)Packages for Enterprise Linux 7 - $basearch | name=Extra (Mailserver-)Packages for Enterprise Linux 7 - $basearch |
baseurl=http://repo.mailserver.guru/7/os/$basearch | baseurl=http://repo.nausch.org/7/os/$basearch |
priority=5 | priority=5 |
enabled=1 | enabled=1 |
| |
| |
[mailserver.guru-testing] | [nausch.org-testing] |
name=Testing (Mailserver-)Packages for Enterprise Linux 7 - $basearch | name=Testing (Mailserver-)Packages for Enterprise Linux 7 - $basearch |
baseurl=http://repo.mailserver.guru/7/testing/$basearch/ | baseurl=http://repo.nausch.org/7/testing/$basearch/ |
#priority=5 | #priority=5 |
enabled=0 | enabled=0 |
gpgkey=file:///etc/pki/rpm-gpg/MAILSERVER.GURU-RPM-GPG-KEY-CentOS-7</file> | gpgkey=file:///etc/pki/rpm-gpg/MAILSERVER.GURU-RPM-GPG-KEY-CentOS-7</file> |
| |
Die **CentOS 8** spezifische Repo-Datei **''mailserver.guru.repo''** speichern wir entsprechend im Verzeichnis **''~/ansible/files/CentOS8''** ab. | Die **CentOS 8** spezifische Repo-Datei **''nausch.org.repo''** speichern wir entsprechend im Verzeichnis **''~/ansible/files/CentOS8''** ab. |
$ vim ~/ansible/files/CentOS8/mailserver.guru.repo | $ vim ~/ansible/files/CentOS8/nausch.org.repo |
| |
<file bash ~/ansible/files/CentOS8/mailserver.guru.repo># Repository mailserver.guru | <file bash ~/ansible/files/CentOS8/nausch.org.repo># Repository nausch.org |
[mailserver.guru-os] | [nausch.org-os] |
name=Extra (Mailserver-)Packages for Enterprise Linux 8 - $basearch | name=Extra (Mailserver-)Packages for Enterprise Linux 8 - $basearch |
baseurl=http://repo.mailserver.guru/8/os/$basearch | baseurl=http://repo.nausch.org/8/os/$basearch |
priority=5 | priority=5 |
enabled=1 | enabled=1 |
| |
| |
[mailserver.guru-testing] | [nausch.org-testing] |
name=Testing (Mailserver-)Packages for Enterprise Linux 8 - $basearch | name=Testing (Mailserver-)Packages for Enterprise Linux 8 - $basearch |
baseurl=http://repo.mailserver.guru/8/testing/$basearch/ | baseurl=http://repo.nausch.org/8/testing/$basearch/ |
#priority=5 | #priority=5 |
enabled=0 | enabled=0 |
| |
==== Script Beschreibung ==== | ==== Script Beschreibung ==== |
Unser Playbook, welches alle Hosts anspricht besteht im Wesentlichen aus zwei Tasks/Aufgaben. Abhängig von den beiden Ansible Facts **''distribution''** und **''distribution_major_version''** wird die Repository-Konfigurations-Datei **''mailserver.guru.repo''** auf den entsprechenden Zielhost kopiert. | Unser Playbook, welches alle Hosts anspricht besteht im Wesentlichen aus zwei Tasks/Aufgaben. Abhängig von den beiden Ansible Facts **''distribution''** und **''distribution_major_version''** wird die Repository-Konfigurations-Datei **''nausch.org.repo''** auf den entsprechenden Zielhost kopiert. |
| |
Zum Kopieren wird dann das Ansible Modul **[[https://docs.ansible.com/ansible/latest/modules/copy_module.html|copy]]** verwendet. Da wir das RPM-Paket **[[centos:ansible:start#dokumentation_rpm|ansible-doc]]** installiert hatten, könne wir auch auf der Konsole direkt Informationen zu dem Modul beziehen. Allgemeine Infos zu dem Modul erhalten wir mit folgendem Befehl: | Zum Kopieren wird dann das Ansible Modul **[[https://docs.ansible.com/ansible/latest/modules/copy_module.html|copy]]** verwendet. Da wir das RPM-Paket **[[centos:ansible:start#dokumentation_rpm|ansible-doc]]** installiert hatten, könne wir auch auf der Konsole direkt Informationen zu dem Modul beziehen. Allgemeine Infos zu dem Modul erhalten wir mit folgendem Befehl: |
<font style="color: rgb(25, 100, 5)">ok: [www7.dmz.nausch.org] | <font style="color: rgb(25, 100, 5)">ok: [www7.dmz.nausch.org] |
ok: [www8.dmz.nausch.org]</font><br> | ok: [www8.dmz.nausch.org]</font><br> |
<font style="color: rgb(0, 0, 0)">TASK [Place repo-file mailserver.guru for CentOS 8 right in place] *********************************************************************</font> | <font style="color: rgb(0, 0, 0)">TASK [Place repo-file nausch.org for CentOS 8 right in place] *********************************************************************</font> |
<font style="color: rgb(4, 138, 145)">skipping: [www7.dmz.nausch.org] => {"changed": false, "skip_reason": "Conditional result was False"}</font> | <font style="color: rgb(4, 138, 145)">skipping: [www7.dmz.nausch.org] => {"changed": false, "skip_reason": "Conditional result was False"}</font> |
<font style="color: rgb(196, 160, 0)">changed: [www8.dmz.nausch.org] => {"changed": true, "checksum": "e9ab494c29df71d4e869c5b0bf68caf865ef74c9", "dest": "/etc/yum.repos.d/mailserver.guru.repo", "gid": 0, "group": "root", "md5sum": "f21be9d7340e512c004747204b54a2b5", "mode": "0644", "owner": "root", "secontext": "system_u:object_r:system_conf_t:s0", "size": 614, "src": "/home/ansible/.ansible/tmp/ansible-tmp-1578253275.4362092-25566445227282/source", "state": "file", "uid": 0}</font><br> | <font style="color: rgb(196, 160, 0)">changed: [www8.dmz.nausch.org] => {"changed": true, "checksum": "e9ab494c29df71d4e869c5b0bf68caf865ef74c9", "dest": "/etc/yum.repos.d/nausch.org.repo", "gid": 0, "group": "root", "md5sum": "f21be9d7340e512c004747204b54a2b5", "mode": "0644", "owner": "root", "secontext": "system_u:object_r:system_conf_t:s0", "size": 614, "src": "/home/ansible/.ansible/tmp/ansible-tmp-1578253275.4362092-25566445227282/source", "state": "file", "uid": 0}</font><br> |
<font style="color: rgb(0, 0, 0)">TASK [Place repo-file mailserver.guru for CentOS 7 right in place] *********************************************************************</font> | <font style="color: rgb(0, 0, 0)">TASK [Place repo-file nausch.org for CentOS 7 right in place] *********************************************************************</font> |
<font style="color: rgb(4, 138, 145)">skipping: [www8.dmz.nausch.org] => {"changed": false, "skip_reason": "Conditional result was False"}</font> | <font style="color: rgb(4, 138, 145)">skipping: [www8.dmz.nausch.org] => {"changed": false, "skip_reason": "Conditional result was False"}</font> |
<font style="color: rgb(196, 160, 0)">changed: [www7.dmz.nausch.org] => {"changed": true, "checksum": "0fac1360785f0e02e074b4cc4f785e181f6620b9", "dest": "/etc/yum.repos.d/mailserver.guru.repo", "gid": 0, "group": "root", "md5sum": "90d8ca6369ff514b3c3dc3ddfac4ebdb", "mode": "0644", "owner": "root", "secontext": "system_u:object_r:system_conf_t:s0", "size": 614, "src": "/home/ansible/.ansible/tmp/ansible-tmp-1578253277.3541374-16074731401428/source", "state": "file", "uid": 0}</font><br> | <font style="color: rgb(196, 160, 0)">changed: [www7.dmz.nausch.org] => {"changed": true, "checksum": "0fac1360785f0e02e074b4cc4f785e181f6620b9", "dest": "/etc/yum.repos.d/nausch.org.repo", "gid": 0, "group": "root", "md5sum": "90d8ca6369ff514b3c3dc3ddfac4ebdb", "mode": "0644", "owner": "root", "secontext": "system_u:object_r:system_conf_t:s0", "size": 614, "src": "/home/ansible/.ansible/tmp/ansible-tmp-1578253277.3541374-16074731401428/source", "state": "file", "uid": 0}</font><br> |
<font style="color: rgb(0, 0, 0)">PLAY RECAP ***************************************************************************************************************************************</font> | <font style="color: rgb(0, 0, 0)">PLAY RECAP ***************************************************************************************************************************************</font> |
<font style="color: rgb(196, 160, 0)">www7.dmz.nausch.org </font><font style="color: rgb(0, 0, 0)">: </font><font style="color: rgb(25, 100, 5)">ok=2 </font><font style="color: rgb(196, 160, 0)">changed=1 </font><font style="color: rgb(0, 0, 0)">unreachable=0 failed=0 <font style="color: rgb(4, 138, 145)">skipped=1</font><font style="color: rgb(0, 0, 0)"> rescued=0 ignored=0</font> | <font style="color: rgb(196, 160, 0)">www7.dmz.nausch.org </font><font style="color: rgb(0, 0, 0)">: </font><font style="color: rgb(25, 100, 5)">ok=2 </font><font style="color: rgb(196, 160, 0)">changed=1 </font><font style="color: rgb(0, 0, 0)">unreachable=0 failed=0 <font style="color: rgb(4, 138, 145)">skipped=1</font><font style="color: rgb(0, 0, 0)"> rescued=0 ignored=0</font> |
==== Ergebnis ==== | ==== Ergebnis ==== |
Auf dem Zielhost findet sich nun unsere gewünschte Datei mit dem zugehörigen Inhalt an Ort und Stelle. | Auf dem Zielhost findet sich nun unsere gewünschte Datei mit dem zugehörigen Inhalt an Ort und Stelle. |
# ll /etc/yum.repos.d/mailserver.guru.repo | # ll /etc/yum.repos.d/nausch.org.repo |
| |
<code>-rw-r--r--. 1 root root 614 Jan 5 20:41 /etc/yum.repos.d/mailserver.guru.repo</code> | <code>-rw-r--r--. 1 root root 614 Jan 5 20:41 /etc/yum.repos.d/nausch.org.repo</code> |
| |
====== Links ====== | ====== Links ====== |