vagrant+ansible:避免从 ansible-galaxy 再次下载

vagrant+ansible: avoid downloading again from ansible-galaxy

在我的 Vagrantfile 中,我有类似的内容:

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "provisioning/main.yml"
    ansible.galaxy_role_file = "provisioning/requirements.yml"
  end

provisioning/requirements.yml 包含一些从 ansible-galaxy 获取的角色。

每执行一次vagrant provision,所有角色都会重新下载一次。有没有办法避免每次都重新下载?

您可以更改默认 galaxy_command 并删除 --force 选项。像

config.vm.provision "ansible" do |ansible|
  ansible.playbook = "provisioning/main.yml"
  ansible.galaxy_role_file = "provisioning/requirements.yml"
  ansible.galaxy_command = "ansible-galaxy install --role-file=%{role_file} --roles-path=%{roles_path}"
end

请注意,角色一旦安装就不会更新,您必须手动进行管理。