当前位置: 首页 > news >正文

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

相关文章:

ansible-playbook的角色(role)

1前言 角色目录如下&#xff08;分别为httpd角色和nginx角色&#xff09; handlers/ &#xff1a;至少应该包含一个名为 main.yml 的文件&#xff1b; 其它的文件需要在此文件中通过include 进行包含 vars/ &#xff1a;定义变量&#xff0c;至少应该包含一个名为 main.yml 的…...

SNR = 6.02N + 1.76dB 公式推导

简介 接触ADC或DAC时您一定会碰到这个经常被引用的公式&#xff0c;用于计算转换器理论信噪比 (SNR)。与其盲目地相信表象&#xff0c;不如从根本上了解其来源&#xff0c;因为该公式蕴含着一些微妙之 处&#xff0c;如果不深入探究&#xff0c;可能导致对数据手册技术规格和转…...

归并排序 刷题笔记

归并排序的写法 归并排序 分治双指针 1.定义一个mid if(l>r)return ; 2.分治 sort(q,l,mid); sort(q,mid1,r); 3. 双指针 int il,jmid,k0; 将双序列扫入 缓存数组 条件 while(i<mid&&j<r) 两个数列比较大小 小的一方 进入缓存数组 4. 扫尾 while(…...

字节一面:TCP 和 UDP 可以使用同一个端口吗?

数据包是计算机网络通信的核心&#xff0c;包含头部和数据负载。TCP和UDP协议在传输层使用端口号区分服务和应用。操作系统通过IP头部中的协议字段和端口号来管理网络流量&#xff0c;确保TCP和UDP流量即使共用端口号也不会相互干扰。 在现代计算机网络中&#xff0c;数据传输…...

java guide 八股

Java语言特点 简单易学、面向对象&#xff08;继承、封装、多态&#xff09;、平台无关性&#xff08;Java虚拟机jvm&#xff09;、支持多线程、可靠、安全、高效、支持网络编程、编译与解释共存 JVM&#xff1a;Java虚拟机&#xff08;跨平台的关键&#xff09; JRE&#xff…...

Windows上使用client-go远程访问安装在本地WMware上的Linux虚拟机里的minikube

我在自己的Windows上安装了WMware&#xff0c;并在WMware上安装了CentOS操作系统&#xff0c;然后在CentOS上创建了一个叫minikube的用户&#xff0c;使用minikube用户启动了一个minikube集群&#xff0c;但是我在Windows上使用client-go并无法连通minikube&#xff0c;搜遍全网…...

Linux/Ubuntu/Debian基本命令:命令行历史记录

一组与类 Unix 环境中的命令行(Terminal)历史记录和命令调用相关的键盘快捷键&#xff1a; Ctrl R&#xff1a; 启动对以前使用过的命令的反向搜索。 当你键入时&#xff0c;它将查找并显示与输入的字符匹配的最新命令。Ctrl G: 退出历史搜索模式&#xff0c;不运行命令。 如…...

倒计时32天

L1-032 Left-pad - 2024团体程序设计天梯赛&#xff08;历年真题&#xff09;练习集 (pintia.cn) #include<bits/stdc.h> using namespace std; #define int long long const int N2e56; const int inf0x3f3f3f3f; void solve() {int n;char s;cin>>n>>s;ge…...

模型驱动架构MDA

MDE 模型驱动工程&#xff08;MDE, Model-Driven Engineering&#xff09;是软件工程的一个分支&#xff0c;它将模型与建模拓展到软件开发的所有方面&#xff0c;形成一个多维建模空间&#xff0c;从而将工程活动建立在这些模型的映射和转换之上。[1] MDE的基本原则是将模型视…...

std::error::Error 和 std::io::Error 的区别和用法

std::error::Error 和 std::io::Error 在 Rust 中都是用于错误处理的类型&#xff0c;但它们各自有不同的用途和场景。 std::error::Error&#xff1a; std::error::Error 是一个 trait&#xff0c;它定义了错误处理的基本接口。这个 trait 通常由其他具体的错误类型实现&…...

16 OpenCV Laplance算子

文章目录 图像的二阶导数Laplance算子代码示例 图像的二阶导数 在二阶导数的时候&#xff0c;最大变化处的值为零即边缘是零值。通过二阶 导数计算&#xff0c;依据此理论我们可以计算图像二阶导数&#xff0c;提取边缘。 Laplance算子 void Laplacian( InputArray src, Output…...

hardhat学习笔记

hardhat学习笔记会不定时填充内容。 初始化项目 yarn init 安装hardhat依赖 yarn add --dev hardhat 初始化 Hardhat yarn hardhat 代码格式化 yarn add --dev prettier prettier-plugin-solidity 项目中增加.prettierrc 与 .prettierignore 配置文件统一格式&#xff0…...

算法刷题day28

目录 引言一、截断数组二、双端队列三、日期统计 引言 这几道题是周赛里的几道题目&#xff0c;第一道题目我没用这种方法&#xff0c;但还是做出来了&#xff0c;用的一种比较特殊的思考方法&#xff0c;就是把每一个点都判断出来&#xff0c;不满足要求的就舍弃&#xff0c;…...

vivado 使用Design Runs窗口、

使用Design Runs窗口 “设计运行”窗口显示在项目中创建的所有合成和实现运行。它包括用于配置、管理和启动运行的命令。 打开Design Run窗口 选择窗口 →  Design Runs打开“Design Runs”窗口。 设计运行窗口功能 •每个实现运行都缩进显示在其子级的合成运行下面。 …...

基于YOLOv8的手机摄像头的自动检测系统

文章大纲 数据集网络爬虫开源数据集标注目标定义标注标准标注工具标签更换脚本自制数据集下载地址自动检测系统设计与搭建模型训练与准确率代码仓库下载地址参考文献与学习路径随着移动通信技术的飞速发展,消费者对移动终端的要求也越来越高,各厂商纷纷提出自己的特色卖点,其…...

Ubuntu18.04添加内核模块(字符设备)

Ubuntu18.04添加内核模块&#xff08;字符设备&#xff09; 虚拟机Ubuntu18.04&#xff08;内核版本linux-5.4.0-135-generic&#xff09; 参考 嵌入式Linux驱动开发&#xff08;一&#xff09;——字符设备驱动框架入门 1 编译内核模块 创建字符设备代码文件char_dev.c&a…...

PromptBreeder---针对特定领域演化和发展提示词的方法

原文地址&#xff1a;promptbreeder-evolves-adapts-prompts-for-a-given-domain 论文地址&#xff1a;https://arxiv.org/pdf/2309.16797.pdf 2023 年 10 月 6 日 提示方法分为两大类 硬提示是由人工精心设计的文本提示&#xff0c;包含离散的输入令牌&#xff1b;其缺点…...

Java后端八股文之Redis

文章目录 1. Redis是什么&#xff1f;2. Redis为什么这么快&#xff1f;3. 为什么要使用缓存&#xff1f;4. Redis几种使用场景&#xff1a;5. Redis的Zset底层为什么要使用跳表而不是平衡树、红黑树或者B树&#xff1f;6.Redis持久化6.1 什么是RDB持久化6.1.1RDB创建快照会阻塞…...

一维数组_与指定数相同的数的个数

任务描述 输出一个整数序列中与指定数字相同的数的个数。 输入格式: 第一行为N&#xff0c;表示整数序列的长度(N < 100)&#xff1b; 第二行为N个整数&#xff0c;整数之间以一个空格分开&#xff1b; 第三行包含一个整数&#xff0c;为指定的整数m。输出格式: 输出为N…...

如何在Linux系统安装SVN并配置固定公网地址远程访问【内网穿透】

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…...

分享我用稳卖AI浏览器实操出来的:AI选品降低试错成本思路

很多跨境卖家都有类似经历&#xff1a;一个产品在决定要不要做的时候&#xff0c;表面上看信息不少&#xff0c;但真正落到“为什么选它”这个问题上&#xff0c;判断依据往往并不够扎实。有时候是看到某个平台趋势不错&#xff0c;有时候是看到竞品最近销量有变化&#xff0c;…...

集成显卡救星:手把手教你在云服务器上跑通3D Gaussian Splatting(含CUDA 11.8配置)

集成显卡救星&#xff1a;云端实战3D高斯点渲染全流程指南 当我在宿舍里盯着那台只有集成显卡的旧笔记本时&#xff0c;突然意识到——或许云端才是解锁3D重建技术的钥匙。去年参加计算机图形学研讨会时&#xff0c;看到那些令人惊艳的3D高斯点渲染&#xff08;3D Gaussian Spl…...

千问3.5-9B提示工程:提升OpenClaw复杂任务分解能力

千问3.5-9B提示工程&#xff1a;提升OpenClaw复杂任务分解能力 1. 为什么需要优化任务拆解能力 上周我让OpenClaw执行"整理上季度销售数据并邮件发送给团队"时&#xff0c;AI直接把原始CSV文件作为附件群发——这显然不是人类想要的"整理"结果。这个尴尬…...

操作系统工程师成长:从兴趣到创新的四重境界

1. 操作系统工程师的成长路径&#xff1a;从兴趣到创新的四重境界在科技行业的金字塔尖&#xff0c;操作系统开发一直被视为"皇冠上的明珠"。作为一名在这个领域摸爬滚打二十余年的老兵&#xff0c;我见证了Linux从实验室玩具成长为数字世界基石的完整历程。每当年轻…...

AI赋能智能制造:预测性维护在工业4.0中的落地实践

1. 预测性维护&#xff1a;从被动维修到智能预防的革命 想象一下&#xff0c;你家的空调突然在炎热的夏天罢工了&#xff0c;维修师傅告诉你&#xff1a;"这个零件本来三个月前就该换了"。这种场景在工业生产中放大1000倍&#xff0c;就是传统维护方式带来的痛点。预…...

归并排序力扣题(leetcode)萍

1.概述在人工智能快速发展的今天&#xff0c;AI不再仅仅是回答问题的聊天机器人&#xff0c;而是正在演变为能够主动完成复杂任务的智能代理。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理&#xff0c;能够在用户的机器上安全高效地生成高质量的软件变…...

Kaggle竞赛风向标:如何用地震数据集(如尼泊尔建筑数据)构建你的第一个灾害预测模型?

Kaggle竞赛实战&#xff1a;从地震数据到建筑损毁预测的完整机器学习流程 去年在尼泊尔参与灾后重建调研时&#xff0c;当地工程师递给我一份发皱的纸质表格——那是2015年大地震后他们手工录入的建筑评估记录。表格上"屋顶坍塌"、"地基移位"等潦草笔记背后…...

Kylin 麒麟系统软件源配置与版本适配指南

1. 麒麟系统软件源基础认知 第一次接触麒麟系统的用户可能会疑惑&#xff1a;为什么安装完系统后无法直接更新软件&#xff1f;这其实是因为系统默认没有配置软件源。软件源就像是一个"应用商店仓库"&#xff0c;里面存放着系统需要的所有软件包和更新。麒麟系统作为…...

Linux桌面应用管理革命:AppImageLauncher完整使用指南

Linux桌面应用管理革命&#xff1a;AppImageLauncher完整使用指南 【免费下载链接】AppImageLauncher Helper application for Linux distributions serving as a kind of "entry point" for running and integrating AppImages 项目地址: https://gitcode.com/gh_…...

Go-restful容器管理终极指南:多服务部署与负载均衡完整教程

Go-restful容器管理终极指南&#xff1a;多服务部署与负载均衡完整教程 【免费下载链接】go-restful package for building REST-style Web Services using Go 项目地址: https://gitcode.com/gh_mirrors/go/go-restful Go-restful是一个强大的Go语言RESTful Web服务框架…...