Ansible中的角色使用

一、ansible 角色简介

复制代码
* Ansible roles 是为了层次化,结构化的组织Playbook
* roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们
* roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高
* 以特定的层级目录结构进行组织的tasks、variables、handlers、templates、files等;相当于函数的调用把各个功能切割
成片段来执行。

二、roles目录结构

复制代码
files              ##存放copy或script等模块调用的函数
tasks              ##定义各种task,要有main.yml,其他文件include包含调用
handlers           ##定义各种handlers,要有main.yml,其他文件include包含调用
vars               ##定义variables,要有main.yml,其他文件include包含调用
templates          ##存储由template模块调用的模板文本
meta               ##定义当前角色的特殊设定及其依赖关系要有main.yml的文件
defaults           ##要有main.yml的文件,用于设定默认变量
tests              ##用于测试角色

三、role存放的路径:配置文件ansible.cfg中定义

复制代码
roles_path = path/roles (默认目录:/etc/ansible/roles)

四、创建目录结构

复制代码
$ ansible-galaxy init apache
$ ansible-galaxy list

五、playbook中使用roles

playbook中使用roles:

复制代码
---
- hosts: server2
  roles:
    - role: role1
    - role: role2
      var1: value1      ##此处变量会覆盖roles中的定义变量

六、控制任务执行顺序

复制代码
---
- hosts: server2
  roles:
    - role: role1    ##角色任务
  pre_tasks:         ##角色执行前执行的play
    - tasks1
  tasks:             ##普通任务
    - tasks2
  post_tasks:        ##在角色和普通任务执行完毕后执行的play
    - tasks3
 handlers:

七、ansible---galaxy命令工具

复制代码
* Ansible Galaxy 是一个免费共享和下载 Ansible 角色的网站,可以帮助我们更好的定义和学习roles。
* ansible-galaxy命令默认与https://galaxy.ansible.com网站API通信,可以查找、下载各种社区开发的 Ansible 角色
* ansible-galaxy在 Ansible 1.4.2 就已经被包含了
* 在galaxy.ansible.com网站查询roles

八、安装选择的角色

复制代码
#install https://galaxy.ansible.com roles
$ansible-galaxy install geerlingguy.nginx

#install local roles

$ vim install_apache_role.yml
---
- src: file:///mnt/apache.tar.gz
  name: apache
  
$ ansible-galaxy install -r install_apache_role.yml

1.从网上下载,安装网上角色:#install https://galaxy.ansible.com roles

2.本地角色:#install local roles

相关推荐
leo__5201 天前
自动化运维:使用Ansible简化日常任务
运维·自动化·ansible
风清再凯6 天前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible
IT乌鸦坐飞机6 天前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
遇见火星20 天前
如何使用Ansible一键部署MinIO集群?
ansible
粥周粥20 天前
ANSIBLE
ansible
码农101号20 天前
Linux中ansible模块补充和playbook讲解
linux·运维·ansible
码农101号20 天前
Linux的Ansible软件基础使用讲解和ssh远程连接
ansible
烟雨书信21 天前
ANSIBLE运维自动化管理端部署
运维·自动化·ansible
碎碎-li21 天前
ANSIBLE(运维自动化)
运维·自动化·ansible
@donshu@24 天前
Linux运维-ansible-python开发-获取inventroy信息
linux·运维·ansible