Verzeichnisstruktur

Anleitung für die Konfiguration von File Type Patterns bis OrchidE 2022.1.4.0. Für neuere Version gibt es die vereinfachte Konfiguration Ansible Folder Mapping.

Zum Erkennen von Ansible Dateien benötigt OrchidE zwei grundsätzliche Einstellungen:

  • die Root-Ordner, in denen sich die Playbooks, Roles und Inventories befinden
  • ein Pattern-Set um zu erkennen, ob es sich um eine Playbook-, Task- oder Variablen-Datei handelt

Root-Ordner

Die Root-Ordner werden in den Einstellungen unter Datei | Einstellungen | Sprachen & Frameworks | OrchidE | Ansible Folder Mapping konfiguriert.

Besteht ein IntelliJ Projekt nur aus einer Ansible Rolle, d.h. die tasks, handlers, defaults, … Ordner sind direkt im IntelliJ Root Ordner, nennt das OrchidE ein ‘Single Ansible role project’.

Für ein ‘Single Ansible role project’ wird die Checkbox “Single Ansible role project” oberhalb der Sektion Role Root Folders selektiert.

Damit wird der IntelliJ Projektordner als Root-Ordner für die Rolle genutzt und Standard-Patterns unabhängig von den Einstellungen in “File Type Patterns”. Der molecule Ordner wird aktuell im Single Ansible role project nicht automatisch unterstützt. Hierfür sind eigene Patterns für Playbooks und Tasks nötig.

Pattern-Sets

Die Standard-Pattern zum Erkennen von playbooks, tasks und variables sind für die folgende Verzeichnisstruktur eingestellt:

  project
  |-- inventory
  |   |-- hosts
  |   |-- group_vars
  |   |   |-- webservers
  |   |   |   |-- default.yml
  |-- playbooks
  |   |-- webservers
  |   |   -- main.yml  
  |-- roles
  |   |-- webserver
  |   |   |-- tasks
  |   |   |   |-- main.yml

Alternativ können playbooks auch im playbooks-Ordner direkt abgelegt werden.

Beliebige weitere Pattern für abweichende Verzeichnisstrukturen können über die Einstellungen für die “File Type Pattern” vorgenommen werden.

(File | Settings | Languages & Frameworks | OrchidE | File Type Patterns)

Konfigurationsdialog für das Erkennen von Ansible Dateien

Bedeutung der Ansible Types:

Playbook
Standard Type für das Erkennen von Playbooks. Bei diesem Type wird der Dateiname einer Playbook-Datei als Playbook Name interpretiert (für die Verwendung bei der Navigation)
PlaybookFolder
bei diesem Type wird der übergeordnete Ordner einer Playbook-Datei als Playbook Name verwendet. Hiermit kann eine Kategorisierung von Playbooks erfolgen
Task
Type für die Erkennung von Dateien die Tasks enthalten. Zur Aufteilung von Playbooks wenn keine roles verwendet werden (include_tasks). Diesen Type nicht für roles verwenden.
RoleTask
Type für tasks und handlers Dateien in roles
RoleVariable
Type für defaults und vars Dateien in roles
Anmerkung: Pattern von diesem Type müssen explizit auf eine spezifische Rolle zutreffen. Für den Rollennamen muss der Platzhalter “%s” benutzt werden.

Beispiel:

|-- roles
  |   |-- webserver
  |   |   |-- defaults
  |   |   |   |-- main.yml

Passendes Pattern:

.*/roles/%s/defaults/.*\.ya?ml

Variable
generischer Type für alle Dateien die Ansible Variablen enthalten (role vars/defaults, host vars, group vars, inkludierte Dateien). Bei diesem Type müssen Pattern für die Rollen Variablen nochmals enthalten sein.

File Type Pattern Konfiguration zurücksetzen

Die OrchidE Plugin Default-Einstellungen können über den Toolbar-Button (Reset Button) wieder hergestellt werden