ansible批量部署mysql

來源:互聯網
上載者:User

標籤:等於   line   chown   軟體包   date   檔案   服務   playbook   word   

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 -yid mysql &> /dev/null####如果執行id mysql輸出為0 那麼就是執行正確建立mysql使用者if [ $? -ne 0 ];then useradd 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 ];then echo "cmake error!" exit 1fi####判斷執行成功,繼續往下走make && make installif [ $? -ne 0 ];then echo "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 ];then echo "install mysql is failed!" && /bin/falsefi/etc/init.d/mysqld start####如果mysql開啟失敗提示install mysql is failed! 否則繼續往下走if [ $? -ne 0 ];then echo "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 ];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 /ansibleansible-playbook web.yml --syntax-check  #檢查文法ansible-playbook web.yml  #執行

 

ansible批量部署mysql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.