首先准备 mysql 5.7 的二进制安装包和这个剧本放在同一目录下,然后var 变量里 ,可以自己定义mysql 5.7 的登录密码。
支持系统:centos 7 ,centos 8
---
- hosts: xiapi
vars:
- mysqlpass: Liu123
tasks:
- name: ready install
yum: name=libaio
- name: centos8 install ncurses-compat-libs
yum: name=ncurses-compat-libs
when: ansible_distribution_major_version == "8"
tags: yum
- name: create group
group: name=mysql gid=306 system=yes
- name: create user
user: name=mysql uid=306 group=mysql shell=/sbin/nologin system=yes create_home=no home=/data/mysql
- name: unarchive
unarchive: src=mysql-5.7.28-el7-x86_64.tar.gz dest=/usr/local owner=root group=root
- name: link
file: src=/usr/local/mysql-5.7.28-el7-x86_64 dest=/usr/local/mysql state=link
- name: change path
copy: content='PATH=/usr/local/mysql/bin:$PATH' dest=/etc/profile.d/mysql.sh
- name: clear dir
file: path=/data/mysql state=absent
tags: clear
- name: touch mysql.txt
file: path=/root/mysql.txt state=touch
- name: create database
shell: chdir=/usr/local/mysql/bin ./mysqld --initialize-insecure --user=mysql --datadir=/data/mysql > /root/mysql.txt
tags: init
- name: ready my.cnf
copy: src=my.cnf dest=/etc/my.cnf
- name: copy service
shell: cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- name: boot
shell: chkconfig --add mysqld
- name: start service
shell: service mysqld start
- name: change passwd
shell: /usr/local/mysql/bin/mysql -D mysql -e "update user set authentication_string=password('{{mysqlpass}}') where user='root';"
tags: changepasswd
- name: flush pri
shell: /usr/local/mysql/bin/mysql -e "flush privileges;"