fdsdff 发表于 2016-12-21 09:41:04

(八)saltstack项目实战_安装mysql

1.1安装mysql
2.2查看salt-master、salt-minion配置文件
# 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
# grep -Ev '^#|^$' /etc/salt/minion
master: 172.168.200.210
id: node2
log_file: /data/logs/salt/minion
2.3 查看salt mysql目录结构

# cd /data/etc/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文件

# cat top.sls
base:
'*':
    - mysql.init
# cd mysql/
# cat init.sls
include:
- mysql.install
- mysql.conf
# 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
   
# 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配置文件

# cd /data/etc/salt/mysql/files/
# cat my.cnf

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启动脚本添加下面路径
# cat mysqld
#!/bin/sh


basedir=/usr/local/mysql-5.6/
datadir=/usr/local/mysql-5.6/data/

2.7 模拟执行salt
1
# salt 'node2' state.highstatetest=True    -> 无报错即可


# salt 'node2' state.highstate   ->开始安装mysql

页: [1]
查看完整版本: (八)saltstack项目实战_安装mysql