首页 > 其他分享 >ansible【自动化配置】(thirty day)

ansible【自动化配置】(thirty day)

时间:2024-08-16 17:22:59浏览次数:7  
标签:tmp thirty 192.168 etc ansible M0 root 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

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

标签:tmp,thirty,192.168,etc,ansible,M0,root,day
From: https://blog.csdn.net/m0_75005437/article/details/141245319

相关文章

  • python管理MySQL数据库 mysql5.7读写分离 配置mycat(twenty-nine day)
    一、pymysql管理数据库1、搭建主mysql5.7[root@mysql57~]#lsanaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz[root@mysql57~]#tar-xfmysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [root@mysql57~]#lsanaconda-ks.cfgmysql-5.7.44-linux-glibc2......
  • Day49.事务
    1.事务_事务的概念、作用和四大特性2.事务_案例进行转账,转账后进行回滚3.事务_操作完记录后,执行commit,rollback回滚无效4.事务_总结 ......
  • 实训day29(8.15)
    一、python管理mysql1、搭建主mysql[root@mysql57~]#tar-xfmysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [root@mysql57~]#cp-rmysql-5.7.44-linux-glibc2.12-x86_64/usr/local/mysql[root@mysql57~]#rm-rf/etc/my.cnf[root@mysql57~]#mkdir/usr/local......
  • 学习SSD—day1_20240814
    1.SSD的基本概念以及结构  SSD是一种以半导体(半导体闪存)作为存储介质吗,使用纯电子电路实现的存储设备。    SSD硬件包括几大组成部分:主控、闪存、缓存芯片DRAM(可选,有些SSD上可能只有SRAM,并没有配置DRAM)、PCB(电源芯片、电阻、电容等)、接口(SATA、SAS、PCIe等),其主体......
  • JOISC2020 Day 4 A 首都 题解
    JOISC2020Day4A首都JOIAtCoderLuogu考虑一条链的情形。如图,将每个城市视为一条线段,容易发现交错(有交但不包含)的若干线段必须全部合并才能符合条件。但如果这么写会出错,原因是线段有包含关系,外层线段需要统计内层线段的答案,但内层线段不需要统计外层线段的答案。如果设内......
  • Day31 贪心算法part5
    目录任务56.合并区间思路738.单调递增的数字思路968.监控二叉树思路任务56.合并区间以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。思路......
  • day1打卡
    704:二分查找题目链接:https://leetcode.cn/problems/binary-search/这个还是比较简单的intsearch(vector&nums,inttarget){intlow=0;inthigh=nums.size()-1;intmid=(low+high)/2;while(nums[mid]!=target||low>=high){if(nums[mid]<target){......
  • 代码随想录 day31|| 56 合并区间,738 单调递增数字,968 监控二叉树
    56合并区间funcmerge(intervals[][]int)[][]int{ //思路先排序,然后按照后一个左区间和前一个右区间进行对比判断是否重叠,重叠扩充右区间 sort.Slice(intervals,func(i,jint)bool{ ifintervals[i][0]==intervals[j][0]{ returnintervals[i][1]<intervals[......
  • 实习记录day04尝试写一个定时任务
    前言:今天已经不太想写了....实习第四天上午通过swagger测了昨天的接口,本来以为knife4j手到擒来,没想到我网上一搜,1.9版本的时候还不叫knife4j....后来测试的时候我发现jwt怎么都塞不进请求头,努力半天最后大哥告诉我:添加保存之后要把页面给关了,然后才可以填进去,挺离谱的,不过幸运......
  • 『dsu、Trie』Day7
    StampRallykruskal重构树板子,套上二分求一下祖先即可。AND-MEXWalk注意到答案只可能是0,1,2。因为1和2显然不能同时存在。证明:可知边权序列不增,如果前面出现2则说明第1位是0,由于是与运算所以不可能有1了。判断0和1即可。0好判断,只要全不为0,也就是最后......