資料庫部署需要用到的格式:
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