Role Grundgerüst erstellen
Um eine Rolle zu erstellen muss man in seinem Projekt Verzeichnis wenn nicht schon vorhanden ein Verzeichnis roles erstellen.
zum Beispiel, diese Verzeichnis. Wenn nicht besteht dann anlegen.
mkdir ~/mein-ansible/project1/roles/
#in das Verzeichnis rein gehen.
cd ~/mein-ansible/project1/roles/
Nun kann mittels ansible Galxay Befehl eine Rolle angelegt werden
Der Aufbau einer Rolle ist immer der benutzername.rolenname
Wir nennen unsere Rolle mal ansibe-role-test
also der Befehl lautet:
ansible-galaxy init immohacker.ansible-role-test
Hier mit wird dann folgende Verzeichnisstruktur erstellt:
~/mein-ansible/project1/roles/immohacker.ansible-test-role
Die Verzeichnisstruktur sieht dann so aus:
.
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── README.md
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
in der /meta/main.ymll kommen die Daten und die Versionsnummern rein. Diese Datei muss auch vorhanden sein, wenn die rolle mit Ansible Galaxy zur verfügung gestellt werden soll. Siehe Repo in ansible Galaxy hinzufügen
bei jeder Änderung an der Rolle muss die Versionsnummer in der Datei erhöht werden.
Diese Datei dient
Die wichtigsten Punkte in der Datei sind:
authors : Unser Name
Description : Beschreibung der Rolle, also was macht diese.
company : Deine Firma ist optional
#Eine liste von Platformen gibt es hier: https://galaxy.ansible.com/api/v1/platforms/
platforms:
- name: Debian
versions:
- stretch
- buster
- bullseye
- all
#Die midestversion von ansible
min_ansible_version: "2.1"
#Unterwelchen suchbegriffen die Rolle gefunden werde soll, die Tags
galaxy_tags: ['etstbegriff1','testbegriff2','testbegriff3','testbegriff4']
dependencies:
- role: stefanhacker.ansible_extract_iso
tags: [never]
Das Tag never bedeutet lade die Rolle für die abhängigkeit runter, führe diese aber nicht aus
Rollen die als abbhänngigkeit eingetragen werden, werden standard mäßig auch gleich nach dem download ausgeführt.
unter Umständen ist dies aber nicht gewüscht, weil custom parameter übergeben werden müssen.
Das wars auch schon. Schon kann darin gearbeitet werden.
Möchte man das ganze noch in ein Git Repo syncen dann siehe Abschnitt :
Ansible Role zu Github hinzufügen