通過saltstack源碼安裝mysql

來源:互聯網
上載者:User

標籤:saltstack

tree /srv/salt

/srv/salt

|-- mysql

|   |-- conf.sls

|   |-- files

|   |  |-- conf.sh

|   |  |-- my.cnf

|   |  |-- mysql-5.5.33.tar.gz

|   |  |-- mysqld

|   |  `-- mysqllns.sh

|   |-- init.sls

|   `-- install.sls

`-- top.sls

 

cat /srv/salt/top.sls

base:

  ‘*‘:

    - tree

 

  mysqldb:

    - match: nodegroup

    - mysql

 

cat /etc/salt/master |grep -v"^$" |grep -v "#"

auto_accept: True

file_roots:

  base:

    - /srv/salt

nodegroups:

  mysqldb: ‘[email protected]_server_name‘

 

cat /srv/salt/mysql/init.sls

include:

  - mysql.install

  - mysql.conf

 

cat /srv/salt/mysql/init.sls

include:

  - mysql.install

  - mysql.conf


cat /srv/salt/mysql/install.sls

#install source mysql

mysql_source:

  file.managed:

    - name:/home/mysql-5.5.33.tar.gz

    - unless: test -e/home/mysql-5.5.33.tar.gz

    - source:salt://mysql/files/mysql-5.5.33.tar.gz

#tar source mysql

extract_mysql:

  cmd.run:

    - cwd: /home

    - names:

        - tar xfmysql-5.5.33.tar.gz

        - chown root:root/home/mysql-5.5.33 -R

    - unless: test -d/home/mysql-5.5.33

    - require:

        - file: mysql_source

#useradd for mysql

mysql_user:

  user.present:

    - name: mysql

    - uid: 1024

    - createhome: True

    - gid_from_name: True

    - shell: /sbin/nologin

#mysql pkg.install

mysql_pkg:

  pkg.installed:

    - pkgs:

      - gcc

      - gcc-c++

      - autoconf

      - automake

      - openssl

      - openssl-devel

      - zlib

      - zlib-devel

      - ncurses-devel

      - libtool-ltdl-devel

      - cmake

#mysql source install

mysql_commpile:

  cmd.run:

    - cwd: /home/mysql-5.5.33

    - names:

        - cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATTON=utf8_cuicode_ci  -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1  -DENABLED_LOCAL_INFILE=1-DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_DEBUG=0

        - make

        - make install

    - require:

        - cmd: extract_mysql

        - pkg: mysql_pkg

    - unless: test -d/usr/local/mysql

 

cat /srv/salt/mysql/conf.sls

#include:

#  - mysql.install

# mysql for config

mysql_cnf:

  file.managed:

    - name: /etc/my.cnf

    - user: root

    - mode: 755

    - source:salt://mysql/files/my.cnf

# mysql init

salt://mysql/files/conf.sh:

  cmd.script:

      - env:

          - BATCH: ‘yes‘

      - require:

          - cmd: mysql_commpile

          - pkg: mysql_pkg

salt://mysql/files/mysqllns.sh:

  cmd.script:

      - env:

          - BATCH: ‘yes‘

      - require:

          - cmd: mysql_commpile

          - pkg: mysql_pkg

# mysql server

mysql_service:

   file.managed:

     - name: /etc/init.d/mysqld

     - user: root

     - mode: 755

     - source: salt://mysql/files/mysqld

   cmd.run:

     - names:

         - /sbin/chkconfig --addmysqld

         - /sbin/chkconfig --level235 mysqld on

     - unless: /sbin/chkconfig--list mysqld

   service.running:

     - name: mysqld

     - enable: True

     - reload: True

 

cat/srv/salt/mysql/files/conf.sh

#!/bin/bash

/usr/local/mysql/scripts/mysql_install_db --user=mysql--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

 

cat/srv/salt/mysql/files/mysqllns.sh

#!/bin/bash

#lns

ln -sv /usr/local/mysql/bin/mysql /usr/bin

ln -sv /usr/local/mysql/bin/mysqladmin /usr/bin/

ln -sv /usr/local/mysql/bin/mysqldump /usr/bin/

ln -sv /var/lib/mysql/mysql.sock /tmp/mysql.sock

#mysq competence

/bin/chown -R mysql.mysql /usr/local/mysql/ && /bin/chown -Rmysql.mysql /usr/local/mysql/data/

 

另外3個檔案,

my.cnf是設定檔,參考標準的

mysql-5.5.33.tar.gz是源檔案

mysqld是服務指令檔,參考標準的。

 

最後在salt-master執行命令,可在minion完成自動安裝mysql,耗時10分鐘左右;如中間有錯誤,修改後再次執行,原先執行過的沒變的步驟不會再執行。

salt -N ‘mysqldb‘state.highstate


源碼安裝是最麻煩的,如果通過yum安裝會更加簡單。


本文出自 “8399200” 部落格,請務必保留此出處http://8409200.blog.51cto.com/8399200/1683754

通過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.