Ansible Role

Ansible Roles是ansible自1.2版本开始引入的新特性,用于层次性、结构化地组织playbook。

Roles能够根据层次型结构自动加载template、变量文件、tasks以及handlers等。

 

1. Role路径

  # /home/user/.ansible/roles
  # /usr/share/ansible/roles
  # /etc/ansible/roles

 

2. 下载系统Role

复制代码
# yum install -y rhel-system-rols
# ansible-galaxy list
- linux-system-roles.kdump, (unknown version) - linux-system-roles.network, (unknown version) - linux-system-roles.postfix, (unknown version) - linux-system-roles.selinux, (unknown version) - linux-system-roles.timesync, (unknown version) - rhel-system-roles.kdump, (unknown version) - rhel-system-roles.network, (unknown version) - rhel-system-roles.postfix, (unknown version) - rhel-system-roles.selinux, (unknown version) - rhel-system-roles.timesync, (unknown version)
复制代码

 

3. 从指定地点下载Role

复制代码
# cat install_role.yaml 
- src: https://github.com/bennojoy/nginx
  path: vagrant/roles/

# from github, overriding the name and specifying a specific tag
- src: https://github.com/bennojoy/nginx
  version: master
  name: nginx_role

# ansible-galaxy install -r install_role.yaml 
复制代码

 

4. 创建Role

使用方法可以参考系统Role的示例,路径:/usr/share/doc/rhel-system-roles/

复制代码
# cd /etc/ansible/roles
# ansible-galaxy init test-role
# tree test-role
.
├── defaults      # 此目录应当包含一个main.yml文件,用于为当前角色设定默认变量。
│   └── main.yml
├── files        # 用来存放由copy模块或script模块调用的文件。
├── handlers      # 此目录应当包含一个main.yml文件,被task中的notify调用。
│   └── main.yml
├── meta        # 存放Role相关信息,如作者,许可证,平台等信息。
│   └── main.yml
├── README.md
├── tasks        # 此目录应当包含一个main.yml文件,用于定义此角色的任务列表。
│   └── main.yml
├── templates      # 用来存放jinjia2模板,template模块会自动在此目录中寻找jinjia2模板文件,而不需要写路径。
├── tests        # 用于Role测试。
│   ├── inventory
│   └── test.yml
└── vars        # 此目录应当包含一个main.yml文件,用于定义此角色用到的变量。
    └── main.yml
复制代码

 

5. 调用Role

---
- name:
  hosts: dev
  vars:
    xxx: xxx
  roles:
    - test-role

 

posted @   Vincen_shen  阅读(341)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示