1.1 将mysql软件包同步到客户端服务器,做安装前期准备
Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下
vim ansible/roles/mysql/tasks/main.yml- name: copy mysql_tar_gz to clientcopy: src=mysql-5.6.35.tar.gz dest=/tmp/mysql-5.6.35.tar.gz- name: copy install_script to clientcopy: src=mysql_install.sh dest=/tmp/mysql_install.sh owner=root group=root mode=755- name: install mysqlshell: 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 -yid mysql &> dev/null####如果执行id mysql输出为0 那么就是执行正确创建mysql用户if [ $? -ne 0 ];thenuseradd mysql -s sbin/nologin -Mfi####赋予数据目录权限chown -R mysql.mysql $DBDIR####切换到tmp目录,解压mysql,编译安装mysql到/application/mysqlcd tmp/tar xf mysql-5.6.35.tar.gzcd mysql-5.6.35cmake . -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 ];thenecho "cmake error!"exit 1fi####判断执行成功,继续往下走make && make installif [ $? -ne 0 ];thenecho "install mysql is failed!" && bin/falsefisleep 2####做软连接ln -s application/mysql/bin/* /usr/bin/####复制mysql配置文件cp -f /application/mysql/support-files/my-default.cnf /etc/my.cnf####复制mysql启停脚本到init.dcp -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 startif [ $? -ne 0 ];thenecho "install mysql is failed!" && /bin/falsefi/etc/init.d/mysqld start####如果mysql开启失败提示install mysql is failed! 否则继续往下走if [ $? -ne 0 ];thenecho "install mysql is failed!" && /bin/falsefi####开机自启chkconfig --add mysqldchkconfig 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 ];thenecho "ins_done"fi
1.3 Ps:执行ansible 命令
1.3.1 因为这次操作只针对mysql进行部署,所以注释掉其他服务
- hosts: bgoremote_user: rootroles:# - nginx- mysql# - tomcat# - db~
1.3.2 安装命令
cd /ansibleansible-playbook web.yml --syntax-check #检查语法ansible-playbook web.yml #执行
文章转载自Linux Windows server学习交流,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




