Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
指定Ansible剧本中角色的版本_Ansible_Ansible Galaxy_Ansible Role - Fatal编程技术网

指定Ansible剧本中角色的版本

指定Ansible剧本中角色的版本,ansible,ansible-galaxy,ansible-role,Ansible,Ansible Galaxy,Ansible Role,下载角色时,可以指定角色。以下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 没

下载角色时,可以指定角色。以下
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

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

你可以:

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

    路径
    添加到
    要求中。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应该处理的版本混乱。