简介 针对mysql的sls编写
0 软件包推送部分
  tool_rsync:
     file.recurse:
        - source: salt://files/mysql
        - name: /data/soft/
        - user: root
        - group: root
        - dir_mode: 755
        - file_mode: 644
        - makedirs: True
        - backup: minion
        - include_enpty: True
1 环境部署部分->安装基础软件
  soft_install:
   pkg.installed:
    - pkgs: ['soft1','soft2]
2 软件安装部分->安装第三方工具
 rpm_install:
  cmd.run:
   - names: ['rpm -ivh ']
   - cwd: /data/soft/
   - require:
   - file: tool_rsync
3 旧环境清理
  env_client
    cmd.run:
     - names: ['mv data data_bak','rm -rf /etc/my.cnf']
4 mysql安装
  mysql_install:
    cmd.run:
  {% if pillar["version"] == '5.6' %}
  - names: ['拷贝配置文件','安装软件','数据库初始化]
 {% elif pillar["version"] == '5.7' %}
 - names: ['拷贝配置文件','安装软件','数据库初始化]
 {% else %}
 - names: ['echo "aaa"']
 {% endif %}
 - cwd: /data/soft/
 - require:
   - file: tool_rsync
5 配置文件定制
 mysql_auto:
  cmd.run:
   - names: ['/bin/sh init.sh']//init.sh包含着定制my.cnf/插入监控等一系列的操作内容
   - cwd: /data/soft/
6 mysql启动+创建用户
 mysql_start:
  cmd.run:
   - names: ['nohup /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf > /dev/null 2>&1 &','sleep 10','/bin/sh sql.sh']//启动mysql和创建用户操作
   - cwd: /data/soft/
7 添加计划任务
 mysql_cron:
  cron.present:
  - name: /data/soft/lepus_slowquery.sh
  - identifier: Reno_crontest
  - comment: Salt_crontest
  - user: root
  - minute: '*/5'

8 总结

1 mysql启动一定要进行改造,自带的mysqld会导致salt挂起,需要改

2 salt利用pillar进行版本和其他角色的定制

3 制定好各种依赖关系

05-11 22:20