• saltstack上线环境篇(一)


    在11上安装mysql
    yum install mariadb mariadb-server -y
    在mysql的配置文件my.cnf中加入
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    配置完成后启动mysql
    第一次登陆mysql前设置密码:
    mysql_secure_installation

    在所有master和minion端的配置文件最后加入

    mysql.host: 172.16.1.11
    mysql.user: root
    mysql.pass: 123456
    mysql.db: salt
    mysql.port: 3306
    创建mysql库
    create database salt;
    创建表
    create table `salt_returns` (
    `fun` varchar(50) not null,
    `jid` varchar(255) not null,
    `return` mediumtext not null,
    `id` varchar(255) not null,
    `success` varchar(10) not null,
    `full_ret` mediumtext not null,
    `alter_time` TIMESTAMP default current_timestamp,
    key `id` (`id`),
    key `jid` (`jid`),
    key `fun` (`fun`)
    ) engine=Innodb default charset=utf8;

    在mater和minion端都安装MySQL-python

    salt '*' cmd.run 'yum install MySQL-python -y'
    在master端配置py脚本vim salt_event_to_mysql.py
     
    #!/bin/env python
    #coding=utf8
    
    import json
    import salt.config
    import salt.utils.event
    import MySQLdb
    
    __opts__ = salt.config.client_config('/etc/salt/master')
    
    conn = MySQLdb.connect(host=__opts__['mysql.host'], user=__opts__['mysql.user'], passwd=__opts__['mysql.pass'], db=__opts__['mysql.db'],port=__opts__['mysql.port'],charset='utf8')
    corsor = conn.cursor()
    
    event = salt.utils.event.MasterEvent(__opts__['sock_dir'])
    for eachevent in event.iter_events(full=True):
            ret = eachevent['data']
            if "salt/job/" in eachevent['tag']:
                    if ret.has_key('id') and ret.has_key('return'):
                            if ret['fun'] == "saltutil.find_job":
                                    continue
                            sql = '''INSERT INTO `salt_returns`
                                    (`fun`,`jid`,`return`,`id`,`success`,`full_ret`)
                                    VALUES (%s,%s,%s,%s,%s,%s)'''
                            cursor.execute(sql, (ret['fun'],ret['jid'],json.dumps(ret['return']),ret['id'],ret['success'],json.dumps(ret)))
                            cursor.execute("COMMIT")
            else:
                    pass
    (注意脚本里面mysql连接的地方,conn = MySQLdb.connect(host="172.16.1.11",user="root",passwd="930829",db="salt"))
    
    
     

    启动脚本

    python salt_event_to_mysql.py &

     查看mysql情况(在mater中执行了test.ping后在salt_returns表里面有数据表示正常)

    minion端分组管理
    编辑master配置文件
    vim /etc/salt/master
    nodegroups:
    test1: 'E@salt-client*'
    test2: 'E@salt-web*' 正则
    test3: 'N@test1 or N@test2' 和
    test4 'N@test1 and N@test2'
    配置完成后在master执行
     
    salt -N test1 test.ping
    模块:
    查看模块
    salt '11' sys.doc
     
    测试批量执行脚本
    修改master配置文件
    file_roots:
    base:
    - /srv/salt
    dev:
    - /srv/salt/dev
    prod:
    - /srv/salt/prod
    创建上述目录
    在/srv/salt下创建etc/script目录
    在script目录下创建测试脚本
    vim test.sh
    while true
    do
      sleep 1
      echo 1 > /tmp/log
    done
    在master执行
    salt '*' cmd.script salt://etc/script/test.sh
    (注意:测试脚本会在minion上/tmp/目录下生成一个tmp开头的脚本文件)
    查看正在minion运行的任务
    salt '*' saltutil.running
    杀掉正在运行的任务
     
    salt '*' saltutil.term_job jid
    将master的文件部署到minion上
    vim /srv/salt/hosts.sls
    /tmp/hosts:
      file.managed:
        - source: salt://etc/hosts
        - user: root
        - group: root
        - mode: 600
    vim /srv/salt/top.sls
    base:
      '*':
        - hosts
    (此两个配置文件是将master上的hosts文件部署到minion的/tmp/hosts)
    master执行开始部署
    salt '*' state.highstate
    测试另一种部署方式
    更改master中的etc/hosts
    salt '*' state.sls hosts
    再测试一种部署方式
    在/srv/salt目录下新建目录hosts(目录名称随意)
    将hosts.sls文件复制在该目录下
    修改hosts文件
    salt '*' state.sls hosts.hosts
    第四种方法
    将hosts目录下的hosts.sls更名为init.sls
    执行
     
    salt '*' state.sls hosts

    解决Keyerror问题

  • 相关阅读:
    118. Pascal's Triangle
    697. Degree of an Array
    1013. Partition Array Into Three Parts With Equal Sum
    167. Two Sum II
    ol7 禁用mysql 自启动
    pgsql常用命令
    清空history 命令记录
    pgsql启动报错
    在rhel 7.4中安装glibc-devel-2.17-196.el7.i686包的过程详录
    postgresql-9.2 install
  • 原文地址:https://www.cnblogs.com/xiongyoutom/p/9597361.html
Copyright © 2020-2023  润新知