ansible批量部署mysql
1.1 将mysql软件包同步到客户端服务器,做安装前期准备
Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下
vim /ansible/roles/mysql/tasks/main.yml - name: copy mysql_tar_gz to client
copy: src=mysql-5.6..tar.gz dest=/tmp/mysql-5.6..tar.gz
- name: copy install_script to client
copy: src=mysql_install.sh dest=/tmp/mysql_install.sh owner=root group=root mode=
- name: install mysql
shell: /bin/bash /tmp/mysql_install.sh
1.2 创建mysql 安装脚本
/ansible/roles/mysql/files/mysql_install.sh #!/bin/bash ####定义mysql数据库路径,和mysql登录密码
DBDIR='/application/mysql/data'
PASSWD='bingoclo123' ####判断数据目录是否存在如果不存在递归创建目录
[ -d $DBDIR ] || mkdir $DBDIR -p ####安装mysql组件
yum install cmake make gcc-c++ bison-devel ncurses-devel -y
id mysql &> /dev/null ####如果执行id mysql输出为0 那么就是执行正确创建mysql用户
if [ $? -ne ];then
useradd mysql -s /sbin/nologin -M
fi ####赋予数据目录权限
chown -R mysql.mysql $DBDIR ####切换到tmp目录,解压mysql,编译安装mysql到/application/mysql
cd /tmp/
tar xf mysql-5.6..tar.gz
cd mysql-5.6.
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql \
-DMYSQL_DATADIR=$DBDIR \
-DMYSQL_UNIX_ADDR=$DBDIR/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE= \
-DWITH_READLINE= \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EMBEDDED_SERVER= ####判断如果以上执行结果不等于0,说明执行失败,退出!
if [ $? != ];then
echo "cmake error!"
exit
fi ####判断执行成功,继续往下走
make && make install
if [ $? -ne ];then
echo "install mysql is failed!" && /bin/false
fi
sleep ####做软连接
ln -s /application/mysql/bin/* /usr/bin/ ####复制mysql配置文件
cp -f /application/mysql/support-files/my-default.cnf /etc/my.cnf ####复制mysql启停脚本到init.d
cp -f /application/mysql/support-files/mysql.server /etc/init.d/mysqld ####执行权
chmod 700 /etc/init.d/mysqld ####初始化mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=$DBDIR --user=mysql ####如果mysql初始化失败提示install mysql is failed! 否则/etc/init.d/mysqld start
if [ $? -ne 0 ];then
echo "install mysql is failed!" && /bin/false
fi
/etc/init.d/mysqld start ####如果mysql开启失败提示install mysql is failed! 否则继续往下走
if [ $? -ne 0 ];then
echo "install mysql is failed!" && /bin/false
fi ####开机自启
chkconfig --add mysqld
chkconfig mysqld on
/application/mysql/bin/mysql -e "update mysql.user set password=password('$PASSWD') where host='localhost' and user=
'root';"
/application/mysql/bin/mysql -e "update mysql.user set password=password('$PASSWD') where host='127.0.0.1' and user=
'root';"
/application/mysql/bin/mysql -e "delete from mysql.user where password='';"
/application/mysql/bin/mysql -e "flush privileges;"
if [ $? -eq 0 ];then
echo "ins_done"
fi
1.3 Ps:执行ansible 命令
1.3.1 因为这次操作只针对mysql进行部署,所以注释掉其他服务
- hosts: bgo
remote_user: root
roles:
# - nginx
- mysql
# - tomcat
# - db
~
1.3.2 安装命令
cd /ansible
ansible-playbook web.yml --syntax-check #检查语法
ansible-playbook web.yml #执行
ansible批量部署mysql的更多相关文章
- Ansible批量部署工具
Ansible:自动化运维工具 你需要在一台机器上yum install 一个包,这时候有一个需求,比如现在有5台机同时需要装apache这个包,那么100台呢,ssh上去就太慢了,这时候就借助到了a ...
- 利用ansible批量部署zabbix-agent
应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...
- ansible 批量部署准备工作
Ansible:自动化运维工具,基于Python开发 功能{ 批量系统配置 批量程序部署 批量运行命令等等 } 准备工作: 一.操作主机安装epel源 和 ansible工具 yum -y insta ...
- ansible批量部署tomcat
1.1 构建目录结构 此操作是安装nginx+mysql+tomcat+db的目录结构,可以参考一下,不错~ mkdir -p /ansible/roles/{nginx,mysql,tomcat,d ...
- ansible批量部署(一)
自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署-> ...
- Ansible批量部署工具的安装
1.系统安装gcc,以及python2.6以上(2.6.8): 第一种比较简单的安装方法: 1)直接yum install -y ansible; 2)然后更改配置,/etc/ansible/ansi ...
- ansible批量部署nginx
1.1 将nginx的安装包,和安装脚本copy到客户端,并安装脚本 vim /ansible/roles/nginx/tasks/main.yml - name: copy nginx_tar_gz ...
- ansible批量部署模块(二)
回顾:Ansible: 无需客户端程序 只要有SSH 模块化 ansible帮助工具ansible-doc 模块名ansible-doc 模块名 -s 列出该模块的所有选项ansible-doc -l ...
- Jenkins +svn +maven +tomcat+ ansible 自动化批量部署
Jenkins +svn +maven +tomcat+ ansible 自动化批量部署 一.部署svn yum install subversion 先创建目录 mkdir /home/svn 创建 ...
随机推荐
- codeblocs的安装使用
安装后,上面菜单栏 点击“Setting --> Compiler” "Creat a new project"
- python 清空文件夹
#!/usr/bin/env python# -*- coding:utf-8 -*-import os def del_file(path): for i in os.listdir(path): ...
- 无旋treap hfq-treap
怎么代码都这么长... #include<iostream> #include<stdio.h> #include<string.h> #include<al ...
- Echarts Map地图下钻至县级
**准备工作:**1.首先使用vue-cli的脚手架生成vue项目. 2.然后使用npm安装echartsnpm install echarts -S 3.安装完后再mian.js中挂载到vue的实例 ...
- java面向接口编程之制定标准和简单工厂模式
制定一个标准,让别人去实现或者说满足它! Eg: interface USB{//定义USB标准 void useUSB();//USB有使用USB的行为 } 简单工厂模式 构建一个工厂出来,在里面进 ...
- word 筛选过的网页,网页,单个文件网页
1)筛选过的网页:保存后会生成 xxx.htm和xxx.files文件夹,删除了还原成Word文档所需的格式标记和功能,也就是说存为纯网页了,文件尺寸小:2)网页:保存后会生成 xxx.htm和xxx ...
- Python--day38--JoinableQueue解决生产者消费者模型
############################# # 在消费者这一端: #每次获取一个数据 #处理一个数据 #发送一个记号:标志一个数据被处理成功 #在生产者这一端: #每一次生成一个数据 ...
- 解决:javac: 无效的目标发行版: 1.8
原 解决:javac: 无效的目标发行版: 1.8 2017年06月14日 16:21:12 代码也文艺 阅读数 44795 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
- windows命令行下redis读取中文字符乱码
我在eclipse上对redis进行了一个操作,添加了一个中文字符串进去,可以看到是添加成功了的 但是在命令行中读取的时候却成了乱码,如下图所示 这是因为windows命令行的编码是gbk 可以通过如 ...
- H3C 动态路由协议在协议栈中的位置