签到成功

知道了

CNDBA社区CNDBA社区

ansible安装mysql 8.0.0.20

2021-10-02 08:55 1178 0 原创 ansible
作者: hbhe0316

ansible-playbook配置思路:
1.通过vars中的main.yml配置变量,主要为源码存放目录及安装目录
2.通过tasks中的copy.yml将源码文件传输到异地服务器上源码存放目录
3.通过tasks中的install.yml调用模板mysql_install.sh,将mysql安装到变量中定义的安装目录
4.通过tasks中的main.yml调用copy模块和install模块
5.通过mysql.yml调用剧本(playbook):mysql8http://www.cndba.cn/hbhe0316/article/4829

http://www.cndba.cn/hbhe0316/article/4829
http://www.cndba.cn/hbhe0316/article/4829
http://www.cndba.cn/hbhe0316/article/4829

[root@master ansible]# cd /etc/ansible
[root@master ansible]# mkdir -p roles/mysql8/{files,handlers,meta,tasks,templates,vars}

[root@master ansible]# cd /etc/ansible
[root@master ansible]# cat mysql8.yml 
- hosts: dbservers
  remote_user: root
  gather_facts: False
  roles:
    - mysql8


[root@master mysql8]# pwd
/etc/ansible/roles/mysql8
[root@master mysql8]# tree
.
├── files
│   └── mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
├── handlers
├── meta
├── tasks
│   ├── copy.yml
│   ├── install.yml
│   └── main.yml
├── templates
│   └── mysql8install.sh
└── vars
    └── main.yml

说明:
files:存放需要同步到异地服务器的源码文件及配置文件;
handlers:当资源发生变化时需要进行的操作,若没有此目录可以不建或为空;
meta:角色定义可留空;
tasks:mysql安装过程成需要进行的执行的任务;
templates:用于执行mysql安装的模板文件,一般为脚本;
vars:本次安装定义的变量http://www.cndba.cn/hbhe0316/article/4829http://www.cndba.cn/hbhe0316/article/4829http://www.cndba.cn/hbhe0316/article/4829http://www.cndba.cn/hbhe0316/article/4829

http://www.cndba.cn/hbhe0316/article/4829
http://www.cndba.cn/hbhe0316/article/4829

[root@master mysql_install]# cat tasks/copy.yml 
- name: copy mysql source code to client
  copy: src={{mysql_version}}.tar.gz dest=/root/{{mysql_version}}.tar.gz owner=root group=root
- name: copy mysql install script to client
  template: src=mysql8install.sh dest=/root/mysql8install.sh owner=root group=root mode=0755
[root@master mysql_install]# cat tasks/install.yml 
- name: install mysql
  shell: /bin/sh /root/mysql8install.sh
[root@master mysql_install]# cat tasks/main.yml 
- include: copy.yml
- include: install.yml
[root@master mysql8]# cd /etc/ansible/roles/mysql8
[root@master mysql8]# cat templates/mysql8install.sh 
#!/bin/bash
start_time=$(date +%s)
#yum -y install gcc gcc-c++ openssl openssl-devel libaio libaio-devel  ncurses  ncurses-devel  >> /dev/null


tar xvf /root/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz  -C / >> /dev/null
mv  /mysql-8.0.20-linux-glibc2.12-x86_64  /mysql


# 创建数据库文件目录和创建日志目录
mkdir  /mysql/{data,log}


#创建mysql组和用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown  -R  mysql:mysql /mysql


#配置/etc/my.cnf
cat > /etc/my.cnf <<EOF
[mysqld]
port=3306
datadir=/mysql/data
log-error=/mysql/log/mysql-err.log
user=mysql
[client]
socket=/tmp/mysql.sock
EOF


#配置环境变量
echo "export PATH=$PATH:/mysql/bin"  >>  /etc/profile
source /etc/profile


#初始化数据库
/mysql/bin/mysqld  --initialize  --user=mysql  --basedir=/mysql --datadir=/mysql/data   >>  /dev/null


#制作启动文件
cp  /mysql/support-files/mysql.server  /etc/init.d/mysqld
sed  -i  's/^basedir=/basedir=//mysql/'  /etc/init.d/mysqld
sed  -i  's/^datadir=/datadir=//mysql//data/'  /etc/init.d/mysqld
chmod  755 /etc/init.d/mysqld


#启动mysql服务
/etc/init.d/mysqld start


#关闭mysql服务 
#/etc/init.d/mysqld stop
echo "#####mysql8安装完成#####"


#修改mysql登录密码
b=`grep  'temporary password' /mysql/log/mysql-err.log`
a=`echo ${b##*localhost:}`
echo $a

#创建/mysql/bin/mysql软连接,便于命令行直接执行mysql
ln  -s  /mysql/bin/mysql   /usr/bin/mysql

#mysql -e 可以直接在命令行执行命令,wwwwww是设定的新密码
mysql -uroot -p"${a}" -e  "ALTER USER 'root'@'localhost'  IDENTIFIED  BY 'wwwwww'"  --connect-expired-password
echo  "#####mysql8密码修改成功#####"



end_time=$(date +%s)
cost_time=$((end_time - start_time))
使用ansible安装
[root@master ansible]# cd /etc/ansible
[root@master ansible]# ansible-playbook /etc/ansible/mysql8.yml

版权声明:本文为博主原创文章,未经博主允许不得转载。

ansible

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:1040164次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ