2

有一个星系角色:git@site.net/ansible-myapp.git

我可以像这样安装它:

ansible-galaxy install git+git@site.net/ansible-myapp.git

,但它会创建一个名为“ansible-myapp”的角色。

如何安装名称与 git url 不同的角色?

可以通过 requirements.yml 来实现:

- src: git@site.net/ansible-myapp.git
  scm: git
  name: myapp

ansible-galaxy install -r requirements.yml将使用名称“myapp”安装它

但是如何在一个没有 requirements.yml 文件的命令中做到这一点?

4

1 回答 1

1

从官方文档推断,通过反复试验发现了这个实际上未记录的功能(至少我没有找到文档)

在版本后添加所需的名称。

ansible-galaxy role install git+git@site.net/ansible-myapp.git,master,myapp

这将myapp使用指定版本安装角色。对于master版本,如果这是默认的存储库分支,您可以传递一个默认的空版本:

ansible-galaxy role install git+git@site.net/ansible-myapp.git,,myapp

对此进行了测试:

$ ansible-galaxy --version
ansible-galaxy 2.9.10
  config file = None
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/dist-packages/ansible
  executable location = /usr/local/bin/ansible-galaxy
  python version = 3.6.9 (default, Apr 18 2020, 01:56:04) [GCC 8.4.0]

注意:上述命令行中的 TYPE 位置参数role是为了区分角色和集合而引入的,role如果省略则默认为(为了与以前的 ansible Galaxy 版本兼容)

于 2020-06-25T16:00:17.067 回答