gpt4 book ai didi

configuration - Ansible,找不到角色错误

转载 作者:行者123 更新时间:2023-12-04 05:46:00 25 4
gpt4 key购买 nike

我尝试针对本地主机播放以下剧本以配置 Vagrant 机器

---
- hosts: all
become: yes
roles:
- base
- jenkins

我已经从 github 克隆了必要的角色,它们驻留在相对路径中 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 ,但都没有解决问题,错误保持不变。

我想将所有角色本地保存在同步配置文件夹中,而不使用 ansible-galaxy 运行时,以使配置方法尽可能自包含。

这是供应文件夹结构,因为它现在
.
├── 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

最佳答案

您应该在 /roles 中安装或克隆所有必需的角色。文件夹(或在系统文件夹中)

ansible-galaxy install -p ROLES_PATH geerlingguy.java

应该解决这个特定的问题。

然而, best practice应该是使用 requirements.yml文件中您需要所有需要的角色,然后使用 ansible-galaxy 安装它们直接在你的剧本中。
- name: run ansible galaxy
local_action: command ansible-galaxy install -r requirements.yml --ignore-errors

关于configuration - Ansible,找不到角色错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com