Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可在流浪者档案中查阅–;从git中拉出playbook_Git_Vagrant_Ansible - Fatal编程技术网

可在流浪者档案中查阅–;从git中拉出playbook

可在流浪者档案中查阅–;从git中拉出playbook,git,vagrant,ansible,Git,Vagrant,Ansible,我有3个吉特回购: ansible配置(角色、任务…) 后端代码 前端代码 在我的文件中,我可以指定剧本的路径 但是如果我想让Ansible剧本自动从git中拉出来呢?流浪汉能做到吗?我不想有重复的Ansible配置 或者我应该将我的ansible回购添加为子模块?还是别的什么?我和你有几个类似的情况。我就是这么做的 所有三个回购都位于同一父目录中 ./parent |-- ansible |-- backend +-- frontend 当我执行vagrant up或vagran

我有3个吉特回购:

  • ansible配置(角色、任务…)
  • 后端代码
  • 前端代码
  • 在我的文件中,我可以指定剧本的路径

    但是如果我想让Ansible剧本自动从git中拉出来呢?流浪汉能做到吗?我不想有重复的Ansible配置


    或者我应该将我的ansible回购添加为子模块?还是别的什么?

    我和你有几个类似的情况。我就是这么做的

    所有三个回购都位于同一父目录中

    ./parent
      |-- ansible
      |-- backend
      +-- frontend
    
    当我执行
    vagrant up
    vagrant provision
    时,我使用该插件触发对ansible repo的更新。因此,我的
    Vagrantfile
    的开头可能如下所示

    Vagrant.configure("2") do |config|
      config.trigger.before :up do
        system("../ansible/update.sh")
      end
    
    其中
    。/ansible/update.sh
    是一个脚本,用于检查以确保ansible git repo是最新的,并且处于正确的状态(在右侧分支上,等等)


    接下来的部分是,如果您希望后端和前端回购协议能够在ansible回购协议不存在的情况下自行启动。这只需要使用vagrant触发器插件编写额外的shell脚本。此外,如果您愿意,您可以使用ansible的
    本地\u操作
    (请参阅)而不是shell脚本。

    Vagrant文件基本上只是Ruby代码,因此您几乎可以做任何事情,只有您的想象力是有限的。但是,需要一些Ruby知识。子模块会更简单。我也会推荐一个子模块。看起来是个不错的解决方案。我也可以将其用于子模块,因为它们不会自动更新。