上次介绍了如何使用ansible playbook安装zabbix客户端(https://www.jb51.net/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的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客户端已经介绍了结构,所以现在不介绍了。
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.596s
user 0m8.815s
sys 0m0.848s
2、安装后测试
登陆192.168.240.17的测试机查看mysql安装情况
[root@ip-10-10-240-21 tmp]# 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 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 mysql
root 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.pid
mysql 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/da}х |