1.1安装mysql
2.2查看salt-master、salt-minion配置文件
[root@node1 ~]# grep -Ev '^#|^$' /etc/salt/master
interface: 0.0.0.0
file_roots:
base:
- /data/etc/salt
prod:
- /data/etc/salt/prod
log_file: /data/logs/salt/master
[root@node2 ~]# grep -Ev '^#|^$' /etc/salt/minion
master: 172.168.200.210
id: node2
log_file: /data/logs/salt/minion
2.3 查看salt mysql目录结构
[root@node1 ~]# cd /data/etc/salt
[root@node1 salt]# tree mysql/
mysql/
|-- conf.sls -> mysql salt配置文件
|-- files
| |-- my.cnf -> mysql配置文件
| |-- mysql-5.6.32.tar.gz -> mysql软件包
| `-- mysqld -> mysql启动脚本
|-- init.sls -> salt初始化文件
`-- install.sls -> mysql install文件
2.4 编写 mysql sls文件
[root@node1 salt]# cat top.sls
base:
'*':
- mysql.init
[root@node1 salt]# cd mysql/
[root@node1 mysql]# cat init.sls
include:
- mysql.install
- mysql.conf
[root@node1 mysql]# cat install.sls
#mysql pkg.install
mysql_pkg:
pkg.installed:
- names:
- gcc
- gcc-c++
- autoconf
- automake
- openssl
- openssl-devel
- zlib
- zlib-devel
- ncurses-devel
- libtool-ltdl-devel
- cmake
#install source mysql
mysql_source:
file.managed:
- name: /usr/local/src/mysql-5.6.32.tar.gz
- unless: test -e /usr/local/src/mysql-5.6.32.tar.gz
- source: salt://mysql/files/mysql-5.6.32.tar.gz
#tar source mysql
extract_mysql:
cmd.run:
- cwd: /usr/local/src
- names:
- tar zxf mysql-5.6.32.tar.gz
- chown -R root:root /usr/local/src/mysql-5.6.32
- unless: tests -d /usr/local/src/mysql-5.6.32
- 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:
- name: cd /usr/local/src/mysql-5.6.32 && cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6 -DMYSQL_DATADIR=/usr/local/mysql-5.6/data -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6/data/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH-BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGING=1 -DWITH_FAST_MUTEXES=1 -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFIL=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=0 && make && make install && /usr/local/mysql-5.6/scripts/mysql_install_db --basedir=/usr/local/mysql-5.6/ --datadir=/usr/local/mysql-5.6/data/ --user=mysql
- require:
- cmd: extract_mysql
- pkg: mysql_pkg
- unless: test -d /usr/local/mysql-5.6
#mysql initialize
#mysql_initialize:
# cmd.run:
# - cwd: /usr/local/mysql-5.6/scripts/
# - names:
# - ./mysql_install_db --basedir=/usr/local/mysql-5.6/ --datadir=/usr/local/mysql-5.6/data/ --user=mysql
[root@node1 mysql]# cat conf.sls
include:
- mysql.install
#mysql for config
mysql_cnf:
file.managed:
- name: /usr/local/mysql-5.6/my.cnf
- user: root
- mode: 755
- source: salt://mysql/files/my.cnf
#myql server
mysql_service:
file.managed:
- name: /etc/init.d/mysqld
- source: salt://mysql/files/mysqld
- user: root
- mode: 755
cmd.run:
- names:
- /sbin/chkconfig --add mysqld
- /sbin/chkconfig --level 35 mysqld on
- unless: /sbin/chkconfig --list mysqld
2.5 mysql配置文件
[root@node1 ~]# cd /data/etc/salt/mysql/files/
[root@node1 files]# cat my.cnf
[mysqld]
socket=/usr/local/mysql-5.6/data/mysql.sock
datadir=/usr/local/mysql-5.6/data
symbolic-links=0
log-error=/var/log/mysql_error.log
pid-file=/usr/local/mysql-5.6/data/mysqld.pid
slow-query-log-file = /var/log/mysql_slow_querys.log
skip-name-resolve
skip-grant-tables
2.6 mysql启动脚本添加下面路径
[root@node1 files]# cat mysqld
#!/bin/sh
basedir=/usr/local/mysql-5.6/
datadir=/usr/local/mysql-5.6/data/
2.7 模拟执行salt
1
[root@node1 salt]# salt 'node2' state.highstate test=True -> 无报错即可
[root@node1 salt]# salt 'node2' state.highstate ->开始安装mysql