如果我在ansible配置中指定标记,Vagrant将忽略这些标记
我有一个非常简单的ansible配置:如果我在ansible配置中指定标记,Vagrant将忽略这些标记,vagrant,ansible,Vagrant,Ansible,我有一个非常简单的ansible配置: - name: Prepare and intsall RethinkDB on available machines hosts: all roles: - { role: rethinkdb, tags: ["install"] } 以及相应的流浪者配置: universe.vm.provision "ansible" do |a| a.playbook = "configuration.yml" a.groups = {
- name: Prepare and intsall RethinkDB on available machines
hosts: all
roles:
- { role: rethinkdb, tags: ["install"] }
以及相应的流浪者配置:
universe.vm.provision "ansible" do |a|
a.playbook = "configuration.yml"
a.groups = {
"primary" => ["rmaster"],
"secondary" => ["rsecondary"]
}
end
问题是,如果我调用
vagrant provision
ansible runsreferencedb
角色忽略configuration.yml
fileinstall
tag中指定的。虽然如果我将其作为a.tags=“install”
放入vagrant中,它可以工作,但是如果我有一系列ansible任务要使用不同的标记运行,它将不起作用,因此我想从ansible playbook中指定它们。据我所知,playbook不可能定义角色将运行的角色标记。标记:[“安装”]
所做的是将install
标记分配给db
角色(“”)中的任务
如果您的安装、配置、启动等标记按顺序运行,那么您应该能够将它们分派到不同的(可能的)角色。如果不是,那么您唯一的其他解决方案是使用变量值而不是标记来运行单个任务
例如:
在角色/db/tasks/main.yml
中:
- name: my_task
when: run_rethinkdb_install
- name: Prepare and intsall RethinkDB on available machines
hosts: all
vars:
run_rethinkdb_install: True
roles:
- { role: rethinkdb, tags: ["install"] }
在playbook.yml
中:
- name: my_task
when: run_rethinkdb_install
- name: Prepare and intsall RethinkDB on available machines
hosts: all
vars:
run_rethinkdb_install: True
roles:
- { role: rethinkdb, tags: ["install"] }
你能更准确地描述你期望的行为吗?您是只运行带有
install
标记的任务,还是只运行某些角色?@RégisB。是的,我有一个角色<;代码>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;&。。。我想让流浪汉单独管理你找到问题的答案了吗?