数据库部署需要用到的格式:
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