ansible之playbook的role用法

  • roles目录结构
  • Roles各目录作用
  • 创建role,以NGINX为示例
    • 创建roles文件以及下面的子目录文件
    • 进到tasks目录下
    • 先写创建用户的yml
    • 写安装服务的yml
    • 把本机的NGINX配置文件拷贝到file目录下,修改端口号
    • 写配置文件的yml
    • 写启动服务的yml
    • 把其他文件包含在这个文件目录里
    • 在roles同级目录下创建nginx_role.yml文件,调用里面写好的nginx配置
    • 创建handlers目录
    • 创建main.yml
    • 在config.yml中调用handlers里的main.yml的restart service
    • 在files目录下创建index.html的模板文件
    • 写配置文件,功能是复制本机的网页模板文件到目标主机
    • 把新写好的数据文件添加到main.yml里
  • 创建role,以APACHE为示例
    • 创建文件夹
    • 在tasks目录下创建文件
    • 先写install.yml
    • 写config.yml,用template模板方式
    • 创建templates目录
    • 创建VARS目录专门存放变量,在里面创建main.yml,放置之前的变量
    • 写data.yml,通过相对路径引用隔壁nginx的文件
    • 写service.yml
    • 创建main.yml,并调准前后顺序

roles目录结构

roles目录结构:
playbook.yml
roles/
project/
tasks/
files/
vars/
templates/
handlers/
default/ 不常用
meta/ 不常用

Roles各目录作用

/roles/project/ :项目名称,有以下子目录
files/ :存放由copy或script模块等调用的文件
templates/:template模块查找所需要模板文件的目录
tasks/:定义task,role的基本元素,至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包含
handlers/:至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包含
vars/:定义变量,至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包含
meta/:定义当前角色的特殊设定及其依赖关系,至少应该包含一个名为main.yml的文件,其它文件需在此文件中通过include进行包含
default/:设定默认变量时使用此目录中的main.yml文件

创建role,以NGINX为示例

创建roles文件以及下面的子目录文件

mkdir roles/{nginx,mysql}/{tasks,files} -pv

进到tasks目录下

cd /data/playbook/roles/nginx/tasks
touch user.yml install.yml config.yml service.yml

先写创建用户的yml

vim user.yml
- name: create useruser: name=nginx shell=/sbin/nologin system=yes create_home=no

写安装服务的yml

vim install.yml
- name: installyum: name=nginx

把本机的NGINX配置文件拷贝到file目录下,修改端口号

cd /data/playbook/roles/nginx/files
cp /etc/nginx/nginx.conf .
vim nginx.confserver {listen       9527 default_server;listen       [::]:9527 default_server;

写配置文件的yml

cd /data/playbook/roles/nginx/tasks
vim config.yml
- name: configcopy: src=nginx.conf dest=/etc/nginx/

写启动服务的yml

vim service.yml
- name: serviceservice: name=nginx state=started enabled=yes

把其他文件包含在这个文件目录里

vim main.yml
- include: user.yml
- include: install.yml
- include: config.yml
- include: service.yml

在roles同级目录下创建nginx_role.yml文件,调用里面写好的nginx配置

vim nginx_role.yml
- host: websrvsroles:- role: nginx

创建handlers目录

mkdir handlers

创建main.yml

- name: restart serviceservice: name=nginx state=restarted

在config.yml中调用handlers里的main.yml的restart service

vim config.yml
- name: configcopy: src=nginx.conf dest=/etc/nginx/notify: restart service

在files目录下创建index.html的模板文件

vim index.html
<h1>welcome to li</h1>

写配置文件,功能是复制本机的网页模板文件到目标主机

vim data.yml
- name: data filecopy: src=index.html dest=/usr/share/nginx/html

把新写好的数据文件添加到main.yml里

vim main.yml
- include: user.yml
- include: install.yml
- include: config.yml
- include: data.yml
- include: service.yml

创建role,以APACHE为示例

创建文件夹

mkdir httpd
mkdir httpd/{tasks,files}

在tasks目录下创建文件

touch install.yml config.yml data.yml service.yml

先写install.yml

vim install.yml
- name: installyum: name=httpd

写config.yml,用template模板方式

vim config.yml
- name: config filetemplate: scr=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf

创建templates目录

mkdir templates
cp /etc/httpd/conf/httpd.conf templates/httpd.conf.j2
vim  httpd.conf.j2
User {{ username }}
Group {{ groupname }}
Listen {{ httpd_port }}
#把里面的用户名和组,以及监听端口设置成变量

创建VARS目录专门存放变量,在里面创建main.yml,放置之前的变量

mkdir varsvim main.yml
username: daemon
groupname: daemon

写data.yml,通过相对路径引用隔壁nginx的文件

vim data.yml
- name: data filecopy: src=roles/nginx/files/index.html dest=/var/www/html/

写service.yml

vim service.yml
- name: serviceservice: name=httpd state=started enabled=yes

创建main.yml,并调准前后顺序

vim main.yml
-include: install.yml
-include: config.yml
-include: data.yml
-include: service.yml

ansible之playbook的role用法相关推荐

  1. Ansible Tower - 使用入门 3 - 通过模板运行 Git 上的 Playbook 和 Role

    Ansible Tower 入门 1 - 配置主机清单和访问凭证 Ansible Tower 入门 2 - 通过模板运行 Git 上的 Playbook 和 Role Ansible Tower 入门 ...

  2. Ansible简介及各模块用法实操

    目录 一,Ansible简介及工作原理过程 1,简介 2,工作原理过程 二,基础坏境配置 1,安装 ​2,ssh配置 三,Ansible入门及常用模块用法 1,静态资产 2,自定义动态资产 3,使用资 ...

  3. ansible之playbook角色

    ansible之playbook&角色 playbook-剧本 简介 playbook组件用法 playbook变量 playbook语句 roles-角色 简介 用法 实战 playbook ...

  4. Linux 第60,61天 ansible的playbook

    Linux 第60,61天 ansible的playbook 时间: 20180922 时间: 20180924 目录 playbook(重点) YAML playbook 核心元素 运行playbo ...

  5. Ansible之Playbook使用

    一.Playbook是什么 playbook-剧本(也称编排) 介绍 playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活.简单来说,playbook是一个非常简单 ...

  6. 自动化运维工具-Ansible的Playbook的使用

    Playbook的使用 前言 一.Playbook是什么? 二.playbook使用场景 三.Playbook格式说明 四.Play book变量的使用 1 在主机列表定义变量 2 在playbook ...

  7. Ansible(三)编写ansible的playbook文件(实现端口更改、远程主机信息采集、负载均衡)

    1.playbook简介 playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活.简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存 ...

  8. Ansible 之 Playbook详解

    Playbook介绍 Playbook与ad-hoc相比,是一种完全不同的运用ansible的方式,类似与saltstack的state状态文件.ad-hoc无法持久使用,playbook可以持久使用 ...

  9. Ansible playbook中role的用法

    要使用role首先要创建一个roles目录,这个目录在ansible.cfg里推荐使用/etc/ansible/roles,当然你也可以自己去指定roles的路径: 使用role,就是把之前的Play ...

最新文章

  1. luogu4159 迷路 (矩阵加速)
  2. 在Exchange 2010中批量导入用户
  3. 如何禁止掉root登录,使用key密钥登录
  4. Struts2标签库常用标签
  5. 格式化字符串漏洞利用 四、利用的变体
  6. 上传文件到服务器地址怎么配置,文件上传到服务器怎么配置
  7. iOS---------- Safe Area Layout Guide before iOS 9.0
  8. 2.14 视图的分页预览以及分页符的使用 [原创Excel教程]
  9. 如何解读Linux Kernel OOPS信息
  10. matlab 四面体,《有限元基础教程》【MATLAB算例】481基于4节点四面体单元的空间块体分析(Tetrahedron3D4Node)...
  11. 鼠标划动网页或者窗口时进度条总是上下乱跳,有可能是你的上下按键坏掉了
  12. jmeter压力测试报告—模板
  13. 惠普台式计算机系统系统修复,一键恢复系统,详细教您怎么一键恢复惠普笔记本系统...
  14. Python 让多图排版更加美观
  15. 访问 Android 开发者网站 Go 官网
  16. Qt的.pro文件简介
  17. 本月,我最推荐的重疾保险性价比排行榜
  18. android绑定交通卡,安卓手机公交卡的用法
  19. RabbitMQ学习笔记(高级篇)
  20. 各大互联网公司PUA套路,同行必须懂!!!

热门文章

  1. 支付宝扫码支付和微信扫码支付共存的情况下,如何避免同一个订单被多次支付
  2. 我们如何制作gif?制作gif的手机APP哪个好?
  3. 相机中的HDR和WDR分别指的是什么?
  4. npm的使用以及npx
  5. 第一次完全会玩扫雷,@NK_test
  6. 【灸久堂艾灸养生馆团购】-大众点评网团购杭州站
  7. 读周志华《机器学习》前三章个人读书笔记
  8. 学ruby用什么软件实现编程?Ruby的最佳IDE或文本编辑器
  9. Totem “电影播放机” 怎么装解码器
  10. python文件运行闪退_python文件打开闪退怎么办