剧本我有3个的git回购协议:Ansible在Vagrantfile - 拉从混帐
- ansible配置(角色,任务...)
- 后端代码
- 前端代码
在我的Vagrantfile,我可以指定一个剧本的路径。
但是如果我想让Ansible playbook从git中自动拉出呢?流浪者可以这样做吗?我不想重复Ansible配置。
或者我应该添加我的ansible回购作为子模块?或者是其他东西?
剧本我有3个的git回购协议:Ansible在Vagrantfile - 拉从混帐
在我的Vagrantfile,我可以指定一个剧本的路径。
但是如果我想让Ansible playbook从git中自动拉出呢?流浪者可以这样做吗?我不想重复Ansible配置。
或者我应该添加我的ansible回购作为子模块?或者是其他东西?
我有几种类似的情况给你。这是我做的...
所有三个回购站位于同一个父目录。
./parent
|-- ansible
|-- backend
+-- frontend
我用vagrant-triggers插件当我执行vagrant up
或vagrant provision
触发更新到ansible回购。所以我Vagrantfile
的开始可能看起来像
Vagrant.configure("2") do |config|
config.trigger.before :up do
system("../ansible/update.sh")
end
其中../ansible/update.sh
是检查,以确保ansible混帐回购协议是先进的日期和正确的状态(在右支,等等)的脚本。
接下来的部分就是如果你想要后端和前端回购能够引导自己,如果不存在可靠的回购。这只需要额外的shell脚本与vagrant-triggers插件。另外,如果您愿意,您可以使用安全的local_action
(请参阅docs)而不是shell脚本。
看起来像一个很好的解决方案。我也可以将它用于子模块,因为它们不会自动更新。 –
Vagrantfiles基本上只是Ruby代码,所以你可以做任何事情,只有你的想象力是你的极限。但是,需要一些Ruby知识。子模块会更简单。 –
我会推荐一个子模块。 –