gpt4 book ai didi

vagrant - 使用 vagrant 条款更改 ansible role_path

转载 作者:行者123 更新时间:2023-12-04 11:21:27 25 4
gpt4 key购买 nike

我有一堆 ansible 星系角色和一堆自定义角色。

问题是我无法使用 Vagrantfile :ansible 同时加载自定义角色和星系角色供应商。

如果没有 vagrant,这个命令运行良好,因为我添加了 ANSIBLE_ROLES_PATH环境变量:

 ANSIBLE_ROLES_PATH=./custom_roles ansible-playbook project.yml --inventory dev.ini -vvvv --ask-sudo-pass

我的 Vagrant 配置如下:
config.vm.provision :ansible do |ansible|
ansible.raw_arguments = ['--timeout=300']
ansible.playbook = "project.yml"
ansible.verbose = "vvv"
ansible.groups = {
"env-dev:children" => ["app-web", "app-db"],
"app-web" => ["my-app"],
"app-db" => ["my-app"],
}
end

我可以在 ./roles 中看到 ansible 自动加载角色但由于版本控制,我无法将自定义角色添加到此目录( ./roles 在我的 .gitignore 中)

这是目录结构,可以更好地了解正在发生的事情:
 - roles/
- postgresql/...
- php/...
- custom_roles/
- my-role-1/...
- my-role-1/...
- .gitignore <- ignore ./roles
- project.yml
- roles.yml
- dev.ini
- Vagrantfile

最佳答案

所以我遇到了同样的问题,并通过设置 ANSIBLE_ROLES_PATH 找到了解决方法。环境变量。

Vagrantfile :

Vagrant.configure('2') do |config|
vagrant_root = File.dirname(__FILE__)
ENV['ANSIBLE_ROLES_PATH'] = "#{vagrant_root}/infrastructure/provisioning/ansible/roles:#{vagrant_root}/infrastructure/provisioning/ansible/galaxy-roles"

# ansible provisioning
config.vm.provision :ansible do |ansible|
ansible.playbook = 'infrastructure/provisioning/ansible/playbook.yml'
ansible.galaxy_role_file = 'infrastructure/provisioning/ansible/dependencies.yml'
ansible.galaxy_roles_path = 'infrastructure/provisioning/ansible/galaxy-roles'
end
end

关于vagrant - 使用 vagrant 条款更改 ansible role_path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36918516/

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