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…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
