Ansible角色管理-Roles(实例演示!!!)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Roles的概述Roles能够根据层次型结构自动装载变量文件、task以及handlers等。简单来讲,Roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地inclu
千家信息网最后更新 2025年12月02日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 httpdhttpd-2.4.6-90.el7.centos.x86_64rpm -q mariadbmariadb-5.5.64-1.el7.x86_64rpm -q phpphp-5.4.16-46.1.el7_7.x86_64谢谢阅读!
目录
文件
角色
变量
模块
命令
服务
实例
主机
任务
全局
名称
场景
模板
正则
演示
便捷
特殊
剧本
动作
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器的网络服务未打开
波音在软件开发商错在哪里
手机软件开发从业
git软件开发实战豆瓣
连接数据库 oracle
新中大服务器怎么清除端口记忆
数据库前端开发工具是什么
服务器如何加安全固代码
虚拟服务器固定域名
服务器搭建赚钱
统计有数据库吗
托管服务器安全责任书
数据库的逻辑名
网络技术与平面设计哪个好
济南企业级服务器厂商
关系型数据库 nosql
电脑网络安全模式怎么连接网络
云平台 软件开发
数据库系统的备份和恢复试验
杭州税务系统软件开发商
大一access数据库技术
如何评估服务器
服务器的安全注意事项
网络安全保障的第一责任人
macbook做软件开发
网络安全系统创办
玉林首选dns服务器
软件开发成功案例分享网
短视频平台用什么数据库
为什么游戏总是连接不到服务器