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):mysql8https://www.cndba.cn/hbhe0316/article/4829https://www.cndba.cn/hbhe0316/article/4829

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

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

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

https://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:本次安装定义的变量

https://www.cndba.cn/hbhe0316/article/4829
https://www.cndba.cn/hbhe0316/article/4829
https://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

ansible安装mysql 8.0.0.20相关推荐

  1. centos7源码安装mysql报错_CentOS7 下源码安装MySQL数据库 8.0.11

    本文主要向大家介绍了CentOS7 下源码安装MySQL数据库 8.0.11,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. CentOS7 下源码安装MySQL 8.0.11 系 ...

  2. ansible 安装 mysql 案例记录

    文章目录 ansible 安装 mysql 案例记录 ansible 安装 mysql 案例记录 本次案例参考 二进制安装mysql 以下 yml 文件仍有很多不完善的地方,后续再继续修改 --- - ...

  3. 本地安装MySQL数据库-8.0.29版本(踩坑版)

    目录 1.下载数据库网址: 2.选择要下载的版本: 3.安装MySQL 3.1安装报错:找不到兼容的服务器 4.配置环境变量 5.验证是否安装.配置环境变量成功 6.使用navicat创建数据库 6. ...

  4. ansible安装Mysql 5.7.30

    ansible-playbook配置思路: 1.通过vars中的main.yml配置变量,主要为源码存放目录及安装目录 2.通过tasks中的copy.yml将源码文件传输到异地服务器上源码存放目录 ...

  5. 【Linux】【服务器】 CentOS7下安装MySQL(版本8.0)详细过程步骤

    一.检查是否安装过mysql [Linux][服务器]CentOS7下卸载MySQL详细过程步骤 二.下载Linux下的Mysql包,打开Mysql官网 1.MySQL官网 2.滑到最后,点击MySQ ...

  6. mac安装mysql8.0.11_【MySQL】Mac安装MySQL(V8.0.15)蹚坑记录

    这个版本还是挺冷门的,我照着网上的教程搞了好几个小时都老是提示密码错误,终于是有了结果.为避免日后遗忘,以下是我给自己留的存档,非任何原创学术技术研究. 1.下载dmg,之后正常安装. 在选择哪种密码 ...

  7. Linux简单安装Mysql+Apach+PHP+phpMyAdmin

    Linux简单安装Mysql+Apach+PHP+phpMyAdmin 2008年06月02日 星期一 上午 01:00 从网上看到许多Apache+Mysql+PHP的安装文档,但有的总是会有写错误 ...

  8. mysql0xc00007b_安装MySQL被提示缺少msvcr120.dll,msvcp120.dll或提示0xc00007b错误

    踩坑经历: 我的电脑昨天重装了win10系统,在安装MySQL时被提示缺少msvcr120.dll,我去下载msvcr120.dll后放入System32中,又被提示缺少msvcp120.dll,然后 ...

  9. centos6.5 mysql 远程访问_CentOS 6.5 中安装 Mysql 5.6,并远程连接Mysql

    ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.在安装CentOS时,若选择的是Basic Server(可支持J2EE开发),则新安装好的CentOS系统中默认是已经安装了一个mysq ...

最新文章

  1. Vue 子父组件通信小问题
  2. 云网融合 — 基于 SD-DCI 的云间网络融合
  3. 云炬Qtpy5开发与实战笔记 1开发第一个桌面应用Hello World
  4. Python 学习日记 第四天
  5. CF838C-Future Failure【dp,子集卷积】
  6. matlab 实验5,MATLAB实验5报告.doc
  7. 基于Spring Security的认证授权_连接数据库查询权限_Spring Security OAuth2.0认证授权---springcloud工作笔记131
  8. H5第三方专业支付接口、安全稳定、费率优惠
  9. 福禄克OTDR系列OFP-100-Q光纤测试仪
  10. ux设计_UX设计趋势回顾展2019
  11. 信息系统监理师题库_软考信息系统监理师题库
  12. linux下配置mysql_linux下安装mysql
  13. yuv 格式之 Semi Planar和Planar
  14. 当AI入职FBI,克格勃直呼内行
  15. 三元赫尔德不等式_赫尔德不等式
  16. 如何应对外包公司(文思海辉)的Python后端面试
  17. 逆向随笔——对可以过TP的注入驱动的一次逆向
  18. 我好菜啊啊啊啊啊啊a
  19. 表单验证 lay-verify=‘required‘ 无效
  20. 如何使用ArcGIS生成山谷线

热门文章

  1. Access-Control-Allow-Origin VUE本地调试跨域问题使用nginx解决
  2. 如何测试麦克风和扬声器(耳机)
  3. 圈1到圈50打不出来,直接复制
  4. STM32F103C8T6学习02 将中文、英文、数字、带符号数、字符串显示到0.96寸IIC协议的OLED屏幕上
  5. 嗯嗯嗯----复杂网络分析(二)
  6. MySQL外键(详解)
  7. 数论(四)——欧拉函数
  8. .vshost.exe是什么
  9. 第5节 Selenium 操作form表单
  10. Python 判断字符串是否包含中文汉字