侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

集群运维自动化工具ansible使用playbook安装mysql

数据库  /  管理员 发布于 6年前   432

上次介绍了如何使用ansible playbook安装zabbix客户端(///article/52158.htm),这次介绍一下如何使用playbook安装mysql。

下面是安装mysql的信息:

mysql_basedir: /data/mysql/basedir     源码目录mysql_datadir: /data/mysql/datadir     数据目录mysql_user: mysql          mysql用户mysql_database_user: root        数据库用户mysql_passwd: 'E4yR3WnoluSFTCBAI'      数据库密码mysql_port: 3306          mysql监听端口mysql_sock: /data/mysql/datadir/mysql.sock   mysql的sockmysql_charset: utf8         mysql字符集mysql_collation: utf8_general_ci      mysql排序方式mysql_version: Percona-Server-5.5.21-rel25.1.tar.gz mysql版本

下面是安装mysql的playbook结构

10:24:06 # tree mysql_*mysql_delete├── files├── handlers├── meta│ └── main.yml├── tasks│ ├── delete.yml│ └── main.yml├── templates└── vars └── main.ymlmysql_install├── files│ └── mysql.tar.gz├── handlers├── meta│ └── main.yml├── tasks│ ├── copy.yml│ ├── delete.yml│ ├── install.yml│ └── main.yml├── templates│ ├── install_mysql.sh│ ├── my.cnf│ ├── mysqld│ └── mysql_security.sh└── vars └── main.yml12 directories, 15 files

playbook的mysql安装的是

10:32:06 # cat mysql_install.yml ---- hosts: "{{host}}" remote_user: "{{user}}" gather_facts: True roles: - common - mysql_install

playbook的mysql协助的是

10:32:44 # cat mysql_delete.yml ---- hosts: "{{host}}" remote_user: "{{user}}" gather_facts: True roles: - mysql_delete

由于在上篇安装zabbix客户端已经介绍了结构,所以现在不介绍了。

10:26:00 # time ansible-playbook mysql_install.yml --extra-vars "host=192.168.240.17 user=root" --private-key=/root/test.pem PLAY [192.168.240.17] ********************************************************* GATHERING FACTS *************************************************************** ok: [192.168.240.17]TASK: [common | Install initializtion require software] *********************** changed: [192.168.240.17]TASK: [mysql_install | Copy Mysql Software To Redhat Client] ****************** changed: [192.168.240.17]TASK: [mysql_install | Create Mysql User In Redhat Client] ******************** changed: [192.168.240.17]TASK: [mysql_install | Copy Mysql Start Script To Redhat Client] ************** changed: [192.168.240.17]TASK: [mysql_install | Copy Install Mysql Script To Redhat Client] *********** changed: [192.168.240.17]TASK: [mysql_install | Copy Mysql Config To Redhat Client] ******************** changed: [192.168.240.17]TASK: [mysql_install | Copy Mysql Security Script To Redhat Client] *********** changed: [192.168.240.17]TASK: [mysql_install | Create Mysql Install Dir] ****************************** ok: [192.168.240.17]TASK: [mysql_install | Uncompression Mysql Software To Redhat Client] ********* changed: [192.168.240.17]TASK: [mysql_install | Modify Mysql Dir Permission In Redhat Client] ********** ok: [192.168.240.17] => (item=/data/mysql/datadir)ok: [192.168.240.17] => (item=/data/mysql/basedir)TASK: [mysql_install | Install Mysql Script In Redhat Client] ***************** changed: [192.168.240.17]TASK: [mysql_install | Start Myql Security Script In Redhat Client] *********** changed: [192.168.240.17]TASK: [mysql_install | Add Boot Start Mysql Service In Redhat Client] ********* changed: [192.168.240.17]TASK: [mysql_install | Delete Mysql compression Software In Redhat Client] **** changed: [192.168.240.17]PLAY RECAP ******************************************************************** 192.168.240.17    : ok=15 changed=12 unreachable=0 failed=0 real 2m1.596suser 0m8.815ssys 0m0.848s

2、安装后测试

登陆192.168.240.17的测试机查看mysql安装情况

[root@ip-10-10-240-21 tmp]# lltotal 16lrwxrwxrwx 1 root root 30 Jul 13 22:27 mysql.sock -> /data/mysql/datadir/mysql.sock-rw------- 1 root root 256 Jul 10 06:07 tmp.0PLkgCq81n-rw------- 1 root root 197 Jul 9 05:35 yum_save_tx-2014-07-09-09-35ibcBiO.yumtx-rw-rw-r-- 1 zabbix zabbix 320 Jul 10 21:39 zabbix_agentd.log-rw-rw-r-- 1 zabbix zabbix 5 Jul 10 21:39 zabbix_agentd.pid[root@ip-10-10-240-21 tmp]# ps -ef|grep mysqlroot  21333  1 0 22:27 ?  00:00:00 /bin/sh /data/mysql/basedir/bin/mysqld_safe --defaults-file=/data/mysql/datadir/my.cnf --datadir=/data/mysql/datadir --pid-file=/data/mysql/datadir/mysql.pidmysql 22156 21333 2 22:27 ?  00:00:08 /data/mysql/basedir/bin/mysqld --defaults-file=/data/mysql/datadir/my.cnf --basedir=/data/mysql/basedir --datadir=/data/mysql/datadir --plugin-dir=/data/mysql/basedir/lib/plugin --user=mysql --log-error=/data/mysql/datadir/mysql-error.log --open-files-limit=10240 --pid-file=/data/mysql/datadir/mysql.pid --socket=/data/mysql/datadir/mysql.sock --port=3306root  22440 20233 0 22:33 pts/0 00:00:00 grep mysql[root@ip-10-10-240-21 tmp]# ll /data/mysql/total 8drwxr-xr-x 13 mysql mysql 4096 Jun 26 03:59 basedirdrwxr-xr-x 4 mysql mysql 4096 Jul 13 22:28 datadir[root@ip-10-10-240-21 tmp]# ll /etc/init.d/mysqld -rwxr-xr-x 1 root root 10905 Jul 13 22:27 /etc/init.d/mysqld[root@ip-10-10-240-21 tmp]# /etc/init.d/mysqld statusMySQL (Percona Server) running (22156)      [ OK ][root@ip-10-10-240-21 tmp]# chkconfig --list|grep mysqlmysqld   0:off 1:off 2:on 3:on 4:on 5:on 6:off[root@ip-10-10-240-21 tmp]# mysql -h 192.168.240.17 -u root -pE4yR3WnoluSFTCBAIERROR 1045 (28000): Access denied for user 'root'@'192.168.240.17' (using password: YES)[root@ip-10-10-240-21 tmp]# mysql -h 10.10.240.21 -u root -pE4yR3WnoluSFTCBAIWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 8Server version: 5.5.21-log Source distributionCopyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database   |+--------------------+| information_schema || mysql    || performance_schema |+--------------------+3 rows in set (0.00 sec)mysql> use mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select host,user,password from user;+--------------+--------+-------------------------------------------+| host   | user | password         |+--------------+--------+-------------------------------------------+| 10.10.240.21 | root | *BE78618CBAFFF409CE17D81579C1678B94439BE1 || %   | zabbix | *DEEF4D7D88CD046ECA02A80393B7780A63E7E789 |+--------------+--------+-------------------------------------------+2 rows in set (0.00 sec)

可以看到已经按照我的要求安装完成,下面在进行删除测试。

3、删除

10:49:18 # time ansible-playbook mysql_delete.yml --extra-vars "host=192.168.240.17 user=root" --private-key=/root/test.pem PLAY [192.168.240.17] ********************************************************* GATHERING FACTS *************************************************************** ok: [192.168.240.17]TASK: [mysql_delete | Stop Mysql Service] ************************************* changed: [192.168.240.17]TASK: [mysql_delete | Delete Mysql Boot Start Script] ************************* changed: [192.168.240.17]TASK: [mysql_delete | Delete Mysql Dir And Socket] **************************** changed: [192.168.240.17]TASK: [mysql_delete | Delete Mysql User] ************************************** changed: [192.168.240.17]TASK: [mysql_delete | Delete Mysql Service Start Script] ********************** changed: [192.168.240.17]PLAY RECAP ******************************************************************** 192.168.240.17    : ok=6 changed=5 unreachable=0 failed=0 real 0m25.248suser 0m0.632ssys 0m0.102s

4、删除后测试

[root@ip-10-10-240-21 tmp]# ll /tmp/total 16-rw------- 1 root root 256 Jul 10 06:07 tmp.0PLkgCq81n-rw------- 1 root root 197 Jul 9 05:35 yum_save_tx-2014-07-09-09-35ibcBiO.yumtx-rw-rw-r-- 1 zabbix zabbix 320 Jul 10 21:39 zabbix_agentd.log-rw-rw-r-- 1 zabbix zabbix 5 Jul 10 21:39 zabbix_agentd.pid[root@ip-10-10-240-21 tmp]# ll /data/total 4drwxr-xr-x 3 root root 4096 Jul 10 22:11 webroot[root@ip-10-10-240-21 tmp]# ps -ef|grep mysqlroot  22955 20233 0 22:50 pts/0 00:00:00 grep mysql[root@ip-10-10-240-21 tmp]# ll /etc/init.d/mysqlls: cannot access /etc/init.d/mysql: No such file or directory[root@ip-10-10-240-21 tmp]# chkconfig --list|grep mysql[root@ip-10-10-240-21 tmp]#

可以看到都删除完成。

如果大家想使用我的例子,可以从百度云的地址下载(文件大于50M,没办法放到附件或者51下载中心)地址是http://pan.baidu.com/s/1mgG8jY4,然后放到/etc/ansible目录里,下面是压缩包里的内容

11:20:08 # unzip -v mysql_install.zip Archive: mysql_install.zip Length Method Size Cmpr Date Time CRC-32 Name-------- ------ ------- ---- ---------- ----- -------- ----  113 Defl:N  89 21% 07-14-2014 10:32 aaed0763 mysql_install.yml  99 Defl:N  82 17% 07-14-2014 10:32 70c2a028 mysql_delete.yml  0 Stored  0 0% 07-03-2014 17:29 00000000 roles/common/  0 Stored  0 0% 06-30-2014 15:58 00000000 roles/common/meta/  267 Defl:N  178 33% 06-30-2014 15:58 31ee20ec roles/common/meta/main.yml  0 Stored  0 0% 07-11-2014 09:31 00000000 roles/common/tasks/  586 Defl:N  268 54% 07-08-2014 10:18 1c0af2a1 roles/common/tasks/main.yml  0 Stored  0 0% 06-19-2014 13:43 00000000 roles/common/handlers/  58 Defl:N  48 17% 06-19-2014 13:43 8d058053 roles/common/handlers/main.yml  0 Stored  0 0% 06-19-2014 13:30 00000000 roles/common/vars/  0 Stored  0 0% 06-19-2014 13:30 00000000 roles/common/templates/  0 Stored  0 0% 06-19-2014 13:30 00000000 roles/common/files/  0 Stored  0 0% 06-24-2014 11:27 00000000 roles/mysql_install/  0 Stored  0 0% 07-08-2014 14:12 00000000 roles/mysql_install/meta/  198 Defl:N  149 25% 07-08-2014 14:12 b03e00eb roles/mysql_install/meta/main.yml  0 Stored  0 0% 07-14-2014 09:27 00000000 roles/mysql_install/tasks/  201 Defl:N  153 24% 07-14-2014 09:27 51de730b roles/mysql_install/tasks/delete.yml  65 Defl:N  41 37% 07-14-2014 09:27 a3197ca7 roles/mysql_install/tasks/main.yml 1281 Defl:N  329 74% 07-14-2014 09:27 73d60454 roles/mysql_install/tasks/copy.yml 1162 Defl:N  375 68% 07-14-2014 09:27 e5a7341c roles/mysql_install/tasks/install.yml  0 Stored  0 0% 06-19-2014 13:30 00000000 roles/mysql_install/handlers/  0 Stored  0 0% 07-14-2014 09:51 00000000 roles/mysql_install/vars/  313 Defl:N  177 44% 07-14-2014 09:51 bf4476a7 roles/mysql_install/vars/main.yml  0 Stored  0 0% 07-14-2014 11:11 00000000 roles/mysql_install/templates/  518 Defl:N  241 54% 07-14-2014 09:15 529052bf roles/mysql_install/templates/install_mysql.sh 10905 Defl:N  3765 66% 06-26-2014 14:06 e35e7b82 roles/mysql_install/templates/mysqld 2122 Defl:N  823 61% 07-14-2014 09:49 f91c74ab roles/mysql_install/templates/my.cnf  794 Defl:N  275 65% 07-03-2014 13:15 560ee63e roles/mysql_install/templates/mysql_security.sh  0 Stored  0 0% 06-26-2014 13:59 00000000 roles/mysql_install/files/61805835 Defl:N 60413846 2% 06-26-2014 16:18 f61e317d roles/mysql_install/files/mysql.tar.gz  0 Stored  0 0% 06-24-2014 11:27 00000000 roles/mysql_delete/  0 Stored  0 0% 07-08-2014 14:12 00000000 roles/mysql_delete/meta/  197 Defl:N  147 25% 07-08-2014 14:12 fe6b0ef8 roles/mysql_delete/meta/main.yml  0 Stored  0 0% 07-14-2014 09:39 00000000 roles/mysql_delete/tasks/  692 Defl:N  245 65% 07-14-2014 09:39 dccd57b4 roles/mysql_delete/tasks/delete.yml  22 Stored  22 0% 06-27-2014 13:30 728ce4aa roles/mysql_delete/tasks/main.yml  0 Stored  0 0% 06-19-2014 13:30 00000000 roles/mysql_delete/handlers/  0 Stored  0 0% 07-03-2014 13:16 00000000 roles/mysql_delete/vars/  313 Defl:N  177 44% 07-14-2014 10:56 bf4476a7 roles/mysql_delete/vars/main.yml  0 Stored  0 0% 06-27-2014 13:30 00000000 roles/mysql_delete/templates/  0 Stored  0 0% 06-27-2014 13:30 00000000 roles/mysql_delete/files/--------   ------- ---       -------61825741   60421430 2%       41 files


  • 上一条:
    MySQL优化GROUP BY方案
    下一条:
    关于MySQL索引的几点值得注意的事项
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 分库分表的目的、优缺点及具体实现方式介绍(0个评论)
    • DevDB - 在 VS 代码中直接访问数据库(0个评论)
    • 在ubuntu系统中实现mysql数据存储目录迁移流程步骤(0个评论)
    • 在mysql中使用存储过程批量新增测试数据流程步骤(0个评论)
    • php+mysql数据库批量根据条件快速更新、连表更新sql实现(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-06
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-05
    • 2018-10
    • 2018-11
    • 2020-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2021-02
    • 2021-04
    • 2021-07
    • 2021-08
    • 2021-11
    • 2021-12
    • 2022-02
    • 2022-03
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-07
    • 2023-08
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客