私はgithubのから必要な役割をクローニングしAnsible、役割が見つからないエラー
---
- hosts: all
become: yes
roles:
- base
- jenkins
提供ベイグラントマシンにローカルホストに対して、次の脚本を再生しようと、彼らは、次のコマンドを実行すると、相対パスroles/{role name}
に常駐:ansible-playbook -i "localhost," -c local playbook.yml
出力するエラー:
==> 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
私はgithubのから欠落している依存関係をクローン化し、そしてそれを常駐してみました相対パスはroles/java
とroles/geerlingguy/java
ですが、どちらも問題を解決しておらず、エラーも同じです。
同期型プロビジョニング・フォルダにすべてのロールをローカルに保持し、プロビジョニング・メソッドを可能な限り自己完結型にするために、ギャラクシー・ランタイムを使用しないでください。ここで
それが今
.
├── 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
は、私が最初の例を試してみましたが、それが問題を解決しませんでした。私は要件ファイルが必要であるというエラーを受けましたので、私はそれをanacle-galaxyのドキュメントのように試しました:sudo ansible-galaxy install -p $ ROLES_PATH -r requirements.txt、requirements.txtの内容はgeerlingguy.javaです。次のエラーが発生しました:requirements.txtが正常にインストールされていません:ファイル==>デフォルト:ダウンロードしたものがtar.gzではありません –
requirements.ymlと同じエラーが確認されました –
[このエラーが発生しました] //github.com/ansible/ansible/blob/6787fc70a643fb6e2bdd2c6a6202072d21db72ef/lib/ansible/galaxy/role.py#L242)。もしtarファイルが何らかの形で不正であれば。 私はdevディレクトリに問題なしで 'sudo ansible-galaxy install -p my-folder -r requirements.txt'(コンテンツとして' geerlingguy.java'のみを使用)を実行しました。なぜsudoをやるの? –