{"id":3351,"date":"2023-02-20T07:00:00","date_gmt":"2023-02-20T06:00:00","guid":{"rendered":"https:\/\/www.my-it-brain.de\/wordpress\/?p=3351"},"modified":"2023-04-10T22:00:39","modified_gmt":"2023-04-10T20:00:39","slug":"rhel-system-roles-timesync","status":"publish","type":"post","link":"https:\/\/www.my-it-brain.de\/wordpress\/rhel-system-roles-timesync\/","title":{"rendered":"RHEL System Roles: timesync"},"content":{"rendered":"\n<p>In diesem dritten Teil meiner Serie \u00fcber RHEL System Roles nutze ich die Rolle <em>timesync<\/em>, um die NTP-Pool-Zone de.pool.ntp.org f\u00fcr meine Hosts zu konfigurieren.<\/p>\n\n\n\n<p>Ich m\u00f6chte mit diesem Artikel zeigen, wie einfach die Nutzung der RHEL System Roles ist, um eine Gruppe von RHEL-Servern zu konfigurieren. Dabei muss ich mich nicht um Details wie die Frage k\u00fcmmern, ob auf meinen Zielhosts <em>ntpd<\/em> oder <em>chronyd<\/em> f\u00fcr die Zeitsynchronisierung genutzt wird. Diese Aufgabe l\u00f6st die Ansible-Rolle f\u00fcr mich.<\/p>\n\n\n\n<p>Bevor ich fortfahre, habe ich eine <strong>Warnung<\/strong>: Diese Rolle ersetzt die Konfiguration auf den Zielsystemen. Alle zuvor dort getroffenen Einstellungen werden verloren gehen.<\/p>\n\n\n\n<p>Man muss sich also entscheiden, ob man die Zeitsynchronisation komplett \u00fcber diese Rolle steuern m\u00f6chte oder gar nicht.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Voraussetzungen<\/h2>\n\n\n\n<p>Auf dem Ansible-Controller m\u00fcssen die Pakete <code>ansible-core<\/code> und <code>rhel-system-roles<\/code> installiert sein.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Das Playbook<\/h2>\n\n\n\n<p>Ich m\u00f6chte mehrere NTP-Server konfigurieren. F\u00fcr diesen Anwendungsfall liefert die Rolle <em>timesync<\/em> bereits ein Beispiel mit, welches ich mittels Copy-Paste-and-Modify in mein Playbook \u00fcbernehme.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@ansible-ctrl ]# cp \/usr\/share\/doc\/rhel-system-roles\/timesync\/example-multiple-ntp-servers-playbook.yml ansible\/use_de_ntp_servers.yml<\/code><\/pre>\n\n\n\n<p>Das Playbook sieht nach der Anpassung wie folgt aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- hosts: all\n  vars:\n    timesync_ntp_servers:\n      - hostname: 0.de.pool.ntp.org\n        iburst: yes\n      - hostname: 1.de.pool.ntp.org\n        iburst: yes\n      - hostname: 2.de.pool.ntp.org\n        iburst: yes\n      - hostname: 3.de.pool.ntp.org\n        iburst: yes\n  roles:\n    - rhel-system-roles.timesync<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Testlauf in Labor-Umgebung<\/h2>\n\n\n\n<p>Um zu sehen, wie die Datei <code>\/etc\/chrony.conf<\/code> vor und nach dem Playbook-Lauf aussieht, lasse ich das Playbook zuerst mit den Optionen <code>-C<\/code> (aktiviert Check-Mode) und <code>-D<\/code> (zeigt die \u00c4nderungen an) laufen. So kann ich vorab pr\u00fcfen, welche \u00c4nderungen vorgenommen werden, bevor es ernst wird. Die Ausgabe ist \u00fcber 500 Zeilen lang. Ich habe sie auf Gist gepostet und hier eingebunden. Wer sich f\u00fcr die Ausgabe nicht interessiert, kann direkt zur <a href=\"#zusammenfassung\">Zusammenfassung<\/a> springen.<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/Tronde\/eac5b0e22df93bfd0dbb1f5f9e890403.js\"><\/script>\n\n\n\n<p>Anschlie\u00dfend habe ich das Playbook ohne die Optionen <code>-C<\/code> und <code>-D<\/code> ausgef\u00fchrt und meine Hosts wie gew\u00fcnscht konfiguriert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zusammenfassung\">Zusammenfassung<\/h2>\n\n\n\n<p>Mit der RHEL System Role <em>timesync<\/em> kann die Zeitsynchronisation verschiedener RHEL-Releases schnell und einfach konfiguriert werden, ohne Kenntnis \u00fcber die konkrete Implementierung auf den Zielsystemen zu besitzen.<\/p>\n\n\n\n<p>Gleichzeitig kann ein Blick in die Struktur der Rolle und den Inhalt der dazugeh\u00f6rigen Dateien Aufschluss dar\u00fcber geben, wie Ansible-Rollen f\u00fcr mehrere RHEL-Major-Releases erstellt werden k\u00f6nnen. Man kann dies f\u00fcr die Erstellung eigener Rollen mit ein wenig Transferleistung wiederverwenden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"quellen-links\">Weiterf\u00fchrende Quellen und Links<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/access.redhat.com\/articles\/3050101\">Red Hat Enterprise Linux (RHEL) System Roles {en}<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/user_guide\/playbooks_reuse_roles.html#role-directory-structure\">Ansible Documentation: Role Directory Structure {en}<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/access.redhat.com\/downloads\/\">Red Hat Software and Download Center {en}<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.redhat.com\/de\/about\/value-of-subscription\">Die Vorteile einer Red Hat Subskription<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.my-it-brain.de\/wordpress\/rhel-system-roles-selinux\/\">RHEL System Roles: selinux<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.my-it-brain.de\/wordpress\/rhel-system-roles-sshd\/\">RHEL System Roles: sshd<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.my-it-brain.de\/wordpress\/rhel-system-roles-firewall\/\">RHEL System Roles: firewall<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>In diesem dritten Teil meiner Serie \u00fcber RHEL System Roles nutze ich die Rolle timesync, um die NTP-Pool-Zone de.pool.ntp.org f\u00fcr meine Hosts zu konfigurieren. Ich m\u00f6chte mit diesem Artikel zeigen, wie einfach die Nutzung der RHEL System Roles ist, um eine Gruppe von RHEL-Servern zu konfigurieren. Dabei muss ich mich nicht um Details wie die<span class=\"continue-reading\"> <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/rhel-system-roles-timesync\/\">[Weiterlesen&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_metis_text_type":"","_metis_text_length":0,"_post_count":0,"footnotes":""},"categories":[532],"tags":[410,547,758,430,305,754,757],"class_list":["post-3351","post","type-post","status-publish","format-standard","hentry","category-ansible","tag-ansible","tag-chrony","tag-ntp","tag-osbn","tag-planet","tag-rhel-system-roles","tag-timesync"],"_links":{"self":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/comments?post=3351"}],"version-history":[{"count":6,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3351\/revisions"}],"predecessor-version":[{"id":3461,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3351\/revisions\/3461"}],"wp:attachment":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/media?parent=3351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/categories?post=3351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/tags?post=3351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}