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)步骤

①安装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 ![](https://i-blog.csdnimg.cn/direct/cb9b13dc2c004862bc428ef376b2ce59.png) \[root@M0 \~\]# ansible group02 -m ping ![](https://i-blog.csdnimg.cn/direct/c151404b9891428abc02d6e8f2a9289b.png) \[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 ![](https://i-blog.csdnimg.cn/direct/4dc13a6a745143ccaf972effe1728d4f.png)

(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'

相关推荐
Sugobet5 小时前
【安卓][Mac/Windows】永久理论免费 无限ip代理池 - 适合临时快速作战
android·tcp/ip·macos·网络安全·渗透测试·ip代理池·接入点
fatiaozhang95279 小时前
创维智能融合终端SK-M424_S905L3芯片_2+8G_安卓9_线刷固件包
android·电视盒子·刷机固件·机顶盒刷机
来来走走9 小时前
Flutter开发 了解Scaffold
android·开发语言·flutter
哆啦A梦的口袋呀11 小时前
Android 底层实现基础
android
闻道且行之11 小时前
Android Studio下载及安装配置
android·ide·android studio
alexhilton11 小时前
初探Compose中的着色器RuntimeShader
android·kotlin·android jetpack
小墙程序员11 小时前
kotlin元编程(二)使用 Kotlin 来生成源代码
android·kotlin·android studio
小墙程序员12 小时前
kotlin元编程(一)一文理解 Kotlin 反射
android·kotlin·android studio
fatiaozhang952713 小时前
创维智能融合终端DT741_移动版_S905L3芯片_安卓9_线刷固件包
android·电视盒子·刷机固件·机顶盒刷机
小林学Android15 小时前
Android四大组件之Activity详解
android