salt部署mysql數據庫

數據庫部署需要用到的格式:
1.init.sls這個文件的作用是初始化引導文件,相當於salt
在此目錄的安裝索引應用yaml格式
[root@bussiness-interface-ct mysql]# cat init.sls
include:
- mysql.install #包括mysql下的install.sls
- mysql.conf #包括mysql下的conf.sls
2.查看下/salt/mysql下的文件
[root@bussiness-interface-ct mysql]# ls
conf.sls files init.sls install.sls
3.mysql安裝需要分爲配置文件的下發,安裝包的下發以及存放文件目錄等。

[root@bussiness-interface-ct 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”

然後:

[root@bussiness-interface-ct 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上的文件及壓縮包以及腳本
[root@bussiness-interface-ct mysql]# cd files/
[root@bussiness-interface-ct files]# ls
conf.sh my.cnf my-slave.cnf mysql-5.6.22.tar.gz mysqld mysqllns.sh
[root@bussiness-interface-ct files]#

然後用salt命令來部署
[root@bussiness-interface-ct mysql]# salt-key -L | grep 192.168.10.71
vm_192.168.10.71
[root@bussiness-interface-ct mysql]# salt vm_192.168.10.71 state.sls mysql

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章