ansible-playbook的角色(role)

1前言

角色目录如下(分别为httpd角色和nginx角色)

handlers/ :至少应该包含一个名为 main.yml 的文件; 其它的文件需要在此文件中通过include
                进行包含
vars/ :定义变量,至少应该包含一个名为 main.yml 的文件; 其它的文件需要在此文件中通
                过include进行包含
meta/ :定义当前角色的特殊设定及其依赖关系 , 至少应该包含一个名为 main.yml 的 文件, 其它
                文件需在此文件中通过include进行包含
default/ :设定默认变量时使用此目录中的 main.yml 文件
roles/appname 目录结构
tasks 目录:至少应该包含一个名为main.yml的文件,其定义了此角色的任务列表; 此文件可以
                        使用include包含其它的位于此目录中的task文件
files 目录:存放由 copy script 等模块调用的文件;
templates 目录: template 模块会自动在此目录中寻找 Jinja2 模板文件
handlers 目录:此目录中应当包含一个 main.yml 文件,用于定义此角色用到的各
handler
handler 中使用 include 包含的其它的 handler 文件也应该位 于此目录中;
vars 目录:应当包含一个 main.yml 文件,用于定义此角色用到的变量;
meta 目录:应当包含一个 main.yml 文件,用于定义此角色的特殊设定及其依赖关 系;
default 目录:为当前角色设定默认变量时使用此目录;应当包含一个 main.yml 文件

2创建httpd角色

mkdir roles/httpd/tasks -pv
mkdir roles/httpd/{handlers,files}
2 >
创建目标文件
cd roles/httpd/tasks/
touch install.yml config.yml service .yml
3 >
vim install.yml
- name: install httpd package
yum: name = httpd
vim config.yml
- name: config file
copy: src = httpd.conf dest = /etc/httpd/conf/ backup = yes
vim service .yml
- name: start service
service : name = httpd state = started enabled = yes
4 >
创建 main.yml 主控文件 , 调用以上单独的 yml 文件 ,
main.yml 定义了谁先执行谁后执行的顺序
vim main.yml
- include: install.yml
- include: config.yml
- include: service .yml
5 >
准备 httpd.conf 文件 , 放到 httpd 单独的文件目录下
cp /app/ansible/flies/httpd.conf ../files/
6 >
创建一个网页
vim flies/index.html
<h1> welcome toyzh home <\h 1 > 7 > 创建网页的 yml 文件
vim tasks/index.yml
- name: index.html
copy: src = index.html dest = /var/www/html
8 >
将网页的 yml 文件写进 main.yml 文件中
vim main.yml
- include: install.yml
- include: config.yml
- include: index.yml
- include: service .yml
9 >
handlers 目录下创建 handler 文件 main.yml
vim handlers/main.yml
- name: restart service httpd
service : name = httpd state = restarted
10 >
创建文件调用 httpd 角色
cd /app/ansible/roles
vim role_httpd.yml
---
# httpd role
- hosts: appsrvs
remote_user: root
roles: # 调用角色
- role: httpd
11 >
查看目录结构
tree .
httpd
├── files
│ ├── httpd.conf
│ └── index.html
├── handlers
│ └── main.yml
└── tasks
├── config.yml
├── index.yml
├── install.yml
├── main.yml
└── service .yml
12 > ansible-playbook role_httpd.yml

3创建nginx角色

1 >
创建 nginx 角色目录
mkdir -pv /app/ansible/role
cd /app/ansible/role
mkdir nginx{tesks,templates,hanslers} -pv
2 >
创建任务目录
cd tasks/
touch insatll.yml config.yml service .yml file.yml user.yml
创建 main.yml 文件定义任务执行顺序
vim main.yml
- include: user.yml
- include: insatll.yml
- include: config.yml
- include: file.yml
- include: service .yml
3 >
准备配置文件 (centos7 8)
ll /app/ansible/role/nginx/templates/
nginx8.conf.j2
4 >
定义任务
vim tasks/install.yml
- name: install
yum: name = nginx
vim tasks/config.yml
- name: config file
template: src = nginx8.conf.j2 dest = /etc/nginx/nginx.conf
when: ansible_distribution_major_version == "8"
notify: restrat
vim tasks/file.yml 跨角色调用 file.yum 文件 , 实现文件复用
- name: index.html
copy: src = roles/httpd/files/index.html
dest = /usr/share/nginx/html/
vim tasks/service.yml
- nmae: start service
service : name = nginx state = started enabled = yes
vim handlers/main.yml
- name: restrat
service : name = nginx state = restarted
vim roles/role_nginix.yml
---
#test rcle
- hosts: appsrvs
roles:
- role: nginx
5 >
测试安装
ansible-playbook role_nginx.yml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK环境变量配置-jre\bin、rt.jar、dt.jar、tools.jar

我们主要看下rt.jar、dt.jar、tools.jar的作用&#xff0c;rt.jar在​%JAVA_HOME%\jre\lib&#xff0c;dt.jar和tools.jar在%JAVA_HOME%\lib下。 rt.jar&#xff1a;Java基础类库&#xff0c;也就是Java doc里面看到的所有的类的class文件。 tools.jar&#xff1a;是系统用来编…

在ubuntu上安装FastSufer【本机安装】

亲测:FastSurfer分割并重建一个大脑需要1个小时,而freeSurfer需要8个小时。确实很快! 这里我在网页端搭建了一个小的工具包,里面集成了经典的freeSurfer和较快的FastSurfer。如果你不想安装或者手头没有linux设备,您也可以直接从以下网址直接使用,跳过繁琐的安装步骤!!…

嵌入式面经-ARM体系架构-寄存器与异常处理

ARM寄存器组织 寄存器概念 寄存器是处理器内部的存储器&#xff0c;没有地址 寄存器作用 一般用于暂时存放参与运算的数据和运算结果 在某个特定模式下只能使用当前模式下的寄存器&#xff0c;一个模式下特有的寄存器别的模式下不能使用 一共是40个寄存器 寄存器分类 通用寄…

Vue3.0里为什么要用 Proxy API 替代 defineProperty API

一、Object.defineProperty 定义&#xff1a;Object.defineProperty() 方法会直接在一个对象上定义一个新属性&#xff0c;或者修改一个对象的现有属性&#xff0c;并返回此对象 为什么能实现响应式 通过defineProperty 两个属性&#xff0c;get及set get 属性的 getter 函…

【Web】浅聊Hessian反序列化之打Rome出网不出网

目录 前言 出网——JdbcRowSetImpl 不出网——SignedObject 打二次反序列化 前文&#xff1a;【Web】浅聊Java反序列化之玩转Hessian反序列化的前置知识 前言 正如我们前文所说&#xff0c;当Hessian反序列化Map类型的对象的时候&#xff0c;会自动调用其put方法&#xff…

pytorch的梯度图与autograd.grad和二阶求导

前向与反向 这里我们从 一次计算 开始比如 zf(x,y) 讨论若我们把任意对于tensor的计算都看为函数&#xff08;如将 a*b&#xff08;数值&#xff09; 看为 mul(a,b)&#xff09;&#xff0c;那么都可以将其看为2个过程&#xff1a;forward-前向&#xff0c;backward-反向在pyto…

如何提高API接口的性能和设计安全可靠的API

如何提高API接口的性能 下图显示了提高 API 性能的 5 种常见技巧。 分页 这是在结果集较大时常用的优化方法。结果会以流式方式传回客户端&#xff0c;以提高服务响应速度。 异步日志 同步日志每次调用都要处理磁盘&#xff0c;会降低系统速度。异步日志会先将日志发送到无…

《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)

1.简介 本文主要介绍两个在测试过程中可能会用到的功能&#xff1a;Actions类中的拖拽操作和Actions类中的划取字段操作。例如&#xff1a;需要在一堆log字符中随机划取一段文字&#xff0c;然后右键选择摘取功能。 2.拖拽操作 鼠标拖拽操作&#xff0c;顾名思义就是&#xff…

文本向量评测MTEB和C-MTEB

文章目录 简介MTEBC-MTEB参考资料 简介 MTEB(Massive Text Embedding Benchmark)是目前评测文本向量很重要的一个参考&#xff0c;其榜单也是各大文本向量模型用来展示与其他向量模型强弱的一个竞技台。 C-MTEB则是专门针对中文文本向量的评测基准。 MTEB MTEB的目的是为了…

vuepress-theme-vdoing博客搭建教程

搭建流程 前言 这是笔者搭建个人博客所经历的流程&#xff0c;特附上笔记 笔者个人博客地址&#xff1a;沉梦听雨的编程指南 一、主题介绍 本博客使用的主题为&#xff1a;vuepress-theme-vdoing&#xff0c;相关介绍和使用方法可以参考该主题的官方文档 官方文档快速上手…

什么是PROFIBUS DP网络布线的1米原则?分支线又是什么?

在上期的文章中&#xff0c;我们介绍了 PROFIBUS DP 网络在连接时涉及到的硬件&#xff1a;DP 线缆、PROFIBUS 插头、终端电阻、中继器和有源终端等。 在今天的文章中&#xff0c;就让我们了解一下在 PROFIBUS DP 网络布线时&#xff0c;需要注意的原则有哪些。 一米原则 当 …

图分割 Graph Partition 学习笔记2

文章目录 前言一、Metis原理二、Metis优点三、Metis软件包安装流程参考链接 前言 今天来学一下Metis算法&#xff0c;经过搜索发现这个算法还是蛮多人在讲解的&#xff0c;我也在这里浅浅记录一下~ 一、Metis原理 METIS是一种层次化的分割算法&#xff08;multi-level partitio…

梯度剪裁: torch.nn.utils.clip_grad_norm_()

梯度剪裁: torch.nn.utils.clip_grad_norm_() 一、原理 pytorch中梯度剪裁方法为 torch.nn.utils.clip_grad_norm_(parameters, max_norm, norm_type2)1。三个参数&#xff1a; parameters&#xff1a;希望实施梯度裁剪的可迭代网络参数 max_norm&#xff1a;该组网络参数梯…

勾八头歌之数据科学导论—数据采集实战

一、数据科学导论——数据采集基本概念 第1关&#xff1a;巧妇难为无米之炊 第2关&#xff1a;数据采集概念与内涵 二、数据科学导论——数据采集实战 第1关&#xff1a;单网页爬取 import urllib.request import csv import re# ********** Begin ********** # dataurllib.r…

java项目安全性与权限管理实践与探讨

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一. 身份验证和授权 二. 输入验证和过滤 2.1. 添加OW…

电机应用-步进电机进阶驱动

步进电机梯形加减速 什么是梯形加减速 假设该装置使用步进电机实现物体X的移动&#xff0c;系统要求从A点出发&#xff0c;到B点停止&#xff0c;移动的时间越短越好且系统稳定。 根据步进电机的特性&#xff0c;最大程度加大电机转速&#xff08;提高脉冲频率&#xff09;&a…

10.Java---clone+内部类

一次浅拷贝的过程 打印结果: 一次深拷贝的过程 打印结果: 抽象类和接口的区别 外部类&内部类 1.内部类由static修饰时,不可以是变量 这样就是可以的,他就代表一个常量 2.怎么实例化内部类 当然不可以直接实例化啦! 是这么实例化的,看起来比我们平时麻烦了很多呢! …

SpringCloud OpenFeign 服务接口调用

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第四篇&#xff0c;即介绍 Feign 和 OpenFeign 服务接口调用。 二、概述 2.1 Feign 是什么 Feign 是一…

C++程序设计-练手题集合【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下C程序设计中的练手题&#xff0c;以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门&#xff1a; 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函数…

dolphin schedulerAPI调用(二)——创建任务

&#xff08;作者&#xff1a;陈玓玏&#xff09; API文档地址&#xff1a;http://192.168.3.100:21583/dolphinscheduler/swagger-ui/index.html?languagezh_CN&langcn#/task%20definition%20related%20operation/createTaskDefinitionUsingPOST_1 实际使用中&#x…