template、tags、roles

  • 一、Templates模块
  • 二、tags模块
  • 三、roles
    • 实验:ansible安装搭建LAMP架构
    • 创建基本文件
    • 编写httpd模块
    • 编写mysql模块
    • 编写php模块
    • 编写roles示例

一、Templates模块

在ansible上操作

1、安装httpd服务

yum -y install httpd

2、编辑template文件

cp /etc/httpd/conf/httpd.conf /opt
mv httpd.conf httpd.conf.j2vim /opt/httpd.conf.j2           #在文件中找到以下内容,并修改
...
Listen {{http_port}}
ServerName {{server_name}}
MaxClients {{access_num}}

3、编辑ansible配置文件

vim /etc/ansible/hosts   #添加以下内容
...
[webserver]
192.168.28.20 httpd_port=192.168.28.20:80 access_num=200 server_name="www.mxx.com:80"

4、编辑yml文件

vim apache.yml- hosts: webserverremote_user: rootvars:- names: httpdtasks:- name: install httpdyum: name={{names}} state=latest- name: install configure filetemplate: src=/opt/http.conf.j2 dest=/etc/httpd/conf/httpd.confnotify:- restart httpd- name: start httpd serverservice: name={{names}} enabled=true state=startedhandlers:- name: restart httpdservice: name={{names}} state=restarted

5、检查并执行yml文件

ansible-playbook apache.yml --syntax-checkansible-playbook apache.yml

补充

可以去远程主机上查看
grep -i listen /etc/httpd/conf/httpd.conf
grep -i MaxClient /etc/httpd/conf/httpd.conf
grep -i servername /etc/httpd/conf/httpd.conf

二、tags模块

在一个playbook中,我们一般会定义很多个task,如果我们只想执行其中某一个task或者多个task时,就可以使用tags标签功能了

例一:

1、编辑yml文件

vim hosts.yml- hosts: webserverremote_user: roottasks:- name: copy hosts filescopy: src=/etc/hosts dest=/opt/hoststags:- only- name: touch filefile: path=/opt/host01 state=touch

2、执行yml文件

ansible-playbook hosts.yml --tags="only"在执行完命令后,可以去[webserver]主机上查看/opt目录下是否有hosts和hosts01文件,结果显示只有一个hosts文件,是因为tags: -only标签的执行,阻止了后边的内容的继续
在[webserver]主机的/opt中删除hosts01文件,再执行以下命令:ansible-playbook hosts.yml可以发现/opt目录下,有了hosts和hosts01文件

例二:

1、编辑yml文件

vim hosts.yml- hosts: webserverremote_user: roottasks:- name: copy hosts filescopy: src=/etc/hosts dest=/opt/hoststags:- only- name: touch filefile: path=/opt/host01 state=touchtags:- always

2、执行yml文件

ansible-playbook hosts.yml --tags="only"

三、roles

角色(roles)是ansible自1.2版本开始引入的新特性,用于层次性,结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单的说,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中、并可以便捷地include他们的一种机制。角色一般用于基于主机构建服务的场景中、但也可以是用于构建守护进程等场景中。

roles常用的模块
roles/common/files/templates/tasks/handlers/vars/defaults/meta/web/files/templates/tasks/handlers/vars/defaults/meta/

roles内各目录含义解释

  • files:用来存放由copy模块或script模块调用的文件。
  • templates:用来存放jinjia2模板, template模块会自动在此目录中寻找jinjia2模板文件。
  • tasks:此目录应当包含-个main.yml文件, 用于定义此角色的任务列表,此文件可以使用
  • include包含其它的位于此目录的task文件。
  • handlers:此目录应当包含-个main.ym|文件, 用于定义此角色中触发条件时执行的动作。
  • vars: 此目录应当包含- 个main.yml文件, 用于定义此角色用到的变量。
  • defaults:此目录应当包含一个main.ym|文件, 用于为当前角色设定默认变量。
  • meta:此目录应当包含-个main.yml文件, 用于定义此角色的特殊设定及其依赖关系。

实验:ansible安装搭建LAMP架构

创建基本文件

mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -ptouch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml

编写httpd模块

写一个简单的tasks/main.yml

vim /etc/ansible/roles/httpd/tasks/main.yml
- name: install apacheyum: pkg={{ servername }} state=latest

定义变量:可以定义在全局变量中,也可以定义在roles角色变量中.

vim /etc/ansible/roles/httpd/vars/main.yml
servername: httpd

编写mysql模块

vim /etc/ansible/roles/mysql/tasks/main.yml
- name: install mysqlyum: pkg={{ mysqlname }} state=latestvim /etc/ansible/roles/mysql/vars/main.yml
mysqlname: mariadb*

编写php模块

vim /etc/ansible/roles/php/tasks/main.yml
- name: install phpyum: pkg={{ phpname }} state=latestvim /etc/ansible/roles/php/vars/main.yml
phpname: php

编写roles示例

vim /etc/ansible/site.yml
- hosts: webserverremote_user: rootroles:- httpd- mysql- php

ansible的template、tags、roles模块及应用相关推荐

  1. ANSIBLE的安装和常用模块使用详细教程

    ANSIBLE安装和各种模块应用功能 文章目录 ANSIBLE安装和各种模块应用功能 安装配置ANSIBLE ANSIBLE使用 ansible-galaxy工具 ansible-pull工具 ans ...

  2. Ansible基本使用及常用模块详解

    一.ansible基本使用 定义主机组 定义被管理节点列表的文件/etc/ansible/hosts,在定义被管理节点的时候,可以单独基于主机做定义,也可以将多个主机定义成一个主机组. 在上篇博文安装 ...

  3. ansible的参数及常用模块

    ansible的参数及常用模块 参数: 查看帮助手册:ansible-doc    -a 查指定模块的帮助:ansible-doc   -s   模块名 ansible-doc  -s   setup ...

  4. 自动化运维工具ansible的安装管理以及模块介绍

    自动化运维工具ansible的安装管理以及模块介绍 目录 自动化运维工具ansible的安装管理以及模块介绍 一.ansible概述 1.几种常用运维工具比较 2.Ansible简介 3.Ansibl ...

  5. Ansible纸上谈兵02:常用模块

    背景 这里以 ad-hoc 命令的方式介绍下 Ansible 经常用到的模块. Ansible 已经具备丰富的模块生态,我们可以借助 Ansible 的模块完成日常在 Linux 操作系统上的运维工作 ...

  6. Linux Ansible自动化运维 copy模块

    1.实验环境 首先配置好ansibel清单: vim /etc/ansible/hosts [testA] server2 server3 [testB] server4 [test:children ...

  7. Linux九阴真经之九阴白骨爪残卷6(ansible用法三之template及roles 角色)

    模板 templates 文本文件,嵌套有脚本(使用模板编程语言编写) Jinja2语言,使用字面量,有下面形式 字符串:使用单引号或双引号 数字:整数,浮点数 列表:[item1, item2, . ...

  8. CentOS 7.6安装使用Ansible(二):Ansible常用的27个模块

    三.Ansible常用模块介绍: 1.ping:测试被管控主机连通性 # ansible all --list-hosts # ansible dbsrvs --list-hosts 查看参数:# a ...

  9. Ansible PLaybook template 模板详解

    template 模板 模板是一个文本文件,可以做为生成文件的模版,并且模板文件中还可嵌套jinja语法 jinja2语言 网站:https://jinja.palletsprojects.com/e ...

最新文章

  1. 2021年web前端发展方向有哪些
  2. 数据库操作之增删改查CRUD
  3. 关闭Android/iPhone浏览器自动识别数字为电话号码
  4. SpringBoot2.1.9 多数据源Mybatis—JDBC配置
  5. 全局使用dva dispatch
  6. 实验7 寻址方式在结构化数据访问总的应用
  7. LeetCode 1887. 使数组元素相等的减少操作次数(map)
  8. 去哪儿网2017春招在线笔试
  9. 大牛出招|分分钟解决 MySQL 查询速度慢与性能差
  10. 【转载】谷歌是如何做代码审查的
  11. “华为搜索”正海外内测;苹果5亿美元和解“降速门”;Firefox隐藏HTTPS | 极客头条...
  12. python画三维图-Python+matplotlib绘制三维图形5个精选案例
  13. 什么是 Hash 冲突?如何解决 Hash 冲突?
  14. ie浏览器html状态栏隐藏,我的IE浏览器忽然上面的菜单栏及地址栏都不见了
  15. 进阶篇:3.4)机械加工件设计
  16. 三极管构成的电流负反馈放大器
  17. 如何开一场高效的迭代排期会 | 敏捷开发落地指南
  18. 宝塔搭建chevereto图床
  19. 考博英语-连接词What与although的用法
  20. html立体魔方图片制作,AI软件如何打造立体魔方 Ai如何使用3D效果快速生成三个面贴图立体魔方...

热门文章

  1. 考导游证需要什么条件?报考导游领队需要什么条件?
  2. 逻辑思维与写作-第三章-随笔笔记
  3. mysql正则_mysql正则表达式总结
  4. npm切换淘宝镜像源
  5. 阿拉丁和飞毯(唯一分解定理&因数个数求和+素筛)
  6. 天梭表七夕携手刘亦菲展示卡森臻我系列腕表
  7. 2022年造价员土建工程考试模拟试题卷及答案
  8. vue 图片拖拽验证码
  9. 会员管理小程序实战开发01-总体介绍
  10. java之高质量代码优化技巧