ansible[自动配置]

news2024/9/22 5:27:21

回顾
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)步骤
        ①安装jdk

tar -xf jdk_8u192.tar.gz
cp jdk/ /usr/local/jdk
 
sed -i '$aexport JAVA_HOME=/usr/local/jdk' /etc/profile
sed -i '$aexport PATH=$PATH:$JAVA_HOME/bin' /etc/profile
 
java --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.52
 
other 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'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2055512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

您需要知道的:大模型中的算力精度FP16 vs. FP32

正如海洋中的巨浪需要广阔的海域来形成,大模型的算力需求也要求我们拓宽对现有计算资源的认识。接下来的内容将引导我们穿越技术的波涛,探索在人工智能快速发展的今天,算力如何成为推动进步的关键力量。我们将分析FP16与FP32精度选择的权衡&a…

【一文详解】内外网文件摆渡系统如何搭建安全数传通道?

内外网文件摆渡系统主要应用于做了隔离的内外网之间,或者多个网络(比如生产网、测试网、办公网)之间的文件数据传输,涉及的行业主要包括集成电路、金融、电力、能源、医院、高新技术、新能源、科研机构、生物医药等,内…

2024秋招Java 面试必刷的1200 道Java大厂面试真题(含答案解析)

2024秋招即将来临,很多同学会问 Java 面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。 国内的互联网面试,恐怕是现存的、最接近科举考试的制度…

Ubuntu网络服务无法启动问题

问题 Ubuntu20.04卡死重启后网络服务打不开,没有下图中的有线一栏: 查看网络服务状态如下: systemctl status NetworkManager此时桌面右上角没有下图中网络图标: 解决 命令: sudo service network-manager sto…

Golang | Leetcode Golang题解之第350题两个数组的交集II

题目&#xff1a; 题解&#xff1a; func intersect(nums1 []int, nums2 []int) []int {sort.Ints(nums1)sort.Ints(nums2)length1, length2 : len(nums1), len(nums2)index1, index2 : 0, 0intersection : []int{}for index1 < length1 && index2 < length2 {i…

Unity的地编系统

目录 基础操作与流程&#xff1a; 模型和材质制作&#xff1a; 六边形地图系统&#xff1a; 无缝大地图实现&#xff1a; 插件与扩展功能&#xff1a; 导航与寻路系统&#xff1a; 案例教学与视频教程&#xff1a; 技术问答与社区支持&#xff1a; Unity地编系统中如何…

基于RIFE的光流估计

文章目录 概要权重下载光流估计结果预览 概要 RIFE&#xff0c;一种用于视频帧插值&#xff08;VFI&#xff09;的实时中间流估计算法。许多最近基于流动的VFI方法首先估计双向光流&#xff0c;然后将它们缩放和反转为近似的中间流&#xff0c;从而导致运动边界和复杂管道上的…

Python之海龟绘图绘制国旗

海龟绘图绘制国旗 步骤&#xff1a; 背景底色大五角星5个小五角星 import turtle#1. draw_rectangle 函数用于绘制矩形&#xff0c;用于国旗的背景。 def draw_rectangle(color, x, y, width, height):turtle.penup()turtle.goto(x, y)turtle.pendown()turtle.color(color)tu…

如何量化管理研发团队的技术债务?

在探讨技术债的成因之前&#xff0c;我们需要澄清一些关于技术债起因和本质的普遍误解。 误解一&#xff1a;技术债务等同于劣质代码 那么&#xff0c;什么构成了所谓的「劣质代码」&#xff1f; 所谓的好代码&#xff0c;可能是指那些整洁、不会在未来限制你决策的代码&…

LearnOpenGL——法线贴图、视差贴图学习笔记

LearnOpenGL——法线贴图、视差贴图学习笔记 法线贴图 Normal Mapping一、基本概念二、切线空间1. TBN矩阵2. 切线空间中的法线贴图 三、复杂模型四、小问题 视差贴图 Parallax Mapping一、基本概念二、实现视差贴图三、陡峭视差映射 Steep Parallax Mapping四、视差遮蔽映射 P…

HexView 刷写文件脚本处理工具-命令行介绍(四)-地址范围缩减(/AR:‘range‘)

地址范围缩减(/AR:‘range’) 此选项可以限制加载到内存中的数据范围。 如果只想在 HexView 中处理数据的缩减范围,这将非常有用。 通过其块开始地址和长度来指定地址范围,地址和长度由逗号分隔。也可以使用开始地址和结束地址来指定范围。 然后,这两个值必须由‘-’分…

继承的多种方式

1. 原型链继承 function Parent() {this.name "xiaohong"; } Parent.prototype.getName function () {console.log(this.name); };function Child() {}Child.prototype new Parent();const child new Child(); child.getName(); console.log(child.name);引用类…

带你速通C语言——指针(10)

指针是C语言中最强大但也最容易引起困惑的概念之一。它们直接关联内存管理&#xff0c;使得程序员可以高效地操作数据和内存。下面我将尽量以简单明了的方式介绍指针的基本概念。 1.指针基础 指针本质上是存储内存地址的变量&#xff0c;这个地址指向一个值。通过指针&#xf…

STM32 PWR电源控制 与 低功耗模式 详解

目录 STM32 PWR电源控制 与 低功耗模式 详解 1. PWR 电源控制 简介 2. PWR 电源控制 框图 3. 上电复位和掉电复位 与 可编程电压检测器&#xff08;PVD&#xff09; 3.1 内嵌复位与电源控制模块特性图 3.2 上电复位和掉电复位 3.3 可编程电压检测器&#xff08;PVD&…

蚁群算法原理与实战(Python、MATLAB、C++)

蚁群算法 1.蚁群算法来源 蚁群算法&#xff08;Ant Colony Optimization&#xff0c;简称ACO&#xff09;是一种模拟自然界中蚂蚁寻找食物路径行为的优化算法&#xff0c;主要用于解决组合优化问题。它的灵感来源于意大利学者Marco Dorigo在1992年提出的蚂蚁系统模型。 蚁群算…

脑网络相似性:方法与应用

摘要 图论方法已被证明是理解、表征和量化复杂大脑网络的有效工具。然而&#xff0c;定量比较两个图形的方法却较少受到关注。在一些网络神经科学应用中&#xff0c;比较大脑网络确实是必不可少的。在这里&#xff0c;本研究讨论了近年来用于比较大脑网络的技术现状、挑战以及…

Android常见界面控件(二)

目录 前言 一、 RadioButton控件 设置RadioGroup的监听事件 二、CheckBox控件 三、Toast类 改变Toast窗口的提示位置 前言 在上一篇中&#xff0c;我们讲解了三个常见的控件&#xff1a;TextView控件、Button控件、ImageView控件&#xff0c;那么本篇我们就接着讲剩下的…

Selenium实战:深度解析Python中嵌套Frame与iFrame的定位与切换技巧,解决Selenium定位不到的问题

在Web自动化测试中&#xff0c;处理网页中的Frame和iFrame是常见的挑战之一。这些元素在网页中扮演着承载独立HTML文档的角色&#xff0c;使得直接定位或操作其中的元素变得复杂。Python的Selenium库提供了强大的工具来应对这些挑战&#xff0c;本文将详细介绍如何使用Selenium…

SFP光模块、gt口、PMD、PMA、PCS之间的关系

ZYNQ内部的GT&#xff08;高速收发器&#xff09;接口包含了PCS&#xff08;物理编码子层&#xff09;与PMA&#xff08;物理介质接入层&#xff09;。这两个层在高速数据传输中起着至关重要的作用。 PCS层&#xff08;物理编码子层&#xff09; PCS层位于协调子层&#xff0…

Ubuntu虚拟机服务器的搭建

01.VMware安装 略。 02.Ubuntu虚拟机安装 略。 03.配置Ubuntu虚拟机网络 参考视频&#xff1a; Ubutu虚拟机网络配置&#xff08;桥接&#xff09;https://www.bilibili.com/video/BV1bG411V72A/?spm_id_from333.999.0.0&vd_sourced1fd4bcc46805ab35cc8bbb5a8bf318f…