1、Saltstack简介
  Saltstack是基于Python开发的一套C/S架构,具备Puppet、Ansible功能于一身的配置管理工具,功能十分强大,各模块融合度及复用性极高;使用号称世界上最快的消息队列ZeroMQ使得Saltstack能够秒级在数万台服务器上进行各种操作,而且使用RAS Key方式确认身份,传输采用AES加密,安全性能更高;
  Saltstack不仅仅是一款配置管理工具,还是一款做云计算和数据中心架构编排利器。目前Salt-cloud项目也已经合并到Saltstack主项目里,Saltstack已经支持Docker相关模块,在友好地支持各大云平台之后,配合Saltstack的Mine实现各云平台业务自动扩展。
  saltstack通信端口
  • master端:4505
  • minion端:4506
  saltstack的三种运行方式:
  • Local
  • Master/minion
  • Salt ssh
  saltstack三大功能:
  • 远程执行
  • 配置管理
  • 云管理
2、saltstack安装及配置
  • 添加epel源
 

 #yum install epel-release
  • 服务端安装:

     #yum install salt-master  -y
     #/etc/init.d/salt-master start
  • 客户端安装及配置:
#yum install salt-minion  -y
修改minion配置文件,指定master
#sed -i.bak '16s/#master: salt/master: {master ip}/' /etc/salt/minion  #master ip请根据环境指定
更改minion端的id,id必须唯一,不修改的情况下默认使用minion端的主机名
启动minion端:
#/etc/init.d/salt-minion start
如saltstack客户端配置设置域名的话,与服务端通信必须做host解析。
使用salt-key查看建立连接情况
[root@master /etc/salt/pki/master]#salt-key
Accepted Keys:
Denied Keys:
Unaccepted Keys:
master
minion
Rejected Keys:
使用salt-key -A接收所有客户端的通信请求
[root@master /etc/salt/pki/master]#salt-key -A
Accepted Keys:
master
minion
Denied Keys:
Unaccepted Keys:
Rejected Keys:
  saltstack通过/etc/salt/pki/目录下面的配置文件的密钥进行通信,master端接受minion端后,会在/etc/salt/pki/minion/保存minion端的pub key,同时master端会将自己的公钥传输到minion端的目录/etc/salt/pki/minion/中。
master端:
[root@master salt]# ll /etc/salt/pki/minion/
total 12
-rw-r--r--. 1 root root 451 Apr 25 09:22 minion_master.pub
-r--------. 1 root root 1679 Apr 25 09:22 minion.pem
-rw-r--r--. 1 root root 451 Apr 25 09:22 minion.pub 
minion端:
[root@minion salt]# ll /etc/salt/pki/minion/
total 12
-rw-r--r--. 1 root root 451 Apr 25 09:22 minion_master.pub
-r--------. 1 root root 1675 Apr 25 09:22 minion.pem
-rw-r--r--. 1 root root 451 Apr 25 09:22 minion.pub 
  如果配置文件被更改,客户端minion会自动停止服务终止与master端端通信;解决办法:在master端删除该主机,并在minion端将pki配置目录删除后重启服务即可。
 
3、SaltStack语法:
salt <clients> module.method 'cmd'
例: 在所有客户端上执行uptime命令
# salt '*' cmd.run uptime
minion:
10:02:22 up 16:11, 2 users, load average: 0.27, 0.51, 0.85
master:
10:02:22 up 16:02, 1 user, load average: 1.23, 0.68, 0.55

4、salt命令使用帮助:

[root@salt ~]# salt -h
Options:
--version 查看 SaltStack 程序的版本号
--versions-report 查看 SaltStack 程序以及依赖包的版本号
-h, --help 查看帮助信息
-c CONFIG_DIR, --config-dir=CONFIG_DIR 指定配置文件目录
-t TIMEOUT, --timeout=TIMEOUT 指定 Timeout 时间 ( 默认是 5s)
--hard-crash 捕捉到 original 异常不退出 ( 默认关闭
-s, --static 以组的形式返回所有 Minion 的数据
--async 异步执行
-v, --verbose verbose 模式
--show-timeout 显示 minion timeout 状态
--show-jid 显示任务 jid
-b BATCH, --batch=BATCH 按照百分比执行任务
-a EAUTH, --auth=EAUTH, --eauth=EAUTH, --external-auth=EAUTH
指定外部认证方式
-T, --make-token 生成 Master token
--return=RETURNER 指定 SaltStack return
-d, --doc 查看指定模块或者所有模块文档
--args-separator=ARGS_SEPARATOR 设置多个传参直接分隔符
--summary 显示汇总信息
--username=USERNAME 指定外部认证用户名
--password=PASSWORD 指定外部认证密码
Target Options:
-E, --pcre 正则匹配
-L, --list 列表匹配
-G, --grain grains 匹配
--grain-pcre grains 加正则匹配
-N, --nodegroup 组匹配
-R, --range 范围匹配
-C, --compound 综合匹配 ( 指定多个匹配 )
-I, --pillar pillar 值匹配
-S, --ipcidr minions 网段地址匹配
 
5、salt minion配置常用选项说明:
master:指定master主机(默认salt)
master_port:指定认证和执行结果发送到master的哪个端口,与master配置文件中的ret_port对应,默认为4506
id:指定minion的表示,salt内部使用id作为表示(默认为主机名)
user:指定运行minion的用户,推荐使用root(默认root)
cache_job:minion是否缓存执行结果(默认false)
backup_mode:在文件操作(file.managed或file.recurse)时,如果文件发送改变,指定备份目标,备份在cachedir/file_backups目录下,以原始文件名+时间戳命名(默认disable)
providers:指定模块对应的providers
renderer:指定配置管理系统中的渲染器(默认yaml_jinja)
file_client:指定file client默认去哪里寻找文件(默认remote)
loglevel:指定日志级别(默认为warning)
tcp_keepalive:minion是否与master报错keepalive检查,zeromq3以下版本存在bug,建议升级到3以上版本(默认为true)
6、分组管理minioin端
编辑master主配置文件添加分组
#vim  /etc/salt/master
nodegroups:
# group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
# group2: 'G@os:Debian and foo.domain.com'
dbsrv: 'db*’
[root@salt-server /etc/salt]#salt -N dbsrv test.ping
master:
True
minion:
True
 
7、实例:为minion端安装apache软件
打开master端的配置文件将file_roots的base环境配置打开,保存重启master
#vim /etc/salt/master
file_roots:
base:
- /srv/salt 
创建 /srv/salt目录
#mkdir /srv/salt -p
创建安装apache的sls文件
#cat apache.sls
apache-install:
pkg.installed:
- names:
- httpd
- httpd-devel
apache-service:
service.running:
- name: httpd
- enable: True
- reload: True 
使用salt的state模块的sls方法为minion端安装apache并启动服务
# salt '*' state.sls apache
结果如下:

1、Saltstack简介及安装配置的更多相关文章

  1. twemproxy 简介、安装配置

    twemproxy 简介.安装配置 http://www.xuchanggang.cn/archives/993.html

  2. 一、saltstack简介和安装

    系统环境:CentOS6.5 准备yum源: epel源(包含了saltstack的包).阿里源(CentOS-Base.repo) Host解析文件: # cat /etc/hosts 192.16 ...

  3. 自动化运维工具之SaltStack简介与安装

    1.SaltStack简介 官方网址:http://www.saltstack.com官方文档:http://docs.saltstack.comGitHub:https:github.com/sal ...

  4. Maven01——简介、安装配置、入门程序、项目构建和依赖管理

    1 Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 Svn eclipse   maven量级 1.2 Maven好处 同 ...

  5. MongoDB入门学习笔记之简介与安装配置

    一.MongoDB简介 1.文档数据库 MongoDB是一款开源的文档型非关系数据库,具有高性能.高可靠性和自动扩展等特点.MongoDB中的每一条记录是一个文档,其数据存储结构为键/值对,类似JSO ...

  6. elasticsearch系列一:elasticsearch(ES简介、安装&配置、集成Ikanalyzer)

    一.ES简介 1. ES是什么? Elasticsearch 是一个开源的搜索引擎,建立在全文搜索引擎库 Apache Lucene 基础之上 用 Java 编写的,它的内部使用 Lucene 做索引 ...

  7. (一)Solr——简介和安装配置

    1. solr简介 1.1 Solr是什么 Solr是apache的顶级开源项目,它是使用java开发 ,基于lucene的全文检索服务器. Solr和lucene的版本是同步更新的,最新的版本是7. ...

  8. saltstack master minion安装配置简单使用

    首先先了解下saltstack是什么,为什么使用它 它与Ansible.Puppet都属于集中管理工具,由于现在企业规模的不断庞大及业务的增长,所需要管理的服务器数量增多,而且大部分机器都属于同类业务 ...

  9. Elastic Search快速上手(1):简介及安装配置

    前言 最近开始尝试学习Elastic Search,因此决定做一些简单的整理,以供后续参考,快速上手使用ES. 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多 ...

随机推荐

  1. POW的重力之美

    定律一:每一个UTXO都保持其状不变,直到有外力迫使它改变这种状态为止--艾萨克•牛顿,原理2.0 在过去的几年里,关于比特币的工作量证明(PoW)所造成的"巨大的能源浪费"已经被 ...

  2. Web挂马方式整理

    一:框架挂马 <iframe src=地址 width=0 height=0></iframe> 二:js文件挂马 首先将以下代码 document.write("& ...

  3. webWorker

    一.webWorker之初体验 在"setTimeout那些事儿"中,说到JavaScript是单线程.也就是同一时间只能做同一事情. 也好理解,作为浏览器脚本语言,如果JavaS ...

  4. LeetCode 606. Construct String from Binary Tree根据二叉树创建字符串 (C++)

    题目: You need to construct a string consists of parenthesis and integers from a binary tree with the ...

  5. java计算器实验报告

    一.实验目的 1.熟悉java图形用户界面的设计原理和程序结构 2.能设计复核问题要求的图形用户界面程序 3.熟悉java awt和swing的组合 4.掌握常用组建的事件借口 5.会应用awt和sw ...

  6. 构建之法——Team & Scrum & MSF

        第五章(团队和流程)83-99  这一章主要介绍的是团队精神 那是不是说只要能组合在一起的就是组成了一个团队了?其实不然,软件团队有各种形式,适用于不同的人员和需求.适合自己的团队才能共赢! ...

  7. 四种losses

    1. Classification losses 每次输入一个样本,对样本进行类别预测,根据预测类别和真实标签得到对应的分类损失. 2. Pairwise losses 每次输入两个样本,数据集包含了 ...

  8. ElasticSearch 2 (31) - 信息聚合系列之时间处理

    ElasticSearch 2 (31) - 信息聚合系列之时间处理 摘要 如果说搜索是 Elasticsearch 里最受欢迎的功能,那么按时间创建直方图一定排在第二位.为什么需要使用时间直方图? ...

  9. [转帖]kubeadm 实现细节

    kubeadm 实现细节 http://docs.kubernetes.org.cn/829.html 1 核心设计原则 2 常量和众所周知的值和路径 3 kubeadm init 工作流程内部设计 ...

  10. BOM之navigator对象和用户代理检测

    前面的话 navigator对象现在已经成为识别客户端浏览器的事实标准,navigator对象是所有支持javascript的浏览器所共有的.本文将详细介绍navigator对象和用户代理检测 属性 ...