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:~> lsdrwxr-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.confListen 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();:实例化ArrayList集合对象; collectionName.add(Object obj);:在集合中增加元素; int sizeName collectionName.size();:获取集合…...
Go更换国内源配置环境变量
背景 要在中国境内下载和使用Go编程语言的包,可以使用国内的Go模块代理来加速下载速度。以下是一些常见的国内Go模块代理源以及如何切换到这些源的方法: 常见国内Go模块代理源 七牛云(Qiniu) https://goproxy.cn 阿里云࿰…...

澎湃认证显实力,浪潮信息存储兼容新篇章
浪潮信息在存储技术兼容性领域取得新突破,其集中式存储HF/AS系列与长擎安全操作系统24强强联合,成功完成澎湃技术认证。此次合作不仅验证了双方产品的无缝对接能力,更体现了浪潮信息在推动全产业链共建共享方面的坚定决心。 浪潮信息澎湃技术…...
Leetcode 3255. Find the Power of K-Size Subarrays II
Leetcode 3255. Find the Power of K-Size Subarrays II 1. 解题思路2. 代码实现 题目链接:3255. Find the Power of K-Size Subarrays II 1. 解题思路 这一题是题目3254的进阶版,其实主要就是增加了算法复杂度。 整体上来说的话思路还是一个分段的思…...
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++的模板简介
文章目录 一、前言二、函数模板(Function Template)三、类模板(Class Template)四、变参模板(Variadic Template)五、模板的递归与元编程六、模板的局限与陷阱七、常用模板的实例八、C20 的概念(…...

树莓派5 笔记25:第一次启动与配置树莓派5_8G
今日继续学习树莓派5 8G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下: 今日购得了树莓派5_8G版本,性能是同运…...

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

day32
更新源 cd /etc/apt/ sudo cp sources.list sources.list.save 将原镜像备份 sudo vim sources.list 将原镜像修改成阿里源/清华源,如所述 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiver…...
【clickhouse】 使用 SQLAlchemy 连接 ClickHouse 数据库的完整指南
我听见有人猜 你是敌人潜伏的内线 和你相知多年 我确信对你的了解 你舍命救我画面 一一在眼前浮现 司空见惯了鲜血 你忘记你本是娇娆的红颜 感觉你我彼此都那么依恋 🎵 许嵩《内线》 ClickHouse 是一款非常高效的开源列式数据库,因…...

按键收集单击,双击和长按
按键收集单击,双击和长按 引言 在我们生活中, 按键是必不可少的, 不同的电器, 有不同的按键, 但是按键总有不够用的时候, 那么给与一个按键赋予不同的功能,就必不可少了. 一个按键可以通过按下的时间长短和频次, 来定义其类型。 一次按键收集, 都是在一个按键收集周…...
进程的异常终止
进程的异常终止 进程收到了某些信号,他杀 进程自己调用abort函数,产生了SIGABRT(6)信号,自杀 进程的最后一个线程收到了"取消"操作,并且做出响应 如果进程是异常结束的,atexit\on_exit它们事先注册的遗言…...

并发编程 | Future是如何优化程序性能
在初识Future一文中介绍了Future的核心方法。本文中接着介绍如何用Future优化我们的程序性能。 在此之前,有必要介绍Future接口的一个实现类FutureTask。 FutureTask介绍 FutureTask继承结构 首先我们看一下FutureTask的继承结构: public class Futur…...
Oracle笔记
一、 如何解决 sqlplus 无法使用退格键和方向键 .bashrc 中添加如下内容,解决 退格键 stty erase ^h 安装 rlwap 后,执行如下命令可解决 方向键 rlwap sqlplus 二、 都有哪些备份数据到工具 三、 谈谈 你对 oracle 中实例和数据库的理解 数据库是一…...

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

Web Image scr图片从后端API获取基本实现
因系统开发中需求,会有页面显示图片直接从后端获取后显示,代码如下: 后端: /*** 获取图片流* param response* param fileName*/RequestMapping(value"getImgStream",method RequestMethod.GET)public void getImgStr…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...