2017-10-17 5 views
-1

J'apprends ansible d'ansible-débutant à pro par micheal tas. Il semble que ansible n'est pas supporté sur Windows. Le livre suggère à la place de courir à partir d'une machine virtuelle. J'ai commencé une VMbox en utilisant vagabond, qui a ubuntu/trusty64 dessus. Je suis capable de lancer mes playbooks avec succès. Cependant, j'ai rencontré un problème lors de la création de rôles ansible-galaxie.Comment créer des rôles de galaxies ansible dans Windows?

Je ne pouvais pas trouver un moyen de créer/initialiser un rôle sur Windows. Je me suis vaguement emprunté des idées de cette question How to automatically install Ansible Galaxy roles? et a ajouté la commande suivante à mon PlayBook créer des rôles sur les fenêtres 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 

J'ai aussi ajouté ignore_errors=true d'ignorer les erreurs si le rôle a déjà été créé. Est-ce la bonne approche ou existe-t-il un autre/mieux de le faire dans Windows?

+0

1. Si vous utilisez un système d'exploitation Ubuntu, pourquoi mentionnez-vous Windows six fois? 2. Quel est votre objectif? Dans votre manuel, vous attribuez d'abord un rôle, puis vous en initialisez un vide avec le même nom. Cela n'a aucun sens. Même le remplacement de 'tasks 'par' pre_tasks' qui inverserait l'ordre ne le rendra pas nécessairement significatif. Ce serait toujours un rôle vide. – techraf

+0

Oui, probablement le code ne rend pas clair l'objectif. Je veux créer une structure de rôle vide, puis je vais ajouter des tâches aux fichiers main.yml dans les rôles vides, puis je prévois d'utiliser le rôle. J'ai un système d'exploitation ubuntu sur VMBox, pas sur mon ordinateur. Je prévois d'installer wordpress, nginx, php etc sur la VM. Je veux créer des rôles dans un dossier sur Windows pour chacun et les réutiliser chaque fois que je veux qu'un composant soit installé. – sushrut619

+0

Il suffit de le faire. Je ne vois pas l'intérêt d'employer Ansible pour ce que les gens utilisent habituellement "vi" ou leur autre éditeur préféré. – techraf

Répondre

0

Si votre objectif est de créer un rôle localement sur Windows, vous n'avez pas besoin d'utiliser Ansible Galaxy pour cela. Un rôle Ansible est juste un ensemble de dossiers. Pour créer un sush.util rôle, créez un dossier nommé sush.util puis créer les dossiers suivants à l'intérieur que:

  • tâches
  • gestionnaires
  • modèles
  • fichiers
  • vars
  • méta

Enfin, à l'intérieur de chacun de ces dossiers c Reate un fichier nommé main.yml qui contient --- en haut.

Vous avez maintenant un rôle Ansible que vous pouvez exécuter. Toutes les tâches que vous ajoutez à tasks/main.yml seront exécutées.