Ansible角色管理-Roles(实例演示!!!)
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,Roles的概述Roles能够根据层次型结构自动装载变量文件、task以及handlers等。简单来讲,Roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地inclu
千家信息网最后更新 2025年02月03日Ansible角色管理-Roles(实例演示!!!)
Roles的概述
Roles能够根据层次型结构自动装载变量文件、task以及handlers等。简单来讲,Roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们。Roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。
Roles的目录
目录名称 | 具体含义 |
---|---|
files | 用来存放由copy模块或script模块调用的文件 |
templates | 用来存放j正则模板,template模块会自动在此目录中寻找正则模板文件 |
tasks | 此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的task文件 |
handlers | 此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作 |
vars | 此目录应当包含一个main.yml文件,用于定义此角色用到的变量 |
defaults | 此目录应当包含一个main.yml文件,用于为当前角色设定默认变量 |
meta | 此目录应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系 |
在playbook中使用Roles的步骤
- 创建以roles命令的目录
#yum装完默认就有mkdir /etc/ansible/roles/ -p
- 创建全局变量目录
mkdir /etc/ansible/group_vars/ -ptouch /etc/ansible/group_vars/all#文件名自己定义,引用的时候注意
- 在roles目录中分别创建以各角色名称命令的目录,如httpd
mkdir /etc/ansible/roles/common -p
- 在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用不到的目录可以创建为空目录,但不可以不创建
mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -pmkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
- 在每个角色的handlers、tasks、meta、defaults、vars目录下创建main.yml文件,千万不能自定义
touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.ymltouch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
- 在playbook文件中,调用各角色
vim /etc/ansible/site.yml- hosts: webserver remote_user: root roles: - httpd - mysql
安装搭建LAMP架构实例演示
- 创建服务组件工作目录
mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -pmkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -pmkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p
- 创建yml空文件
touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.ymltouch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.ymltouch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml
- 编写httpd模块
#写一个简单的tasks/main.ymlvim /etc/ansible/roles/httpd/tasks/main.yml- name: ensure apache is at the latest version yum: pkg={{ pkg }} state=latest#定义变量,可以定义在全局变量中,也可以定义在roles角色变量中,一般定义在角色变量中vim /etc/ansible/roles/httpd/vars/main.ymlpkg: httpd
- 编写mysql模块
vim /etc/ansible/roles/mysql/tasks/main.yml- name: ensure mysql is at the latest version yum: pkg={{ pkg }} state=latest#定义变量vim /etc/ansible/roles/mysql/vars/main.ymlpkg: mariadb*
- 编写php模块
vim /etc/ansible/roles/php/tasks/main.yml- name: ensure php is at the latest version yum: pkg={{ pkg }} state=latest#定义变量vim /etc/ansible/roles/php/vars/main.ymlpkg: php*
- 编写roles实例
vim /etc/ansible/site.yml- hosts: webserver remote_user: root roles: - httpd - mysql - php#执行剧本ansible-playbook site.yml
执行完以后在远程主机上,查询验证指定服务是否安装
rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
rpm -q mariadb
mariadb-5.5.64-1.el7.x86_64
rpm -q php
php-5.4.16-46.1.el7_7.x86_64
谢谢阅读!
目录
文件
角色
变量
模块
命令
服务
实例
主机
任务
全局
名称
场景
模板
正则
演示
便捷
特殊
剧本
动作
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
东软网络安全产品什么时候研发
网络安全生产月系列宣传活动
上海钢板套料软件开发商
588服务器
莱州直播软件开发外包公司
masql数据库导出
软件开发月度工作内容小结
软件开发工程 定义
无线蓝牙耳机软件开发工程师
怎么匹配两个条件的数据库
数据库开发转正总结简短
收音机下载软件开发
数据库介质故障是什么
数据库数据表的制作结果分析
软件开发 个人所得税优惠
itc视频会议终端录播服务器
软件开发转行项目
千亿级国家网络安全产业园
阿里云服务器地址哪里稳定
乐视云视频服务器
小米超神服务器
数据库保护中的封锁技术
创建数据库的接口是什么
2012r2服务器安全设置
奉贤区常见网络技术欢迎咨询
农业银行软件开发中心西安
软件开发技术经理书
管理多台没公网ip的服务器
晋城公安网络安全
获取远程服务器管理员密码