Centos下用Saltstack源碼安裝Mysql

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.