Role Grundgerüst erstellen
Um eine Rolle zu erstellen muss man in seinem ProjektverzeichnisProjekt Verzeichnis wenn nicht schon vorhanden ein Verzeichnis Namesroles 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 derbenutzername.rolenname
Wir namenennen vomunsere githubaccout.rollennameBeispiel:Rolle immohacker.ansible-mal ansibe-role-test
also der Befehl lautet:
ansible-galaxy collection init immohacker.ansible-role-test
Hier mit wird dann folgende Verzeichnisstruktur erstellt:
~/mein-ansible/project1/roles/immohacker.anisble-role-testansible-test-roleDie 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
Inin der /meta/main.ymlymll 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 CollectionRolle muss die Versionsnummer in der Datei erhöht werden.
Diese Datei dient
Die wichtigsten Punkte in der Datei sind:
ff
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