【问题标题】:Specify version of role in Ansible playbook在 Ansible 剧本中指定角色的版本
【发布时间】:2016-08-21 08:48:23
【问题描述】:

下载角色时,可以指定角色。几种方法之一是使用以下requirements.yml 文件:

---
- src: https://github.com/jdauphant/ansible-role-ssl-certs
  version: v1.5.2

然后可以使用以下命令下载此角色:

ansible-galaxy install -r requirements.yml

然后如何指定在 Ansible 剧本中使用哪个版本的角色?

  roles:
    - jdauphant.ssl-certs

【问题讨论】:

    标签: ansible ansible-galaxy ansible-role


    【解决方案1】:

    没有选项可以以相同的名称保存不同版本的 playbook,然后指定在 playbook 中运行哪个版本。

    你可以:

    • 通过下载到项目目录(包含剧本的目录)的roles 子目录,将特定角色版本“绑定”到剧本。 Ansible 将在尝试系统roles 目录中面临的角色之前使用此版本。

      path 添加到requirements.yml

      - src: https://github.com/jdauphant/ansible-role-ssl-certs
        version: v1.5.2
        path: roles/
      
    • 在系统范围内以不同的名称(即在不同的目录中)保存不同的版本:

      - src: https://github.com/jdauphant/ansible-role-ssl-certs
        version: v1.5.2
        name: jdauphant.ssl-certs-1.5.2
      

      并引用一个特定的名称:

      roles:
         - jdauphant.ssl-certs-1.5.2
      

    【讨论】:

    • 感谢您的回答。我喜欢你建议的方法,但是在 ansibel 中需要解决方法来指定版本有点奇怪。
    • Ansible Galaxy 此刻甚至没有升级角色的选项。您需要删除角色并重新安装。除了 Ansible 正在进行中,我认为实现这样的功能没有多大意义。它只会造成 Ansible 应该处理的版本控制混乱。
    猜你喜欢
    • 2015-11-13
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多