暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ansible一键安装mysql并创建账户、数据库

运维小分享 2020-12-09
2054

.部署图

.文件目录结构


1、配置主机和总入口文件

vim hosts

[mysql]

192.168.100.14

vim site.yml

---

- hosts:all

 remote_user:root

 roles:

   - base

   - mysql

或者

---

- hosts:mysql

 remote_user:root

 roles:

   - base

   - mysql

2、base角色,配置Yum源,除了163yum源,可自行下载其他的yum源

也可以在ansible主机上下载到目录files,通过copy到目标主机上

vim main.yml

---

- name: wget 163yum

  get_url:dest=/etc/yum.repos.d/ 

  url=http://mirrors.163.com/.help/CentOS6-Base-163.repo


3、mysql角色,在files目录下存在my.cnf主配置文件和设置mysql密码的脚本文件setpassword.sh

cat my.cnf 就是mysql配置文件,自行复制

vim setpassword.sh #mysql8需要把root用户密码策略更改

#!/bin/sh

pwd=`awk '/temporary password/{print $NF}' var/log/mysqld.log`

mysql -uroot -p${pwd} -S /var/lib/mysql/mysql.sock -e

"set global validate_password.policy=0;

set global validate_password.length=1;

set password='123456';

flush privileges;

use mysql;

create user 'root'@'%' identified with mysql_native_password by '123456';

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

grant all privileges on *.* to 'root'@'%' with grant option;

flush privileges;"

vim main.yml

---

- name: wget mysql8 rpm

 get_url: url=https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm dest=/usr/local/

- name: rpm mysql

 shell: rpm -qa | grep mysql || rpm -ivh /usr/local/mysql80-community-release-el7-3.noarch.rpm

- name: yum install mysql-server,MySQL-python

 yum: name={{item}} state=present

 with_items:

       - MySQL-python

       - mysql-server

- name: start mysqld service

 service: name=mysqld state=restarted enabled=yes

- name: copy my.cnf

 copy: src=my.cnf dest=/etc/my.cnf

- name: restart mysqld

 service: name=mysqld state=restarted

- name: 获取mysql初始密码

 shell: cat /var/log/mysqld.log | grep password | awk -F ":" '{ print $4}'

 register: pwd

- debug: msg={{pwd.stdout}}

- name: copy setpassword.sh

 copy: src=setpassword.sh dest=/root/setpassword.sh mode=777

- name: sh password.sh

 shell: sh /root/setpassword.sh

- name: create database

 mysql_db:

   login_host: "192.168.100.14"

   login_user: "root"

   login_password: "123456"

   login_port: "3306" #端口可以省略

   name: "{{database}}"

   state: "present"

- name: create user

 mysql_user:

   login_host: "192.168.100.14"

   login_user: "root"

   login_password: "123456"

   login_port: "3306" #端口可以省略

   name: "{{user}}"

   password: "{{password}}"

   priv:  "{{database}}.*:ALL,GRANT"

   host: "%"

   state: "present"

4、group_vars变量目录

vim all #远程主机密码文件

---

ansible_ssh_pass: centos

vim mysql #新建账户、数据库文件

---

user: mysql

password: mysql

database: mysqldata


文章转载自运维小分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论