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.35.tar.gz dest=/tmp/mysql-5.6.35.tar.gz
- name: copy install_script to client
  copy: src=mysql_install.sh dest=/tmp/mysql_install.sh owner=root group=root mode=755
- 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 0 ];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.35.tar.gz
cd mysql-5.6.35
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql -DMYSQL_DATADIR=$DBDIR -DMYSQL_UNIX_ADDR=$DBDIR/mysql.sock -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=1

####判断如果以上执行结果不等于0,说明执行失败,退出!
if [ $? != 0 ];then
 echo "cmake error!"
 exit 1
fi

####判断执行成功,继续往下走
make && make install
if [ $? -ne 0 ];then
 echo "install mysql is failed!" && /bin/false
fi
sleep 2

####做软连接
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  #执行
时间: 2024-10-05 06:32:22

ansible批量部署mysql的相关文章

自动化运维Ansible批量部署服务+shell脚本批量推送公钥

一.概述分析 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护会使得工作效率低下.这时,部署自动化运维就可以尽可能安全.高效地完成这些工作.一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的ABem程序来完成管理功能,如: Puppet.Func. Zabbix等:另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如: Ansible. Fabric等. - 下面介绍几款功能类似的自动化运

Centos6.5利用RubyGems的fpm制作zabbix_agent的rpm包,并使用ansible批量部署

一. 搭建rpm包制作环境 安装gcc [[email protected] ~]# yum install gcc 安装make [[email protected] ~]# yum install make 安装ruby源(ruby版本必须要在1.9.3以上,centos自带的是1.8的版本,需要自己编译安装) [[email protected] ~]# yum install ruby rubygems ruby-devel 查看ruby源 [[email protected] ~]# 

Ansible 批量部署平台

Ansible 介绍以及基本命令 Ansible 简介:Ansible 和目前市面上一些其他的项目管理工具有很大的不同,它的设计初衷就是为了更方便.快捷的进行配置管理.它易于安装和实用,语法也非常简单易学.可以使用 Ansible 将平常复杂的配置工作变得简单.更加标准化和更容易控制.Ansible 只需要在一台普通的服务器上运行即可,不需要在被管控的服务器上安装客户端,因为它是基于 SSH 的.Linux 服务器离不开 SSH,所以 Ansible 不需要为配置工作添加额外的支持,可通过命令行

ansible批量部署服务

一.ansible 1.概念ansible是一个基于Python开发的自动化运维工具!其功能实现基于SSH远程连接服务!ansible可以实现批量系统配置.批量软件部署.批量文件拷贝.批量运行命令等功能2.网址:http://docs.ansible.com/ 官网3.特点不需要单独安装客户端(no agents),基于系统自带的sshd服务,sshd就相当于ansible的客户端.不需要服务端(no servers).需要依靠大量的模块实现批量管理.4.优点:(1) ansible软件特点:·

ansible批量部署tomcat

1.1 构建目录结构 此操作是安装nginx+mysql+tomcat+db的目录结构,可以参考一下,不错~ mkdir -p /ansible/roles/{nginx,mysql,tomcat,db}/{defaults,files,handlers,meta,tasks,templates,vars} defaults 默认寻找路径 tasks 存放playbooks路径 files 存放文件和脚本包,copy模块文件搜索路径 templates 模版存放路径 handlers notif

ansible批量部署(一)

自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署->启动服务->测试->加入集群 1.Ansible基本概述ansible是一个配置管理系统configuration management system你只需要可以使用ssh访问你的服务器或设备就行 Ansible能做什么可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作. Ansibl

Ansible批量安装mysql数据

1.构建安装目录 mkdir -p /ansible/roles/mysql/{defaults,files,handlers,meta,tasks,templates,vars} defaults 默认寻找路径 tasks 存放playbooks路径 files 存放文件和脚本,copy模块文件搜索路径 templates 模版存放路径 handlers notify调用部分playbook存放路径 vars roles内变量存放路径 2.文件目录结构 3.playbooks & Shell

ansible批量部署nginx

1.1 将nginx的安装包,和安装脚本copy到客户端,并安装脚本 vim /ansible/roles/nginx/tasks/main.yml - name: copy nginx_tar_gz to client copy: src=nginx-1.8.0.tar.gz dest=/tmp/nginx-1.8.0.tar.gz - name: copy install_shell to client copy: src=install_nginx.sh dest=/tmp/install

ansible批量部署模块(二)

回顾:Ansible: 无需客户端程序 只要有SSH 模块化 ansible帮助工具ansible-doc 模块名ansible-doc 模块名 -s 列出该模块的所有选项ansible-doc -l 列出所有模块 6.group组模块 - gid 设置组id = name 需要管理的组名 - state 执行状态,absent 删除 present 创建(默认) 例1:创建组名www,并设置gid为666 [[email protected] ~]# ansible oldboy -m gro