在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:
创建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 '' 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
  echo > /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:
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问题

saltstack-----上线环境篇(一)的更多相关文章

  1. 环境篇:DolphinScheduler-1.3.1安装部署及使用技巧

    环境篇:DolphinScheduler-1.3.1安装部署 1 配置jdk JDK百度网盘:https://pan.baidu.com/s/1og3mfefJrwl1QGZGZDZ8Sw 提取码:t ...

  2. 篇5 python自动化测试应用-Selenium环境篇

    篇5                            python自动化测试应用-Selenium环境篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),从本篇开始我将开始 ...

  3. 自动化运维工具SaltStack - 多环境(使用记录【state.sls 与 state.highstate】)

    转自:https://segmentfault.com/a/1190000000513137 今天在进行 saltstack 多环境的时候,遇到一个问题,最终得到解决,好记性不如烂笔头,记录. 首先, ...

  4. django项目上线环境部署

    django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚 ...

  5. SpringBoot系列之profles配置多环境(篇二)

    SpringBoot系列之profles配置多环境(篇二) 继续上篇博客SpringBoot系列之profles配置多环境(篇一)之后,继续写一篇博客进行补充 写Spring项目时,在测试环境是一套数 ...

  6. 环境篇:Docker

    环境篇:Docker www.docker.com Docker 是什么? Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache协议的开源,让开发者可以打包他们的应用以及依赖包到一个 ...

  7. 环境篇:Virtualbox+Vagrant安装Centos7

    环境篇:Virtualbox+Vagrant安装Centos7 1 安装Vagrant Vagrant下载地址:https://www.vagrantup.com/ Vagrant百度网盘:https ...

  8. 环境篇:VMware Workstation安装Centos7

    环境篇:VMware Workstation安装Centos7 1 VMware Workstation安装 CentOS下载地址:http://isoredirect.centos.org/cent ...

  9. 环境篇:Atlas2.0.0兼容CDH6.2.0部署

    环境篇:Atlas2.0.0兼容CDH6.2.0部署 Atlas 是什么? Atlas是一组可扩展和可扩展的核心基础治理服务,使企业能够有效地满足Hadoop中的合规性要求,并允许与整个企业数据生态系 ...

  10. 环境篇:Superset

    环境篇:Superset Superset 是什么? Apache Superset 是一个开源.现代.轻量的BI分析工具,能够对接多种数据源,拥有丰富的图表展示形式.支持自定义仪表盘,用户界面友好, ...

随机推荐

  1. Linux-PAM认证机制

    http://www.cnblogs.com/marility/articles/9235522.html https://www.jianshu.com/p/342c05b51b7c https:/ ...

  2. linux 中搜索命令的对比

    1.find find是最常用和最强大的查找命令.它能做到实时查找,精确查找,但速度慢. find的使用格式如下: #find [指定目录] [指定条件] [指定动作] 指定目录:是指所要搜索的目录和 ...

  3. PHP 免费获取手机号码归属地

    一.淘宝网API API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回 ...

  4. InsertSql

    declare @hobby table(hobbyID int,hName nvarchar(100));insert into @hobby(hobbyID,hName)Select 1,'爬山' ...

  5. C语言对文件的基本操作

    在C语言中,对于文件的操作是利用FILE结构体进行的. 几个常用的操作文件函数简介 1:打开文件 FILE *fopen( const char *filename, const char *mode ...

  6. 关于Kafka幂等producer的讨论

    众所周知,Kafka 0.11.0.0版本正式支持精确一次处理语义(exactly once semantics,下称EOS).Kafka的EOS主要体现在3个方面: 幂等producer:保证发送单 ...

  7. 手机CPU天梯图2018年5月最新版

    话不多说,以下是2018年5月最新的手机CPU天梯图精简版,由于最近一两个月,芯片厂商发布的新Soc并不不多,因此这次天梯图更新,主要是来看看今年主流手机厂商都流行使用哪些处理器. 手机CPU天梯图2 ...

  8. iOS - AVAudioSession详解

    音频输出作为硬件资源,对于iOS系统来说是唯一的,那么要如何协调和各个App之间对这个稀缺的硬件持有关系呢? iOS给出的解决方案是"AVAudioSession" ,通过它可以实 ...

  9. 《转载》Jenkins持续集成-自动化部署脚本的实现《python》

    本文转载自慕课网 读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续 ...

  10. VC++进行窗口枚举

    https://blog.csdn.net/u012372584/article/details/53735242 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...