標籤:saltstack mysql 自動化營運
簡介:
SaltStack是一個伺服器基礎架構集中化管理平台,具備組態管理、遠程執行、監控等功能,一般可以理解為簡化版的puppet和加強版的func。SaltStack基於Python語言實現,結合輕量級訊息佇列(ZeroMQ)與Python第三方模組(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)構建。
最近工作比較閑,所以繼續學習saltstack,今天就用源碼來安裝Mysql資料庫,學saltstack還是得多實踐,廢話不多說,上乾貨。
實驗環境:
Master: www.master.com 10.0.4.52 Centos6.5Slave: www.slave.com 10.0.4.53 Centos6.5
開始部署:
# cat top.sls base: ‘*‘: - init.install - mysql.install
目錄結構:
# tree init/init/└── install.sls #主要安裝mysql資料庫需要的依賴庫。# tree mysql/ #檔案內容下面會給出。mysql/├── init.sh├── install.sls├── my.cnf #mysql的主設定檔,自己根據要求來配置。├── mysql-5.6.14.tar.gz└── mysqld #mysql的啟動指令碼,即是/etc/init.d/mysqld。0 directories, 5 files
初始化設定檔:
# cat init/install.sls pkg-init: pkg.installed: - names: - gcc - gcc-c++ - glibc - make - autoconf - libjpeg-turbo - libjpeg-turbo-devel - libpng - libpng-devel - freetype - freetype-devel - libxml2 - libxml2-devel - zlib - zlib-devel - libcurl - libcurl-devel - openssl - openssl-devel - swig - cmake - ncurses - ncurses-devel - libtool-ltdl-devel
安裝mysql主設定檔:
# cat mysql/install.slsinclude: - init.installmysql-source-install: file.managed: - name: /usr/local/src/mysql-5.6.14.tar.gz - source: salt://mysql/mysql-5.6.14.tar.gz - user: root - group: root - mode: 755 cmd.run: - name: cd /usr/local/src/ && tar xf mysql-5.6.14.tar.gz && cd mysql-5.6.14 && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql5.6/ -DMYSQL_DATADIR=/usr/local/webserver/mysql5.6/data -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci && make && make install - require: - file: mysql-source-install - unless: test -d /usr/local/webserver/mysql5.6mysql-init: file.managed: - name: /usr/local/src/init.sh - source: salt://mysql/init.sh - user: root - group: root - mode: 755 cmd.script: - name: /usr/local/src/init.sh - require: - cmd: mysql-source-installmysql-config: file.managed: - name: /usr/local/webserver/mysql5.6/my.cnf - source: salt://mysql/my.cnf - user: root - group: root - mode: 644 - require: - file: mysql-initmysql-service: file.managed: - name: /etc/init.d/mysqld - source: salt://mysql/mysqld - user: root - group: root - mode: 755 cmd.run: - name: chkconfig --add mysqld - unless: chkconfig --list |grep mysqld - require: - file: mysql-service service.running: - name: mysqld - require: - cmd: mysql-service
Mysql初始化指令碼:
# cat mysql/init.sh #!/bin/bashgroupadd mysql #saltstack也可以建立mysql使用者和組,這裡就直接讓它引用這個指令碼。useradd -r -g mysql mysqlln -s /usr/local/webserver/mysql5.6/bin/mysql /usr/bin/cd /usr/local/webserver/mysql5.6/scripts/ && ./mysql_install_db --basedir=/usr/local/webserver/mysql5.6/ --datadir=/usr/local/webserver/mysql5.6/data/rm -rf /etc/my.cnfcp -a /usr/local/webserver/mysql5.6/support-files/my-default.cnf /usr/local/webserver/mysql5.6/my.cnfchown mysql:mysql /usr/local/webserver/mysql5.6/ -R
好激動,要執行安裝了
#salt ‘www.slave.com‘ state.highstate #強烈建議執行這命令之前先執行salt ‘www.slave.com‘ state.highstate test=True來測試實驗是否成功。..........................................................---------- ID: mysql-service Function: cmd.run Name: chkconfig --add mysqld Result: True Comment: unless execution succeeded Started: 11:01:55.890689 Duration: 519.892 ms Changes: ---------- ID: mysql-service Function: service.running Name: mysqld Result: True Comment: Started Service mysqld Started: 11:01:56.414994 Duration: 2598.256 ms Changes: ---------- mysqld: TrueSummary-------------Succeeded: 32 (changed=5)Failed: 0-------------Total states run: 32
minion端查看:
# netstat -anlp |grep mysqldtcp 0 0 :::3306 :::* LISTEN 29890/mysqld unix 2 [ ACC ] STREAM LISTENING 897638 29890/mysqld /var/lib/mysql/mysql.sock
從上面看出mysql已經在minion端安裝成功了,之前各種報錯,各種調試。總算成功了。還是那句話,多動手。
本文出自 “Share Linux” 部落格,請務必保留此出處http://sharelinux.blog.51cto.com/11163444/1789443
Centos下用Saltstack源碼安裝Mysql