Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Anisible include_role – universal, selinux und firewalld Rolle

Veröffentlicht am 3. April 2018 von Christian Piazzi 2 Kommentare , Aktualisiert am 12. Februar 2019
Geschätzte Lesezeit: 1 Minute

Nachdem wir bereits einige Ansible Rollen in den letzten Artikel erstellt haben, wollen wir heute mal eine Allgemeine Rolle für alle System erstellen. Diese nenne ich universal.

Ziel ist es, ein paar Standardeinstellungen auf den Zielsystem zu hinterlegen. Dafür werde ich zwei weitere Rollen erstellen. Eine für selinux und eine für firewalld. Diese beiden Rollen werden dann in der universal Role mit dem include_role Modul hinterlegen, damit ich nicht jede Rolle einzelnd in der site.yml auflisten muss. So verlieren ich nicht die dynamic und kann ggf. auf bereits vorhandenen Systemen noch mit selinux oder firewalld Rolle arbeiten.

Erstellen der Ansible selinux role

In der Ansible Rolle für selinux wollen wir lediglich selinux auf dem Zielsystem deaktivieren. Dafür legen wir den folgenden Block in selinux/tasks/main.yml an.

YAML
1
2
3
- name: Disable SELinux at next reboot
  selinux:
    state: disabled

Erstellen der Ansible firewalld role

Ähnlich wie in der Rolle für selinux wollen wir in der firewalld Rolle dafür sorgen, dass die Firwall auf unserem System generell deaktiviert ist.

YAML
1
2
3
4
5
- name: disable firewalld
  command: "{{ item }}"
  with_items:
     - systemctl stop firewalld
     - systemctl disable firewalld

Erstellen der Ansible universal role

Nun wollen wir in der universal role die beiden Rollen von selinux und firewalld einbinden. Das ganze sieht wie folgt aus.

YAML
1
2
3
4
5
- include_role:
    name: selinux
 
- include_role:
    name: firewalld

Durch das include_role Modul wird die entsprechende main.yml im tasks Ordner der Rolle geladen.

Neben der selinux und der firewalld role will ich mit der universal role noch ein paar Pakete installieren, die ich auf jedem System gerne vorfinde. Dazu dient der folgende Block:

YAML
1
2
3
4
5
6
- name: install standard packages
  yum: name={{ item }}
  with_items:
    - vim
    - wget
    - unzip

Testen der universal role

Nachdem wir die universal role angelegt haben, wollen wir diese nun auch testen. Dafür erstellt man als erstes einen entsprechenden Eintrag in der site.yml.

YAML
1
2
3
4
- name: universal
  hosts: universal
  roles:
    - universal

Anschließend wird noch die hosts Datei angepasst.

YAML
1
2
[universal]
192.168.10.90

Jetzt können wir den Ansible lauf starten.

Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ansible-playbook site.yml -i hosts
 
PLAY [universal] ************************************************************************
 
TASK [Gathering Facts] ******************************************************************
ok: [192.168.10.90]
 
TASK [universal : include_role] *********************************************************
 
TASK [selinux : Disable SELinux at next reboot] *****************************************
ok: [192.168.10.90]
 
TASK [universal : include_role] *********************************************************
 
TASK [firewalld : disable firewalld] ****************************************************
changed: [192.168.10.90] => (item=systemctl stop firewalld)
changed: [192.168.10.90] => (item=systemctl disable firewalld)
 
TASK [universal : install standard packages] ********************************************
changed: [192.168.10.90] => (item=[u'vim', u'wget', u'unzip'])
 
PLAY RECAP ******************************************************************************
192.168.10.90              : ok=4    changed=2    unreachable=0    failed=0

Wenn hier keine Fehler auftauchen war der Test erfolgreich. Somit haben wir unsere erste Hierachie in Ansible Rollen abgebildet.

Sämtliche Rollen die ich hier verwende könnt ihr in meinem GitHub Repository finden: https://github.com/Modius22/ansible-role

Kategorie: Ansible Tags: Ansible, Automatisierung, Centos, DevOps, firewalld, selinux

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Kommentare

  1. Simon meint

    3. April 2018 um 18:35

    Ich würde anstelle des command modul bei firewalld das Modul systemd oder service verwenden. Damit kannst du sicher gehen das er nicht bei jedem Durchlauf das command ausführt sondern nur wenn es notwendig ist.

    Antworten
    • Christian Piazzi meint

      7. April 2018 um 10:43

      Danke für den Hinweis. Das schaue ich mir mal an.

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Beliebte Artikel

  • Docker Container – anzeigen, starten, stoppen und löschen
  • Nextcloud https mit self-signed Zertifikat einrichten
  • Arten von Betriebssystemen
  • ioBroker auf dem Raspberry Pi installieren und konfigurieren
  • systemctl / systemd richtig verwenden

Neueste Kommentare

  • Thorben bei Nextcloud https mit self-signed Zertifikat einrichten
  • Sepp bei Automatisierte Dokumentation von Python Projekten mit sphinx
  • Sascha bei Arduino – 4fach 7-Segmentanzeige mit Schieberegister
  • Sylvio Seidel bei Nextcloud https mit self-signed Zertifikat einrichten
  • Markus Beier bei ioBroker auf dem Raspberry Pi installieren und konfigurieren

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2022 · Outreach Pro on Genesis Framework · WordPress · Anmelden