2017-10-17 2 views
-1

Ich lerne Ansible von Ansible-Anfänger zu Pro von Micheal Heap. Es scheint, dass Ansible nicht von Windows unterstützt wird. Das Buch schlägt stattdessen das Ausführen von Ansible von einer virtuellen Maschine vor. Ich habe eine VMbox mit vagrant gestartet, auf der sich ubuntu/trusty64 befindet. Ich bin erfolgreich in der Lage, meine Playbooks darauf laufen zu lassen. Ich stieß jedoch auf ein Problem beim Erstellen von Rollen mit anisible-galaxy.Wie man Ansible Galaxy Rollen in Windows erstellen?

Ich konnte keine Möglichkeit zum Erstellen/Initialisieren einer Rolle in Windows finden. Ich vage Vorstellungen von dieser Frage entlehnt How to automatically install Ansible Galaxy roles? und fügte den folgenden Befehl ein, um mein Textbuch local_action: command ansible-galaxy init sush.util --init-path roles

--- 
- hosts: all 
    gather_facts: false 
    become: true 
    tasks: 
    - name: make sure we can connect 
     ping: 
    #ansible-galaxy 
    - name: Init sush.util 
     local_action: command ansible-galaxy init sush.util --init-path roles 
     ignore_errors: true 

auf Windows-Rollen erstelle ich auch ignore_errors=true hinzugefügt, um die Fehler zu ignorieren, wenn die Rolle bereits erstellt wurde. Ist das der richtige Ansatz oder gibt es ein anderes/besseres in Windows?

+0

1. Wenn Sie ein Ubuntu-Betriebssystem verwenden, warum erwähnen Sie Windows sechs Mal? 2. Was ist Ihr Ziel? In Ihrem Playbook ordnen Sie zuerst eine Rolle zu, dann initialisieren Sie eine leere mit dem gleichen Namen. Das macht keinen Sinn. Selbst das Ersetzen von "Aufgaben" durch "Vor-Aufgaben", die die Reihenfolge umkehren würden, macht es nicht unbedingt sinnvoll. Es wäre immer noch eine leere Rolle. – techraf

+0

Ja, wahrscheinlich macht der Code das Ziel nicht klar. Ich möchte eine leere Rollenstruktur erstellen, dann gehe ich und lege Aufgaben zu main.yml-Dateien innerhalb der leeren Rollen hinzu und plane dann, die Rolle zu verwenden. Ich habe Ubuntu OS auf VMBox, nicht auf meinem Computer. Ich plane WordPress, Nginx, PHP usw. auf der VM zu installieren. Ich möchte Rollen in einem Ordner in Windows für jeden erstellen und sie jedes Mal wiederverwenden, wenn ich eine Komponente installieren möchte. – sushrut619

+0

Tun Sie es einfach. Ich sehe keinen Sinn darin, Ansible für das einzusetzen, was Leute normalerweise 'vi' oder ihren anderen Lieblingsredakteur benutzen. – techraf

Antwort

0

Wenn Sie eine Rolle lokal unter Windows erstellen möchten, müssen Sie dazu nicht unbedingt Ansible Galaxy verwenden. Eine Ansible-Rolle ist nur eine Gruppe von Ordnern. So erstellen Sie eine sush.util Rolle, erstellen Sie einen Ordner sush.util Namen und erstellen Sie dann die folgenden Ordner im Inneren, dass:

  • Aufgaben
  • Handler
  • Vorlagen
  • Dateien
  • Vars
  • meta

Schließlich in jedem dieser Ordner c Erzeuge eine Datei mit dem Namen main.yml, die --- an der Spitze enthält.

Sie haben jetzt eine Ansible-Rolle, die Sie ausführen können. Alle Aufgaben, die Sie zu tasks/main.yml hinzufügen, werden ausgeführt.

Verwandte Themen