Saltstack基础
salt介绍
salt简单介绍
一个基础平台管理工具
一个配置管理系统,能够维护预定义状态的远程节点
一个分布式远程执行系统,用来在远程节点上执行命令和查询数据
salt的核心功能
使命令发送到远程系统是并行
使用安全加密的协议
使用最小最快的网络载荷
提供简单的编程接口
salt的优点
saltstack使用python编写的,设备是轻量级别的
saltstack通讯层采用zeroMQ实现使得它很快速
saltstack开源
salt-master启动时会启动两个端口
4505:为salt的消息发布专用端口(发布消息)
4506:为客户端与服务器端通讯的端口(接收消息)
安装salt
rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
yum install salt-master # 安装server端
yum install salt-minion # 安装client端
salt命令使用
master端命令使用:
salt-key:管理秘钥
salt-cp: 复制
salt-syndic: proxy使用
minion端命令使用:
salt-call: 在minion端主动执行任务使用
修改配置文件:
minion端需要配置
master端IP:
id:默认是主机名
第一个命令:
salt-key:管理所有minion的key
查找的是缓存文件,在/etc/salt/pki下
-L,--list-all : 列出所有的minion端发送过来的key
-a ACCEPT,--accept=ACCEPT :允许一台minion
-A,--accept-all:允许所有的minion
-r REJECT,--reject=REJECT:拒绝一台minion
-R,--reject-all:拒绝所有的minion
-d DELETE,--delete=DELETE:删除指定的
-D,--delete-all:删除所有的
-y :默认运行yes
salt-call:可以在minion上执行master对minion执行的所有动作
minion:
/etc/salt/minion :保存服务器的主机名
/etc/salt/pki : 保存master的公钥和minion的密钥
returner:
默认情况下,发送给salt minion的命令执行结果将返回给salt master。
Saltstack returner的接口允许将结果发送给任意系统
内置returner模块列表
event
event是一个本地的ZeroMQ PUB interace,event是一个开放的系统,
用于发送信息通知salt或其他的操作系统
每个event都有一个标签。事件标签允许快速指定过滤时间。除了标签之外,
每个事件都有一个数据结构。这个数据结构是一个dict类型,其中包含
关于事件的信息
通过监听event,master发送数据到mysql,记录日志步骤:
准备过程
mysql/master
1.安装mysql
2.创建数据库,授权
master
3.在master上修改配置文件,添加连接数据库的信息。
4.准备监听even的py脚本,以及插入数据库操作
5.安装python的mysql模块 MySQL-python
执行过程
1.运行监听event,插入数据库操作的脚步,后台运行
注意:
脚本是监听了event的信息直接写入到数据库中,和master本身没有关系。
分组:
G Grains glob匹配 G@os:Ubuntu
E PCRE Minion id 匹配 E@^web 正则匹配
P Frains PCRE 匹配 P@os:(RedHat|Fedora|CentOs)
L Minions列表 L@minion1,minion2,minion3
I
S 子网/IP地址匹配 S@192.168.1.0/24 or 192.168.1.100
配置文件示例:
nodegroups: (固定语法)
yz-app: 'E@yz-mob-app*' (组名: )
gl-app: 'E@gl-mob-app*'
app: 'N@yz-app or N@gl-app'
模块介绍:
test.ping
sys.doc 返回帮助信息 salt 'minion' sys.doc
system
system.halt
system.init
system.poweroff
system.reboot
system.shutdown
status 查看状态
status.cpuinto
status.cpustatus
status.diskstatus
status.uptime
service 调用的是/etc/init.d/下某个服务的名字
service.restart
service.start
service.stop
service.status
saltutil
saltutil.is_running
cmd
cmd.running 执行命令
cmd.script 执行脚本
file 对文件进行管理
salt命令
-N 指定组名 salt -N app test.ping
文件系统
1.修改配置文件
2.创建目录
3.写sls文件
1.修改配置文件
vi /etc/salt/master
file_roots: 固定语法
base:
- /srv/salt/
dev:
- /srv/salt/dev/services
- /srv/salt/dev/states
prod:
- /srv/salt/prod/services
- /srv/salt/prod/states
2.创建目录
mkdir /srv/salt -p
3.写sls文件
cd /srv/salt
mkdir etc # 创建目录专门存放配置文件
cd etc
mkdir script # 创建脚本存放的位置
cd script
vi test.sh # 编辑脚本文件,内容如下
#!/bin/bash
whilt true
do
sleep 1
echo 1 >> /tmp/log
done
salt '*' cmd.script salt://etc/script/test.sh # 执行文件系统下的sh脚本
文件系统之同步文件:
cd /srv/salt
vi top.sls
base: # 固定语法
'*': # 你要匹配的minion ID
- hosts # 执行相应的hosts.sls或hosts下的init.sls
vi hosts.sls
/tmp/hosts: #同步到哪里去
file.managed: # 使用方法
- source: salt://etc/hosts # 服务端文件位置(源文件位置)
- user: root
- group: root
- mode : 600
# 执行sls的两种方法
salt '*' state.sls hosts
或者在salt的更目录创建hosts目录,把hosts.sls移到hosts中
执行命令为:
salt '*' state.sls hosts.hosts
或者把hosts下的hosts.sls文件改名为init.sls,salt会默认执行hosts下的init.sls
执行命令为:
slat '*' state.sls hosts
salt '*' state.highstate
grains 主要负责采集客户端一些基本信息。可以自定义
grains的使用
查看grains
salt 'salt-client' grains.ls # 查看机器所有的grains
salt 'salt-client' grains.items # 列出grains的名字和对应的值
salt 'salt-client' grains.item os # 取指定的grains的值
salt 'salt-client' grains.item shell
grains的正则匹配
salt -G 'os:CentOs' test.ping
salt -G 'cpuarch:x86_64' grains.item num_cpus
自定义grains
在minion上进行配置grains
grains: # 固定语法
roles:
- webserver
- memcache
deployment: detacenter4
states
salt状态系统的核心是sls。
sls表示系统将会是什么样的一种状态,而且是以一种很简单的格式
来包含这些数据。这经常也被叫做配置管理
sls文件实际上只是一些:dict,list,str ,int
YAML 语法
1.缩进:YAML使用一个固定的缩进风格表示数据层结构关系。salt需要每个缩进级别由两个空格组成。不要使用tabs
2.Python的字典是简单的键值对。字典的key在YAML中的表现形式是一个以冒号结尾的字符串。values的表现形式冒号下面的每一行,用一个空格隔开
3.想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分。
更多关于YAML的使用:http://docs.saltstack.cn/topics/yaml/index.html
更多的模块说明:http://docs.saltstack.cn/genindex.html#S
pillar
可以定义那些数据
1.敏感信息:ssh key,加密证书。
2.变量
3.其他任何数据
4.targetting
pillar示例:
schedult:
highstate:
function: state.highstate
minutes: 1
Saltstack基础的更多相关文章
- 1.saltstack基础笔记
环境: master: 节点node1:阿里云:121.42.195.15 centos6.6 minion: 节点node2:腾讯云:182.254.157.19 centos6.6 一.salts ...
- saltstack基础知识
saltstack简介 saltstack基于python开发的C/S架构的配置管理工具,分为服务器端salt-master和客户端salt-minion.并且支持浩称最快的ZeroMQ消息队列机制, ...
- saltstack 基础入门文档
saltstack 和 Puppet Chef 一样可以让你同时在多台服务器上执行命令也包括安装和配置软件.Salt 有两个主要的功能:配置管理和远程执行.这里讲述了saltstack的基本使用方法. ...
- SaltStack 基础
介 SaltStack是基于Python开发的一套C/S架构配置管理工具.它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理.号称世界上最快的消息队列Zero ...
- saltstack基础篇
使用saltstack的前提是PPT 服务.流程.工具和技术 安装 rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel- ...
- [SaltStack] 基础介绍
今天有时间把以前研究过的saltstack梳理总结下 -:) salt是干什么的我就不多说了, 大家Google下资料很多的, 简单来说就是func+puppet: 配置文件管理 远程命令调用 Cro ...
- saltstack 基础模块
Salt 在 linux 系统下 基础操作 1.更改权限 # salt 2.更改用户 # salt '172.16.3.9' file.chown /root/test test test 3.复制文 ...
- 二、saltstack基础配置
super65 master 192.168.1.65 super66 minion 192.168.1.66 主配置文件: [root@super65 ~]# ll /etc/sa ...
- saltstack之基础入门系列文章简介
使用saltstack已有一段时间,最近由于各种原因,特来整理了saltstack基础入门系列文章,已备后续不断查阅(俗话说好记性不如烂笔头),也算是使用此工具的一个总结.saltstack的前六篇文 ...
随机推荐
- 服务器磁盘阵列数据恢复,raid5两块硬盘掉线数据恢复方法
[用户单位信息] 农业科学研究院某研究所 [磁盘阵列故障发生过程描述]客户的DELL MD1000服务器内置15块1TB硬盘搭建为RAID5磁盘阵列阵列,服务器在正常工作中有一块硬盘离线,管理员对磁盘 ...
- python 基础 set 集合类型补充
为啥今天又重提这个数据类型呢?平时用的少,等要用起来的时候才发现,自己对这块啥都不知道了,so,今天就把这块再梳理一下咯. 一.set集合,是一个无序且不重复的元素集合.这一点是非常重要的. 二.集合 ...
- j2ee基础(1)servlet的生命周期
Servlet的生命周期 Servlet 生命周期规定了 Servlet 如何被加载.实例化.初始化. 处理客户端请求,以及何时结束服务. 该生命周期可以通过 javax.servlet.Servle ...
- 由路由器AP隔离引起的WEB服务不能访问的问题
最近在自己的电脑上运行了一个Web服务,发现它只能被本机访问,无法在同一个局域网的其它设备访问. 于是在网上搜索了各种资料,通通都是在操作系统层面来分析解决问题的. 而我怎么尝试都不成功的情况下,差点 ...
- python实现:最长子字符串
给定一个字符串 s 和正整数 n,请使用你熟悉的编程语言输出 s 中包含不超过 n 种字符的最长子串,如 s="uabbcadbaef",n=4 时应该输出 "abbca ...
- Python之线程
操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别 ...
- 创建以mybatis为基础的web项目(2)mabitis中的一对一关系项目实战
mabitis中的一对一关系项目实战: 1.首先根据创建以mybatis为基础的web项目(1)中的流程将web项目部署好 打开IDE,建立web工程 在lib下面粘贴mybatis的jar,log4 ...
- Linux-centos-7.2-64bit 安装配置mysql
2018-04-12 安装在/usr/local/下,配置文件在/etc/my.ini 1.下载mysql安装包到 /usr/local/software cd /usr/local/software ...
- spring加载xml的六种方式
因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装入系统,这就需要利用Spring去动态加载某一位置下的配置文件,所以就总结了下Spring中加载xml配置文件的方式,我总结的有6 ...
- C语言 时间函数的学习
一直都是以简单的time_t t,time(&t),ctime(&t)来表示时间,后来要以时间为日志文件的名字时,就有点蒙逼了.学习一下. tm结构: struct tm { int ...