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

day31(8/19)——静态文件共享、playbook

目录

一、ansible模块

script模块

 copy模块

使用command模块下载 nfs-utils rpcbind

在被控制的主机上添加static目录,并创建test文件

command模块

service模块

二、playbook

三、playbook编排vsftpd

1、安装

2、卸载

3、启动服务

4、修改配置文件设置不允许匿名访问并重启

5、练习:修改httpd端口为8080

四、playbook编排多个hosts任务

1、创建文件

2、nfs

五、roles(难点)

1、roles介绍


一、ansible模块
script模块

[root@m0 ~]# vim test000.sh

#!/bin/bash
mkdir /tmp/three
touch /tmp/three/test
echo 'i am echo,at mttt' > /tmp/three/test
echo 'well done'

[root@m0 ~]# source test000.sh
well done
[root@m0 ~]# ansible group02 -m script -a './test000.sh'

 copy模块

[root@m0 ~]# ansible s -m copy -a 'src=./mysql_master.sh dest=~'

使用command模块下载 nfs-utils rpcbind

[root@m0 ~]# ansible s -m command -a 'yum -y install nfs-utils'
[root@m0 ~]# ansible s -m command -a 'yum -y install rpcbind'

[root@m0 ~]# vim /etc/exports

/static *(ro,sync)
在被控制的主机上添加static目录,并创建test文件

[root@m0 ~]# ansible s -m file -a 'path=/static state=directory'

[root@m0 ~]# ansible s -m file -a 'path=/static/test state=touch

[root@m0 ~]# ansible s -m copy -a 'src=/etc/exports dest=/etc/exports'

command模块

[root@m0 ~]# ansible s -m command -a 'systemctl start nfs'

[root@m0 ~]# ansible s -m command -a 'systemctl enable  nfs'

service模块

[root@m0 ~]# ansible s -m service -a 'name=rpcbind state=started enabled=yes'
[root@m0 ~]# yum -y install nfs-utils
[root@m0 ~]# mkdir /nfs
[root@m0 ~]# mount -t nfs 192.168.8.157:/static /nfs/
[root@m0 ~]# ls /nfs/
test

二、playbook

playbook(剧本):是ansible用于配置,部署,和管理被控节点的剧本。用于ansible操作的编排。

一般使用ymal格式

playbook 剧本是保存在控制机的yml文件

YMAL格式
■ 以.yaml或xyml结尾

■ 文件的第一行以” --- “开始,表明YMAL文件的开始(可选的)

■ 以#号开头为注释

■ 列表中的所有成员都开始于相同的缩进级别,并且使用一个"-“作为开头(一个横杠和一个空格)

■ 一个字典是由一个简单的 键:值 的形式组成(这个冒号后面必须是一个空格)

■ 注意:写这种文件可以使用tab键和空格

Playbook常⻅语法

hosts: ⽤于指定要执⾏任务的主机,其可以是⼀个或多个由冒号分 隔主机组.   

remote_user: ⽤于指定远程主机上的执行任务的⽤户.

tasks:任务列表,按顺序执行任务.

■ 如果一个host执行task失败,整个tasks都会回滚,修正playbook中的错误,然后重新执行即可.

---
-    hosts: 组名/别名/ip/域名remote_user:    roottasks:-    name:    任务说明模块:    key0=value0service:    name=vsftpd state=started anabled=yes-    name:    修改配置文件command:    sed...notify:-    ancdefhandler:-    name:    abcdefservice    name=vsftpd stste=restared
...
三、playbook编排vsftpd
1、安装

[root@m0 ~]# vim test001.yml

---
-       hosts:          s   #使用tab键对齐  指定组remote_user:    root #tasks:                -       name:   安装vsftpdyum:    name=vsftpd     state=latest

[root@m0 ~]# ansible-playbook ./test001.yml

2、卸载

[root@m0 ~]# vim test001.yml

---
-       hosts:          sremote_user:    roottasks:-       name:   卸载vsftpyum:    name=vsftpd     state=absent-       name:   安装vsftpdyum:    name=vsftpd     state=latest

 [root@m0 ~]# ansible-playbook ./test001.yml

3、启动服务

[root@m0 ~]# vim test001.yml 

---
-       hosts:          sremote_user:    roottasks:-       name:   卸载vsftpyum:    name=vsftpd     state=absent-       name:   安装vsftpdyum:    name=vsftpd     state=latest-       name:   启动服务service:        name=vsftpd     state=started   e
nabled=yes

[root@m0 ~]# ansible-playbook ./test001.yml

4、修改配置文件设置不允许匿名访问并重启

handlers:类似task,但需要使用notify通知调用。

■ 不管有多少个通知者进行了notify,等到play中的所有task执行完成之后,handlers也只会被执行一次.

■ handlers最佳的应用场景是用来重启服务,或者触发系统重启操作.除此以外很少用到了.

[root@m0 ~]# yum -y install lftp

[root@m0 ~]# lftp 192.168.8.157
lftp 192.168.8.157:~> ls

drwxr-xr-x    2 0        0               6 Jun 09  2021 pub
[root@s0 ~]# sed -n '/^anonymous_enable=YES/s/YES/NO/g' /etc/vsftpd/vsftpd.conf 
[root@m0 ~]# vim test001.yml

---
-       hosts:          sremote_user:    roottasks:-       name:   卸载vsftpyum:    name=vsftpd     state=absent-       name:   安装vsftpdyum:    name=vsftpd     state=latest-       name:   启动服务service:        name=vsftpd     state=started   enabled=yes-       name:   修改配置文件command:        sed -i '/^anonymous_enable=YES/s/YES/NO/g' /etc/vsftpd/vsftpd.confnotify:           #调用-       abcdefghandlers:-       name:   abcdefgservice:        name=vsftpd     state=res
tarted

[root@m0 ~]# ansible-playbook ./test001.yml

[root@m0 ~]# lftp 192.168.8.157
lftp 192.168.8.157:~> exit
[root@m0 ~]# lftp 192.168.8.157
lftp 192.168.8.157:~> ls
中断    

5、练习:修改httpd端口为8080

[root@m0 ~]# yum -y install httpd
[root@m0 ~]# systemctl start httpd
[root@m0 ~]# ls /var/www/html
[root@m0 ~]# echo 'http html file' > /var/www/html/index.html
[root@m0 ~]# curl localhost
http html file
[root@m0 ~]# vim /etc/httpd/conf/httpd.conf 

Listen 8080
[root@m0 ~]# systemctl restart httpd
[root@m0 ~]# curl localhost
curl: (7) Failed connect to localhost:80; 拒绝连接

[root@m0 ~]# curl localhost:8080
http html file

[root@m0 ~]# vim test002.yml

---
-       hosts:          sremote_user:    roottasks:-       name:   将本机的rope文件复制到被控制主机copy:   src=/etc/yum.repos.d    dest=/etc/-       name:   安装httpdyum:    name=httpd      state=present-       name:   修改配置文件command:        sed -i '/^Listen/s/80/8080/g' /etc/httpd/conf/httpd.conf-       name:   修改默认的资源文件command:        echo 'woowowowowowwo' > /var/www/html/index.html-       name:   启动httpd服务service:        name=httpd      state=started
四、playbook编排多个hosts任务
1、创建文件

[root@m0 ~]# vim test003.yml

---
-       hosts:           sremote_user:     roottasks:-       name:   创建一个文件file:   path=/tmp/xxxx.txt   state=touch-       hosts:  s1    #两台主机remote_user:    roottasks:-       name:   也创建一个文件file:   path=/tmp/yyyy.txt      state=touch
...

[root@m0 ~]# ansible-playbook ./test003.yml

[root@s0 ~]# ls /tmp/

xxxx.txt

[root@s1 ~]# ls /tmp/

yyyy.txt

2、nfs

[root@m0 ~]# vim test004.yml 

---
-       hosts:          sremote_user:    roottasks:-       name:   安装nfs-utilsyum:    name=nfs-utils  state=present-       name:   安装rpcbindyum:    name=rpcbind    state=present-       name:   创建共享文件file:   path=/static    state=directory-       name:   配置文件shell:  echo '/static   *(ro,sync)' > /etc/exports-       name:   启动nfsservice:        name=nfs        state=started   enabled=yes-       name:   启动rpcbindservice:        name=rpcbind    state=started   enabled=yes-        hosts:  192.168.8.158remote_user:    roottasks:-       name:   安装nfs-utilsyum:    name=nfs-utils  state=latest-       name:   创建挂载目录file:   path=/nfs       state=directory-       name:   挂载nfscommand:        mount -t nfs 192.168.8.157:/static /nfs

[root@m0 ~]# ansible-playbook ./test004.yml

[root@s1 ~]# ls /nfs/
test

五、roles(难点)
1、roles介绍

roles(角色):就是通过分别将variables,tasks及handlers等放置于单独的目录中,并可以便捷地调用它们的一种机制。

假设我们要写一个playbook来安装管理lamp环境,那么这个playbook就会写很长。所以我们希望把这个很大的文件分成多个功能拆分,分成apache管理,php管理,mysql管理,然后在需要使用的时候直接调用就可以了,以免重复写。就类似编程里的模块化的概念,以达到代码复用的效果。

相关文章:

day31(8/19)——静态文件共享、playbook

目录 一、ansible模块 script模块 copy模块 使用command模块下载 nfs-utils rpcbind 在被控制的主机上添加static目录,并创建test文件 command模块 service模块 二、playbook 三、playbook编排vsftpd 1、安装 2、卸载 3、启动服务 4、修改配置文件设置不…...

白骑士的C#教学实战项目篇 4.4 游戏开发

系列目录 上一篇:白骑士的C#教学实战项目篇 4.3 Web开发 在这一部分,我们将探索如何使用 Unity 和 C# 开发游戏。游戏开发结合了编程、图形设计和创意,既充满挑战又充满乐趣。通过这一节的学习,您将了解游戏引擎的基础知识&#…...

在Vue工程中开发页面时,发现页面垂直方向出现两个滚动条的处理

在Vue工程中开发页面时,发现页面垂直方向出现两个滚动条 最近在开发页面时,发现页面多了两个滚动条,如图: 原因: 当一个页面的内容高度大于屏幕的高度时就会出现滚动条。一般情况下当一个页面高度大于屏幕高度时&a…...

【C++初阶】:C++入门篇(一)

文章目录 前言一、C命名空间1.1 命名空间的定义1.2 命名空间的使用 二、C的输入和输出2.1 cin和cout的使用 三、缺省参数3.1 缺省参数的分类 四、函数重载4.1 函数重载概念及其条件4.2 C支持函数重载原理 -- 名字修饰 前言 C是在C语言的基础之上,增加了一些面向对象…...

【JAVA CORE_API】Day14 Collection、Iterator、增强for、泛型、List、Set

Collection接口及常用方法 Collection<Object> collection new ArrayList();&#xff1a;实例化ArrayList集合对象&#xff1b; collectionName.add(Object obj);&#xff1a;在集合中增加元素&#xff1b; int sizeName collectionName.size();&#xff1a;获取集合…...

Go更换国内源配置环境变量

背景 要在中国境内下载和使用Go编程语言的包&#xff0c;可以使用国内的Go模块代理来加速下载速度。以下是一些常见的国内Go模块代理源以及如何切换到这些源的方法&#xff1a; 常见国内Go模块代理源 七牛云&#xff08;Qiniu&#xff09; https://goproxy.cn 阿里云&#xff0…...

澎湃认证显实力,浪潮信息存储兼容新篇章

浪潮信息在存储技术兼容性领域取得新突破&#xff0c;其集中式存储HF/AS系列与长擎安全操作系统24强强联合&#xff0c;成功完成澎湃技术认证。此次合作不仅验证了双方产品的无缝对接能力&#xff0c;更体现了浪潮信息在推动全产业链共建共享方面的坚定决心。 浪潮信息澎湃技术…...

Leetcode 3255. Find the Power of K-Size Subarrays II

Leetcode 3255. Find the Power of K-Size Subarrays II 1. 解题思路2. 代码实现 题目链接&#xff1a;3255. Find the Power of K-Size Subarrays II 1. 解题思路 这一题是题目3254的进阶版&#xff0c;其实主要就是增加了算法复杂度。 整体上来说的话思路还是一个分段的思…...

Kotlin学习02-变量、常量、整数、浮点数、操作符、元组、包、导入

变量、常量、整数、浮点数、操作符、元组、包、导入 Book.kt package com.wujialiang.packclass Book {var title: String "Hello" }val PI 3.14; val E 2.178;Main.kt //引入包 //import com.wujialiang.pack.Book; import com.wujialiang.pack.*; //重命名导…...

C++的模板简介

文章目录 一、前言二、函数模板&#xff08;Function Template&#xff09;三、类模板&#xff08;Class Template&#xff09;四、变参模板&#xff08;Variadic Template&#xff09;五、模板的递归与元编程六、模板的局限与陷阱七、常用模板的实例八、C20 的概念&#xff08…...

树莓派5 笔记25:第一次启动与配置树莓派5_8G

今日继续学习树莓派5 8G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下&#xff1a; 今日购得了树莓派5_8G版本&#xff0c;性能是同运…...

Melittin 蜂毒肽;GIGAVLKVLT TGLPALISWI KRKRQQ

【Melittin 蜂毒肽 简介】 蜂毒肽&#xff08;Melittin&#xff09;是蜜蜂毒液中的主要活性成分&#xff0c;由26个氨基酸组成&#xff0c;具有强碱性&#xff0c;易溶于水&#xff0c;是已知抗炎性最强的物质之一。蜂毒肽具有多种生物学、药理学和毒理学作用&#xff0c;包括…...

day32

更新源 cd /etc/apt/ sudo cp sources.list sources.list.save 将原镜像备份 sudo vim sources.list 将原镜像修改成阿里源/清华源&#xff0c;如所述 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiver…...

【clickhouse】 使用 SQLAlchemy 连接 ClickHouse 数据库的完整指南

我听见有人猜 你是敌人潜伏的内线 和你相知多年 我确信对你的了解 你舍命救我画面 一一在眼前浮现 司空见惯了鲜血 你忘记你本是娇娆的红颜 感觉你我彼此都那么依恋 &#x1f3b5; 许嵩《内线》 ClickHouse 是一款非常高效的开源列式数据库&#xff0c;因…...

按键收集单击,双击和长按

按键收集单击,双击和长按 引言 在我们生活中, 按键是必不可少的, 不同的电器, 有不同的按键, 但是按键总有不够用的时候, 那么给与一个按键赋予不同的功能,就必不可少了. 一个按键可以通过按下的时间长短和频次, 来定义其类型。 一次按键收集&#xff0c; 都是在一个按键收集周…...

进程的异常终止

进程的异常终止 进程收到了某些信号&#xff0c;他杀 进程自己调用abort函数&#xff0c;产生了SIGABRT(6)信号&#xff0c;自杀 进程的最后一个线程收到了"取消"操作&#xff0c;并且做出响应 如果进程是异常结束的&#xff0c;atexit\on_exit它们事先注册的遗言…...

并发编程 | Future是如何优化程序性能

在初识Future一文中介绍了Future的核心方法。本文中接着介绍如何用Future优化我们的程序性能。 在此之前&#xff0c;有必要介绍Future接口的一个实现类FutureTask。 FutureTask介绍 FutureTask继承结构 首先我们看一下FutureTask的继承结构&#xff1a; public class Futur…...

Oracle笔记

一、 如何解决 sqlplus 无法使用退格键和方向键 .bashrc 中添加如下内容&#xff0c;解决 退格键 stty erase ^h 安装 rlwap 后&#xff0c;执行如下命令可解决 方向键 rlwap sqlplus 二、 都有哪些备份数据到工具 三、 谈谈 你对 oracle 中实例和数据库的理解 数据库是一…...

LVS+Keepalived 双机热备

LVSKeepalived 双机热备 Keepalived案例分析Keepalived工具介绍Keepalived工具介绍一、功能特点 一、理解Keepalived实现原理实验报告资源列表一、安装keepalived以及ipvsadm Keepalived案例分析 企业应用中&#xff0c;单台服务器承担应用存在单点故障的危险单点故障一旦发生…...

Web Image scr图片从后端API获取基本实现

因系统开发中需求&#xff0c;会有页面显示图片直接从后端获取后显示&#xff0c;代码如下&#xff1a; 后端&#xff1a; /*** 获取图片流* param response* param fileName*/RequestMapping(value"getImgStream",method RequestMethod.GET)public void getImgStr…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...