Vagrantfile中的Ansible - 从git

时间:2015-04-28 11:26:27

标签: git vagrant ansible

我有3个git回购:

  1. ansible config(角色,任务......)
  2. 后端代码
  3. 前端代码
  4. 在我的Vagrantfile中,我可以指定一个剧本的路径。

    但是如果我想从git自动拉出Ansible剧本怎么办?流浪者可以这样做吗?我不希望有重复的Ansible配置。

    或者我应该将我的ansible repo添加为子模块?或其他什么?

1 个答案:

答案 0 :(得分:2)

我有几种类似的情况。这就是我做的......

所有三个repos都位于同一个父目录中。

./parent
  |-- ansible
  |-- backend
  +-- frontend

我执行vagrant upvagrant 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脚本。