Modius - Techblog

  • Ansible
  • Gastautor werden
  • Über Mich
  • Kontakt
  • Impressum

Anisible include_role – universal, selinux und firewalld Rolle

Veröffentlicht am 3. April 2018 von Christian Piazzi 2 Comments , Aktualisiert am 3. April 2018

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.

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

Filed Under: Ansible Tagged With: Ansible, Automatisierung, Centos, DevOps, firewalld, selinux

About 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

Comments

  1. Simon says

    3. April 2018 at 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 says

      7. April 2018 at 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.

Social Media

Kategorien

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

Beliebte Artikel

  • Fritzbox 7490 – VPN mit dynDNS einrichten
  • Nextcloud https mit self-signed Zertifikat einrichten
  • Nextcloud unter Ubuntu 16.04 installieren
  • Icinga2 – Den ersten Host überwachen
  • Fritzbox – ownCloud über das Internet erreichen

Neueste Kommentare

  • Julian Finkler bei Deep Learning Lösungen mit Neural Network
  • Christian Piazzi bei Anisible include_role – universal, selinux und firewalld Rolle
  • Adrian Kr. und Sasa D. bei Arten von Betriebssystemen
  • Seppi bei Nextcloud https mit self-signed Zertifikat einrichten
  • Simon bei Anisible include_role – universal, selinux und firewalld Rolle

Werbung

Copyright © 2018 · Outreach Pro Theme on Genesis Framework · WordPress · Log in

We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok