Ansible Roles编排实现Mysql5.6角色的部署

[root@centos8-1 ]$mkdir  -pv /data/ansible/roles/mysql/files/ ##创建目录

[root@centos8-1 roles]$vim /data/ansible/roles/mysql/files/my.cnf  ##准备好my.cnf配置文件

[mysqld]
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
datadir=/data/mysql
innodb_file_per_table=1
log-bin
pid-file=/data/mysql/mysqld.pid

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld_safe]
log-error=/var/log/mysqld.log

[root@centos8-1 roles]$vim /data/ansible/roles/mysql/files/secure_mysql.sh

#!/bin/bash
#
#********************************************************************
#Author: zhangtianze
#QQ: 1185673631
#Date: 2020-08-16
#FileName: /data/ansible/roles/mysql/files/secure_mysql.sh
#URL: http://www.zhangtianze.com
#Description: The test script
#Copyright (C): 2020 All rights reserved
#********************************************************************
/usr/local/mysql/bin/mysql_secure_installation <<EOF

y
tianze
tianze
y
y
y
y
EOF

[root@centos8-1 roles]$chmod +x /data/ansible/roles/mysql/files/secure_mysql.sh

[root@centos8-1 files]$pwd
/data/ansible/roles/mysql/files
[root@centos8-1 files]$ls    ## 准备好mysql二进制安装包,可也从mysql官网download
my.cnf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz secure_mysql.sh

[root@centos8-1 mysql]$pwd
/data/ansible/roles/mysql
[root@centos8-1 mysql]$mkdir tasks

[root@centos8-1 roles]$vim mysql/tasks/main.yml

- include: install.ym
- include: install.yml
- include: group.yml
- include: user.yml
- include: unarchive.yml
- include: link.yml
- include: data.yml
- include: config.yml
- include: service.yml
- include: path.yml
- include: secure.yml

[root@centos8-1 tasks]$vim install.yml

- name: install package
yum: name=libaio,perl-Data-Dumper,perl-Getopt-Long

[root@centos8-1 tasks]$vim group.yml

- name: create mysql group
group: name=mysql gid=306

[root@centos8-1 tasks]$vim user.yml

- name: create mysql user
user: name=mysql group=mysql shell=/sbin/nologin system=yes uid=306 create_home=no home=/data/mysql

[root@centos8-1 tasks]$vim unarchive.yml

- name: copy tar to remote host and file mode
unarchive: src=mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz dest=/usr/local/ owner=root group=root

[root@centos8-1 tasks]$vim link.yml

- name: mkdir /usr/local/mysql
file: src=/usr/local/mysql-5.6.48-linux-glibc2.12-x86_64 dest=/usr/local/mysql state=link

[root@centos8-1 tasks]$vim data.yml

- name: data dir
shell: chdir=/usr/local/mysql/ ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql

[root@centos8-1 tasks]$vim config.yml

- name: config my.cnf
copy: src=my.cnf dest/etc/my.cnf

[root@centos8-1 tasks]$vim service.yml

- name: service script
shell: /bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld;chkconfig --add mysqld;chkconfig mysqld on;/etc/init.d/mysqld start

[root@centos8-1 tasks]$vim path.yml

- name: PATH variable
copy: content='PATH=/usr/local/mysql/bin:$PATH' dest=/etc/profile.d/mysql.sh

[root@centos8-1 tasks]$vim secure.yml

- name: secure script
script: secure_mysql.sh

[root@centos8-1 ansible]$tree roles/mysql/
roles/mysql/
├── files
│   ├── my.cnf
│   ├── mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
│   └── secure_mysql.sh
└── tasks
├── config.yml
├── data.yml
├── group.yml
├── install.yml
├── link.yml
├── main.yml
├── path.yml
├── secure.yml
├── service.yml
├── unarchive.yml
└── user.yml

2 directories, 14 files

[root@centos8-1 ansible]$pwd
/data/ansible
[root@centos8-1 ansible]$vim mysql_roles.yml

- hosts: db
remote_user: root

roles:
- {role: mysql,tags: ["mysql","db"]}
- {role: nginx,tage: ["nginx","web"]}

[root@centos8-1 ansible]$ansible-playbook  mysql_roles.yml 

 

 

 

posted @ 2020-08-16 15:33  练习生天泽  阅读(274)  评论(0编辑  收藏  举报