ansible galaxy install是否可以初始化子模块?

ansible galaxy install是否可以初始化子模块?,ansible,ansible-galaxy,Ansible,Ansible Galaxy,我有这个要求。yml代码片段: - name: myrole scm: git src: git@gitlab.mygitlab.com:category/project.git version: master 当我使用ansible galaxy install-r requirements.yml安装它时,存储库被正确克隆,但子模块没有初始化。这可能可以通过使用某种本地操作任务来解决,但这意味着我必须跟踪每个角色想要包含的依赖项,这些依赖项远远不理想。有更好的解决方案吗?根据文

我有这个
要求。yml
代码片段:

- name: myrole
  scm: git
  src: git@gitlab.mygitlab.com:category/project.git
  version: master

当我使用ansible galaxy install-r requirements.yml安装它时,存储库被正确克隆,但子模块没有初始化。这可能可以通过使用某种本地操作任务来解决,但这意味着我必须跟踪每个角色想要包含的依赖项,这些依赖项远远不理想。有更好的解决方案吗?

根据文档中的定义,如果依赖项来自Galaxy,则必须在
meta/main.yml
文件下指定它们:

dependencies:
  - geerlingguy.apache
  - geerlingguy.ansible
如果它们在您自己的回购协议中:

dependencies:
  - src: geerlingguy.ansible
  - src: git+https://github.com/geerlingguy/ansible-role-composer.git
    version: 775396299f2da1f519f0d8885022ca2d6ee80ee8
    name: composer

我已经在使用
meta/main.yml
。问题是,我的一个存储库包含一个git子模块,当Ansible克隆repo时,该子模块没有初始化。这会导致角色中的任务失败。我已经设法解决了这个问题,将子模块替换为子树,以确保在简单的
git clone
操作期间文件都在那里。如果依赖项是自定义模块,而不是另一个角色,则毫无帮助。当然,这仅适用于角色。对于模块,请检查Ansible 2.8 at(实验功能)中的新集合功能