POOPE 发表于 2021-7-3 21:59:04

运维自动化之ansible playbook安装mysql

  上次介绍了如何使用ansible playbook安装zabbix客户端(http://dl528888.blog.51cto.com/2382721/1436745),这次介绍一下如何使用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的sock
mysql_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.yml
mysql_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.yml

12 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客户端已经介绍了结构,所以现在不介绍了。
  1、安装mysql

10:26:00 #time ansible-playbook mysql_install.yml --extra-vars "host=192.168.240.17 user=root" --private-key=/root/test.pem

PLAY *********************************************************

GATHERING FACTS ***************************************************************
ok:

TASK: ***********************
changed:

TASK: ******************
changed:

TASK: ********************
changed:

TASK: **************
changed:

TASK: ***********
changed:

TASK: ********************
changed:

TASK: ***********
changed:

TASK: ******************************
ok:

TASK: *********
changed:

TASK: **********
ok: => (item=/data/mysql/datadir)
ok: => (item=/data/mysql/basedir)

TASK: *****************
changed:

TASK: ***********
changed:

TASK: *********
changed:

TASK: ****
changed:

PLAY RECAP ********************************************************************
192.168.240.17             : ok=15   changed=12   unreachable=0    failed=0   


real2m1.596s
user0m8.815s
sys0m0.848s  2、安装后测试
  登陆192.168.240.17的测试机查看mysql安装情况
# ll
total 16
lrwxrwxrwx 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 Jul9 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
# ps -ef|grep mysql
root   21333   10 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.pid
mysql    22156 213332 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=3306
root   22440 202330 22:33 pts/0    00:00:00 grep mysql
# ll /data/mysql/
total 8
drwxr-xr-x 13 mysql mysql 4096 Jun 26 03:59 basedir
drwxr-xr-x4 mysql mysql 4096 Jul 13 22:28 datadir
# ll /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10905 Jul 13 22:27 /etc/init.d/mysqld
# /etc/init.d/mysqld status
MySQL (Percona Server) running (22156)                     
# chkconfig --list|grep mysql
mysqld         0:off1:off2:on3:on4:on5:on6:off
# mysql -h 192.168.240.17 -u root -pE4yR3WnoluSFTCBAI
ERROR 1045 (28000): Access denied for user 'root'@'192.168.240.17' (using password: YES)
# mysql -h 10.10.240.21 -u root -pE4yR3WnoluSFTCBAI
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.5.21-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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 mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 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 *********************************************************

GATHERING FACTS ***************************************************************
ok:

TASK: *************************************
changed:

TASK: *************************
changed:

TASK: ****************************
changed:

TASK: **************************************
changed:

TASK: **********************
changed:

PLAY RECAP ********************************************************************
192.168.240.17             : ok=6    changed=5    unreachable=0    failed=0   


real0m25.248s
user0m0.632s
sys0m0.102s  4、删除后测试
# ll /tmp/
total 16
-rw------- 1 root   root   256 Jul 10 06:07 tmp.0PLkgCq81n
-rw------- 1 root   root   197 Jul9 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
# ll /data/
total 4
drwxr-xr-x 3 root root 4096 Jul 10 22:11 webroot
# ps -ef|grep mysql
root   22955 202330 22:50 pts/0    00:00:00 grep mysql
# ll /etc/init.d/mysql
ls: cannot access /etc/init.d/mysql: No such file or directory
# chkconfig --list|grep mysql
#  可以看到都删除完成。
  如果大家想使用我的例子,可以从github里下载(地址是https://github.com/dl528888/ansible-examples/tree/master/mysql_install),然后放到/etc/ansible目录里,下面是压缩包里的内容
11:20:08 # unzip -v mysql_install.zip
Archive:mysql_install.zip
Length   Method    SizeCmpr    Date    Time   CRC-32   Name
--------------------- ---- ---------- ----- ------------
   113Defl:N       8921% 07-14-2014 10:32 aaed0763mysql_install.yml
      99Defl:N       8217% 07-14-2014 10:32 70c2a028mysql_delete.yml
       0Stored      0   0% 07-03-2014 17:29 00000000roles/common/
       0Stored      0   0% 06-30-2014 15:58 00000000roles/common/meta/
   267Defl:N      17833% 06-30-2014 15:58 31ee20ecroles/common/meta/main.yml
       0Stored      0   0% 07-11-2014 09:31 00000000roles/common/tasks/
   586Defl:N      26854% 07-08-2014 10:18 1c0af2a1roles/common/tasks/main.yml
       0Stored      0   0% 06-19-2014 13:43 00000000roles/common/handlers/
      58Defl:N       4817% 06-19-2014 13:43 8d058053roles/common/handlers/main.yml
       0Stored      0   0% 06-19-2014 13:30 00000000roles/common/vars/
       0Stored      0   0% 06-19-2014 13:30 00000000roles/common/templates/
       0Stored      0   0% 06-19-2014 13:30 00000000roles/common/files/
       0Stored      0   0% 06-24-2014 11:27 00000000roles/mysql_install/
       0Stored      0   0% 07-08-2014 14:12 00000000roles/mysql_install/meta/
   198Defl:N      14925% 07-08-2014 14:12 b03e00ebroles/mysql_install/meta/main.yml
       0Stored      0   0% 07-14-2014 09:27 00000000roles/mysql_install/tasks/
   201Defl:N      15324% 07-14-2014 09:27 51de730broles/mysql_install/tasks/delete.yml
      65Defl:N       4137% 07-14-2014 09:27 a3197ca7roles/mysql_install/tasks/main.yml
    1281Defl:N      32974% 07-14-2014 09:27 73d60454roles/mysql_install/tasks/copy.yml
    1162Defl:N      37568% 07-14-2014 09:27 e5a7341croles/mysql_install/tasks/install.yml
       0Stored      0   0% 06-19-2014 13:30 00000000roles/mysql_install/handlers/
       0Stored      0   0% 07-14-2014 09:51 00000000roles/mysql_install/vars/
   313Defl:N      17744% 07-14-2014 09:51 bf4476a7roles/mysql_install/vars/main.yml
       0Stored      0   0% 07-14-2014 11:11 00000000roles/mysql_install/templates/
   518Defl:N      24154% 07-14-2014 09:15 529052bfroles/mysql_install/templates/install_mysql.sh
   10905Defl:N   376566% 06-26-2014 14:06 e35e7b82roles/mysql_install/templates/mysqld
    2122Defl:N      82361% 07-14-2014 09:49 f91c74abroles/mysql_install/templates/my.cnf
   794Defl:N      27565% 07-03-2014 13:15 560ee63eroles/mysql_install/templates/mysql_security.sh
       0Stored      0   0% 06-26-2014 13:59 00000000roles/mysql_install/files/
61805835Defl:N 60413846   2% 06-26-2014 16:18 f61e317droles/mysql_install/files/mysql.tar.gz
       0Stored      0   0% 06-24-2014 11:27 00000000roles/mysql_delete/
       0Stored      0   0% 07-08-2014 14:12 00000000roles/mysql_delete/meta/
   197Defl:N      14725% 07-08-2014 14:12 fe6b0ef8roles/mysql_delete/meta/main.yml
       0Stored      0   0% 07-14-2014 09:39 00000000roles/mysql_delete/tasks/
   692Defl:N      24565% 07-14-2014 09:39 dccd57b4roles/mysql_delete/tasks/delete.yml
      22Stored       22   0% 06-27-2014 13:30 728ce4aaroles/mysql_delete/tasks/main.yml
       0Stored      0   0% 06-19-2014 13:30 00000000roles/mysql_delete/handlers/
       0Stored      0   0% 07-03-2014 13:16 00000000roles/mysql_delete/vars/
   313Defl:N      17744% 07-14-2014 10:56 bf4476a7roles/mysql_delete/vars/main.yml
       0Stored      0   0% 06-27-2014 13:30 00000000roles/mysql_delete/templates/
       0Stored      0   0% 06-27-2014 13:30 00000000roles/mysql_delete/files/
--------          ----------                            -------
61825741         60421430   2%                            41 files  如果觉得好,给个赞并多评论,谢谢。

  
页: [1]
查看完整版本: 运维自动化之ansible playbook安装mysql