我可以在私有git仓库中添加角色作为Ansible中的元/依赖吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以在私有git仓库中添加角色作为Ansible中的元/依赖吗?相关的知识,希望对你有一定的参考价值。

我有一堆Ansible角色,我想重用。它们每个都保存在私人BitBucket的回购中。

我希望将我在Git中托管的项目添加为我正在处理的角色的元/依赖项,但我无法弄清楚语法是什么。

在此非工作示例中,角色需要在运行之前首先使用参数部署另一个角色。

仅供参考,远程角色“acm_layout”旨在为服务器创建标准目录布局,以便在知道所有标准目录已存在的情况下运行我的角色。

---
dependencies:
   - { role: project_keys } # Works fine, just reuses a local role

   - name: acm_layout # Doesn't work, but this is what I want to fix
     src: ssh://git@bigcompany.com/acm/acm_layout.git
     scm: git
     version: feature/initialize
     application_storage_dir: "{{base_storage_dir}}"
     application_data_dir: "{{app_data_dir}}"

当我运行这个时,我收到以下错误:

ERROR! the role 'acm_layout' was not found in [lots of paths deleted]

The error appears to have been in '/home/zs5fgzg/_tmp/horizon_deployment_scf/ansible/roles/horizon_layout/meta/main.yaml': line 4, column 6, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

   - { role: horizon_keys }
   - src: ssh://git@bigcompany.com:7999/acm/acm_layout.git
     ^ here

那么这样做的正确方法是什么?

答案

是的,您可以使用ansible-galaxy install和requirements.yml选项远程获取角色。创建requirements.yml如下

https://github.com/avinash6784/elk-stack/blob/master/requirements.yml

并运行以下命令

$ ansible-galaxy install -r requirements.yml -p roles /

有关如何使用ansible-galaxy获取角色的更多信息,请访问http://docs.ansible.com/ansible/latest/galaxy.html

以上是关于我可以在私有git仓库中添加角色作为Ansible中的元/依赖吗?的主要内容,如果未能解决你的问题,请参考以下文章

CI/CD之搭建私有git仓库gitlab

CI/CD之搭建私有git仓库gitlab

Git的使用远程仓库添加及克隆

ansible 部署基于centos7+docker+nginx+openssl+v2版私有仓库

可访问私有仓库的 GitHub 操作

带有 git 私有仓库的 Jenkins kubernetes 插件