我有3个git回购:
在我的Vagrantfile中,我可以指定一个剧本的路径。
但是如果我想从git自动拉出Ansible剧本怎么办?流浪者可以这样做吗?我不希望有重复的Ansible配置。
或者我应该将我的ansible repo添加为子模块?或其他什么?
答案 0 :(得分:2)
我有几种类似的情况。这就是我做的......
所有三个repos都位于同一个父目录中。
./parent
|-- ansible
|-- backend
+-- frontend
我执行vagrant up
或vagrant provision
时,使用vagrant-triggers插件触发ansible仓库的更新。所以Vagrantfile
的开头可能看起来像
Vagrant.configure("2") do |config|
config.trigger.before :up do
system("../ansible/update.sh")
end
其中../ansible/update.sh
是一个脚本,用于检查以确保ansible git repo是最新的并且处于正确的状态(在右侧分支上等)。
如果您希望后端和前端存储库能够在Ansible存储库不存在的情况下自行引导,那么下一部分就是如此。而这只需要使用vagrant-triggers插件进行额外的shell脚本编写。此外,如果您愿意,可以使用ansible的local_action
(请参阅docs)而不是shell脚本。