Ansible, rôle pas trouvé d'erreur
J'essaie de jouer à la suite playbook contre localhost à disposition Vagrant machine
---
- hosts: all
become: yes
roles:
- base
- jenkins
J'ai cloné rôles à partir de github et ils se trouve dans un chemin d'accès relatif roles/{role name}
Exécution de la commande suivante: ansible-playbook -i "localhost," -c local playbook.yml
sorties cette erreur:
==> default: ERROR! the role 'geerlingguy.java' was not found in /home/vagrant/provisioning/roles:/home/vagrant/provisioning:/etc/ansible/roles:/home/vagrant/provisioning/roles
==> default:
==> default: The error appears to have been in '/home/vagrant/provisioning/roles/jenkins/meta/main.yml': line 3, column 5, but may
==> default: be elsewhere in the file depending on the exact syntax problem.
==> default:
==> default: The offending line appears to be:
==> default:
==> default: dependencies:
==> default: - geerlingguy.java
==> default: ^ here
J'ai cloné la dépendance manquante à partir de github, et essayé de résider dans chemin d'accès relatif de roles/java
et roles/geerlingguy/java
, mais ne résout pas le problème, et l'erreur reste la même.
Je veux garder tous les rôles localement dans le synchronisés provisionnement dossier, sans l'aide d'ansible-galaxie de l'exécution, de faire la méthode de configuration peut être aussi autonome que possible.
Ici est la mise à disposition du dossier de la structure, comme il est maintenant
.
├── playbook.yml
└── roles
├── base
│ └── tasks
│ └── main.yml
├── java
│ ├── defaults
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── README.md
│ ├── tasks
│ │ ├── main.yml
│ │ ├── setup-Debian.yml
│ │ ├── setup-FreeBSD.yml
│ │ └── setup-RedHat.yml
│ ├── templates
│ │ └── java_home.sh.j2
│ ├── tests
│ │ └── test.yml
│ └── vars
│ ├── Debian.yml
│ ├── Fedora.yml
│ ├── FreeBSD.yml
│ ├── RedHat.yml
│ ├── Ubuntu-12.04.yml
│ ├── Ubuntu-14.04.yml
│ └── Ubuntu-16.04.yml
└── jenkins
├── defaults
│ └── main.yml
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── README.md
├── tasks
│ ├── main.yml
│ ├── plugins.yml
│ ├── settings.yml
│ ├── setup-Debian.yml
│ └── setup-RedHat.yml
├── templates
│ └── basic-security.groovy
├── tests
│ ├── requirements.yml
│ ├── test-http-port.yml
│ ├── test-jenkins-version.yml
│ ├── test-plugins-with-pinning.yml
│ ├── test-plugins.yml
│ ├── test-prefix.yml
│ └── test.yml
└── vars
├── Debian.yml
└── RedHat.yml
OriginalL'auteur Tuomas Toivonen | 2016-10-05
Vous devez vous connecter pour publier un commentaire.
Vous devez installer ou clone tous des rôles nécessaires dans le
/roles
dossier (ou dans le dossier système)devrait corriger ce problème spécifique.
Cependant, la les meilleures pratiques devrait être l'utilisation d'un
requirements.yml
fichier où vous avez besoin de tous les rôles nécessaires et de les installer avecansible-galaxy
directement dans votre playbook.Même erreur confirmé pour les exigences.yml approche
Comme vous pouvez le voir cette erreur est déclenchée si le fichier tar est en quelque sorte d'une malformation. J'ai juste exécuté le
sudo ansible-galaxy install -p my-folder -r requirements.txt
(avec seulementgeerlingguy.java
de contenu) sur ma boîte de dev sans problèmes. Pourquoi sudo par le chemin?OriginalL'auteur Diego Ferri
Voici la solution: le chemin d'accès requis pour le rôle est
roles/geerlingguy.java/
, pasroles/geerlingguy/java/
OriginalL'auteur Tuomas Toivonen