天天看點

salt部署mysql資料庫

資料庫部署需要用到的格式:

1.init.sls這個檔案的作用是初始化引導檔案,相當于salt

在此目錄的安裝索引應用yaml格式

[[email protected] mysql]# cat init.sls

include:

- mysql.install #包括mysql下的install.sls

- mysql.conf #包括mysql下的conf.sls

2.檢視下/salt/mysql下的檔案

[[email protected] mysql]# ls

conf.sls files init.sls install.sls

3.mysql安裝需要分為配置檔案的下發,安裝包的下發以及存放檔案目錄等。

[[email protected] mysql]# cat 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
# mysql lns 
salt://mysql/files/mysqllns.sh:
  cmd.script:
      - env:
          - BATCH: 'yes'
      - require:
          - cmd: mysql_commpile

# 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 --add mysqld
         - /sbin/chkconfig --level 35 mysqld on
     - unless: /sbin/chkconfig --list mysqld
   service.running:
     - name: mysqld
     - enable: True
     - reload: True


mysql_passowrd:
 cmd.run:
   - name: 'mysqladmin -u root password "123456”

           

然後:

[[email protected] mysql]# cat install.sls 
mysql-dependencies:
  pkg.installed:
    - names:
        - cmake
        - ncurses-devel
        - libtool-ltdl-devel
        - bison
        - gcc
        - gcc-c++
        - openssl
        - openssl-devel
        - ncurses
        - ncurses-devel

#install source mysql
mysql_source:
  file.managed:
    - name: /home/mysql-5.6.22.tar.gz
    - unless: test -e /home/mysql-5.6.22.tar.gz
    - source: salt://mysql/files/mysql-5.6.22.tar.gz

#tar source mysql
extract_mysql:
  cmd.run:
    - cwd: /home
    - names:
        - tar xf mysql-5.6.22.tar.gz
        - chown root.root /home/mysql-5.6.22 -R
    - unless: test -d /home/mysql-5.6.22
    - require:
        - file: mysql_source

#useradd for mysql
mysql_user:
  user.present:
    - name: mysql
    - uid: 1024
    - createhome: False
    - gid_from_name: True
    - shell: /sbin/nologin
#mysql source install
mysql_commpile:
  cmd.run:
    - cwd: /home/mysql-5.6.22
    - names:
        - cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/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
    - require:
        - cmd: extract_mysql
        - pkg: mysql-dependencies
    - unless: test -d /usr/local/mysql
mysql_make:
  cmd.run:
    - cwd: /home/mysql-5.6.22
    - names:
        - make  
        - make install
    - require:
        - cmd: mysql_commpile
           

進入file目此處是存放需要下發到slave上的檔案及壓縮包以及腳本

[[email protected] mysql]# cd files/

[[email protected] files]# ls

conf.sh my.cnf my-slave.cnf mysql-5.6.22.tar.gz mysqld mysqllns.sh

[[email protected] files]#

然後用salt指令來部署

[[email protected] mysql]# salt-key -L | grep 192.168.10.71

vm_192.168.10.71

[[email protected] mysql]# salt vm_192.168.10.71 state.sls mysql

繼續閱讀