在Ansible中,我们可以使用requirements.yml文件定义一个或多个角色的版本和来源。这有助于在多个项目之间共享和重用角色。以下是一个示例requirements.yml文件:
---
- src: geerlingguy.mysql
version: 2.3.2
- src: geerlingguy.php
version: 2.1.0
在playbook中,使用ansible-galaxy
命令来安装定义在requirements.yml中的角色。例如:
- name: Install roles
become: yes
hosts: all
roles:
- name: geerlingguy.mysql
# Optional: specify a specific version.
version: 2.3.2
- name: geerlingguy.php
# Optional: specify a specific version.
version: 2.1.0
除了指定角色的名称和版本之外,还可以指定角色存储库的来源(例如:GitHub)和分支:
---
# Install a single role from a GitHub repository with a specific version or branch.
- src: https://github.com/geerlingguy/ansible-role-ntp.git
version: 1.5.0
# Install multiple roles, some from GitHub, one from Ansible Galaxy.
- src: https://github.com/geerlingguy/ansible-role-apache.git
version: 3.6.0
name: apache
- src: https://github.com/geerlingguy/ansible-role-ntp.git
version: dev
name: ntp
- src: geerlingguy.mysql
version: 2.3.2
这样,我们可以方便地重用定义在requirements.yml文件中的角色,并确保使用的是特定版本的代码。
下一篇:Ansible容器无效字符 %