ansible【自动化配置】(thirty day)
回顾
1、mysql和python
(1)不需要执行mysql_ssl_rsa_setup
(2)Change_master_to.不需要get public key
2、可以使用pymysql非交互的管理mysql
(1)conn=pymysql.connect(host,user,password,database,prot)
(2)cursor=conn.cursor();
(3)Cursor.execute("create user ....")
(4)cursor.execute("grant 权限 on 库名.表名 to 用户")
(5) conn.commit()
(6)cursor.fetchall()
3、mycat中间件
(1)独属于mysql主从的负载均衡策略
(2)配置写主读从
(3)步骤
①安装jdktar -xf jdk_8u192.tar.gz cp jdk/ /usr/local/jdksed -i '$aexport JAVA_HOME=/usr/local/jdk' /etc/profile sed -i '$aexport PATH=$PATH:$JAVA_HOME/bin' /etc/profilejava --version javac --version②mycat
tar -xf MyCat.tar.gz cp -r mycat/ /usr/local/#测试启动 /usr/local/mycat/bin/mycat console③配置
server.xml
scheml.xml
4.启动和调试
(1)/usr/local/mycat/bin/mycat start
(2)Netstat -nput|grep 8066
(3)mysql -hmycat的ip或者域名-P8066 -userver.xml中填入账号 -p在service.xml中填入的密码
(4)Cat /usr/local/mysql/logs/wrapper.log
Cause by.......
一、自动化配置(anslible)
公司的服务器越来越多,维护一些简单的事情都会变得很繁琐。用shel脚本来管理少量服务器效率还行,服务器多了之后,shell脚本无法实现高效率运维。这种情况下,我们需要引入自动化运维工具,对多台服务器实现高效运维。
1、管理内容的主要分类
文件目录管理(包括文件的创建,删除,修改,查看状态,远程拷贝等)
**用户和组管理*
cron时间任务管理I
yum源配置与通过yum管理软件包
服务管理
远程执行脚本
远程执行命令
2、常见的开源自动化运维工具比较
(1)puppet(拓展)
基于ruby语言,成熟稳定。适合于大型架构,相对于ansible和saltstack会复杂些。
(2)saltstack(拓展)
基于python语言。相对简单,大并发能力比ansible要好,需要维护被管理端的服务。如果服务断开,连接就会出问题。
(3)ansible
基于python语言。简单快捷,被管理端不需要启服务。直接走ssh协议,需要验证所以机器多的话速度会较慢。
二、搭建自动化部署
环境配置:
[root@M0 ~]# yum list installed | grep epel
[root@M0 ~]# yum -y install epel-release
[root@M0 ~]# yum -y install ansible
[root@M0 ~]# find /etc/ -name "*ansible*"
/etc/ansible
/etc/ansible/ansible.cfg
[root@M0 ~]# ssh-copy-id -i 192.168.1.51[root@M0 ~]# ssh-keygen
[root@M0 ~]# ls ./.ssh/
id_rsa id_rsa.pub
[root@M0 ~]# cat ./.ssh/id_rsa.pub
[root@M0 ~]# ssh-copy-id -i 192.168.1.51[root@M0 ~]# ssh-copy-id -i 192.168.1.52
[root@M0 ~]# vim /etc/ansible/hosts
[group01] 192.168.1.51 192.168.1.52[group02] 192.168.1.51 192.168.1.52 192.168.1.53[root@M0 ~]# ansible group01 -m ping
[root@M0 ~]# ansible group02 -m ping[root@M0 ~]# vim /etc/ansible/hosts
[group01] 192.168.1.51 192.168.1.52other ansible_ssh_host=192.168.1.53 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=1[group02] 192.168.1.51 192.168.1.52 other[root@M0 ~]# ansible group02 -m ping
(1)ansible模块
[root@m0 ~]# ansible-doc -l #查看所有支持的模块
(2)hostname 模块
用于修改主机名称
[root@M0 ~]# ansible group02 -m hostname -a 'name=ab.lxe.er'#将group02组中的主机名称分别改为ab lxe er
(3)file模块(重点)
file模块用于对文件相关的操作(创建,删除,软硬钟接等)
①创建目录和文件
[root@M0 ~]# ansible group01 -m file -a 'path=/tmp/abc state=directory' #创建目录
[root@S0 ~]# ls /tmp/
abc
[root@S1 ~]# ls /tmp/
abc
[root@S2 ~]# ls /tmp
abc[root@M0 ~]# ansible group02 -m file -a 'path=/tmp/abc/def state=touch' #创建文件
[root@S0 ~]# ll /tmp/abc/
总用量 0
-rw-r--r-- 1 root root 0 8月 16 14:08 def②递归修改(owner group mode)
[root@M0 ~]# ansible group01 -m file -a 'path=/tmp/abc recurse=yes owner=bin group=daemon mode=1777' #权限是777
[root@S0 ~]# ll /tmp/abc/
总用量 0
-rwxrwxrwt 1 bin daemon 0 8月 16 14:08 def③删除目录(连同目录里的所有文件)
[root@M0 ~]# ansible group01 -m file -a 'path=/tmp/abc state=absent'
④创建文件并指定owner,group,mode等
[root@M0 ~]# ansible group01 -m file -a 'path=/tmp/xiaojiang state=touch owner=bin group=daemon mode=1777'
⑤删除文件
[root@M0 ~]# ansible group01 -m file -a 'path=/tmp/xiaojiang state=absent'
⑥创建软连接文件[root@M0 ~]# ansible group01 -m file -a 'src=/etc/fstab path=/tmp/xxx state=link'
[root@S0 ~]# ll /tmp/
lrwxrwxrwx 1 root root 10 8月 16 14:28 xxx -> /etc/fstab
⑦创建硬链接文件
[root@M0 ~]# ansible group01 -m file -a 'src=/etc/fstab path=/tmp/xxx2 state=hard'
[root@S0 ~]# ll /tmp/
-rw-r--r--. 2 root root 503 5月 26 21:16 xxx2
(硬链接创建文件,软连接指向硬链接)
(4)stat模块(了解)
[root@M0 ~]# ansible group02 -m stat -a 'path=/etc/fstab'
(5)copy模块(重点)
[root@M0 ~]# mv mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz my57.tar.gz
[root@M0 ~]# ansible group02 -m copy -a 'src=./my57.tar.gz dest=~'
使⽤content参数直接往远程⽂件⾥写内容(会覆盖原内容)[root@M0 ~]# ansible group1 -m copy -a 'content="ha ha\n" dest=/tmp/333'
注意:ansible中-a后⾯的参数⾥也有引号时,记得要单引双引交叉 使⽤,如果都为双引会出现问题
使⽤force参数控制是否强制覆盖
如果⽬标⽂件已经存在,则不覆盖
[root@M0 ~]# ansible group1 -m copy -a 'src=/tmp/222 dest=/tmp/333 force=no'
如果⽬标⽂件已经存在,则会强制覆盖
[root@M0 ~]# ansible group1 -m copy -a 'src=/tmp/222 dest=/tmp/333 force=yes'
使⽤backup参数控制是否备份⽂件
backup=yes表示如果拷⻉的⽂件内容与原内容不⼀样,则会备份⼀ 份 group1的机器上会将/tmp/333备份⼀份(备份⽂件命名加上时 间),再远程拷⻉新的⽂件为/tmp/333
[root@M0 ~]# ansible group1 -m copy -a 'src=/etc/fstab dest=/tmp/333 backup=yes owner=daemon group=daemon mode=1777'
copy模块拷⻉时要注意拷⻉⽬录后⾯是否带"/"符号
/etc/yum.repos.d后⾯不带/符号,则表示
把/etc/yum.repos.d整个⽬录拷⻉到/tmp/⽬录下
[root@M0 ~]# ansible group1 -m copy -a 'src=/etc/yum.repos.d dest=/tmp/'
/etc/yum.repos.d/后⾯带/符号,则表示
把/etc/yum.repos.d/⽬录⾥的所有⽂件拷⻉到/tmp/⽬录下
[root@M0 ~]# ansible group1 -m copy -a 'src=/etc/yum.repos.d/ dest=/tmp/'
(6)fetch模块
(7)user模块
[root@M0 ~]# ansible group02 -m user -a 'name=aaa state=present'
[root@M0 ~]# ansible group02 -m file -a 'path=/user/local/mysql state=directory'
[root@M0 ~]# ansible group02 -m file -a 'path=/user/local/mysql/mysql-files state=directory owner=mysql group=mysql mode=750'
相关文章:
ansible【自动化配置】(thirty day)
回顾 1、mysql和python (1)不需要执行mysql_ssl_rsa_setup (2)Change_master_to.不需要get public key 2、可以使用pymysql非交互的管理mysql (1)connpymysql.connect(host,user,password,database,prot) …...
GitOps Tekton+ArgoCD
GitOps 提供了一种基于 Git 的操作理念,而 Tekton 和 ArgoCD 分别作为 CI/CD 工具,共同实现了这一理念在 Kubernetes 集群中的应用 k8s只是jenkins 流水线中的一环,但是在tekton中,k8s是基础设施 工作流程: 代码提交…...
uniapp用户列表页面渲染、增删改查逻辑
<template><view class="container">...
力扣高频SQL 50题(基础版)第四十七题之1321.餐馆营业额变化增长
力扣高频SQL 50题(基础版)第四十七题 1321.餐馆营业额变化增长 题目说明 表: Customer ---------------------- | Column Name | Type | ---------------------- | customer_id | int | | name | varchar | | visited_on | date | | amount | …...
django中的MESSAGE组件
文章目录 message组件1 使用配置2 设置值3 读取值4 源码分析 message组件 1 使用配置 INSTALLED_APPS [# django.contrib.admin,# django.contrib.auth,# django.contrib.contenttypes,# django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,"…...
【JavaSE】解读Java中的toString方法
前言: 在Java中,toString方法来自java.lang.Object 类,然后所有对象都继承该Object 类。默认情况下,它的作用是返回对象的字符串表示形式。在实际开发中,重写 toString() 方法可以帮助我们以更易读的形式输出对象信息&…...
软件工程的核心原则:KISS, DRY, SOLID, YAGNI
软件工程的核心原则:KISS, DRY, SOLID, YAGNI — 深入解析与实践指南 引言 在软件开发的广阔领域中,原则和实践是构建高质量、可维护系统的基石。本文将深入探讨四个核心原则:KISS(保持简单,愚蠢)、DRY&a…...
Android 高通7.1系开机动画自动跟随系统方向旋转
本篇博客是记录自己解决开机动画与系统方向不一致方案代码,思路:在系统参数根目录自定义persist.sys.hwrotationxrd0来作为动画方向,当修改系统方向时同时修改这个参数,当系统启动加载动画时在根据这个来旋转动画方式以保证动画方…...
Sentinel入门与进阶:微服务流量控制的最佳实践 ( 三 )
5.配置持久化 目前的sentinel,无法满足我们生产环境的需求,因为一旦sentinel-dashboard发生重启,限流规则也会随之丢失。 sentinel规则的持久化: Sentinel自身就支持了多种不同的数据源来持久化规则配置,比如文件配置࿰…...
2021年上半年网络工程师考试上午真题
2021年上半年网络工程师考试上午真题 网络工程师历年真题含答案与解析 第 1 题 以下关于RISC和CISC计算机的叙述中,正确的是( )。 (A) RISC不采用流水线技术,CISC采用流水线技术(B) RISC使用复杂的指令,CISC使用简…...
SQL触发器的级联魔力:数据完整性的守护者
标题:SQL触发器的级联魔力:数据完整性的守护者 在SQL的丰富世界中,触发器(Trigger)是一种特殊的存储过程,它能够自动执行响应数据库中的数据修改事件。而级联操作(Cascade)则是触发…...
ARCGIS PRO 要素标注背景色透明度的设置
使用ArcGIS Pro 设置标注背景色的透明度 一、点击标注属性 二、点击符号、注释 三、下拉框选择背景 四、背景符号 五、点击颜色 六、编辑颜色 七、应用...
探讨MySQL中 “约束“ 下的查询
目录: 一. 数据库约束 二. 表的设计 三. 聚合查询 四.联合查询 一. 数据库约束: 1.约束类型汇总: 约束类型 说明 NULL约束使用NOT NULL指定列不为 空UNIQUE唯一约束指定列为唯一的、不重复的DEFAULT默认值约 …...
Nuxt3【布局】layouts 详解
Nuxt 内置布局框架,用法如下: 修改 app.vue <template><NuxtLayout><NuxtPage /></NuxtLayout> </template>NuxtLayout 为 Nuxt 的内置组件,默认加载 layouts/default.vue ,若页面中指定了布局&…...
获取数据源(多种方式爬虫介绍)
获取不同类型的数据源: 对于看上的网站如何获取其信息: 1.分析原网站是如何获取到这些数据的?哪个接口?哪些参数? 2.用程序去调用接口(python/java都可以) 3.处理一些数据,优化数…...
Linux下FTP服务器搭建配置:vsftpd的安装与配置实验
文章目录 vsftpd的安装与配置指南1. vsftpd的安装2. vsftpd配置详解3. 匿名访问测试4. 本地用户访问FTP的配置5. 修改匿名用户和本地用户的默认根目录6. 黑名单与白名单的使用7. 使用Windows文件资源管理器登录8. 拓展FTP的使用场景9. 注意事项 vsftpd的安装与配置指南 本文详…...
使用Java调用Apache commons-text求解字符串相似性实战
目录 前言 一、字符串距离的几种计算方法 1、Levenshtein 距离 2、Overlap Coefficient计算 3、Q-gram Matching 4、余弦相似性计算 二、基于余弦相似性的基地名称对比 1、加载百科中的基地信息列表 2、设置忽略词列表 3、将数据库地名和Excel进行对比 三、总结 前言…...
http request-01-XMLHttpRequest XHR 简单介绍
http 请求系列 http request-01-XMLHttpRequest XHR 简单介绍 http request-01-XMLHttpRequest XHR 标准 Ajax 详解-01-AJAX(Asynchronous JavaScript and XML)入门介绍 Ajax XHR 的替代方案-fetch Ajax XHR 的替代方案-fetch 标准 Ajax 的替代方案…...
关于tresos Studio(EB)的MCAL配置之DIO
General Dio Development Error Detect开发者错误检测 Dio Flip Channel Api翻转通道电平接口Dio_FlipChannel是否启用 Dio Version Info Api决定Dio_GetVersionInfo接口是否启用,一般打开就行。 Dio Reverse Port Bits让端口的位(通道)进…...
【漫谈C语言和嵌入式003】1394总线
1394总线(FireWire或IEEE 1394)是一种高速串行总线标准,最初由苹果公司开发,并在1995年被IEEE(电气与电子工程师协会)批准为国际标准。它最初的目标是提供一种高性能、低延迟的数据传输方法,用于…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...



