深入SaltStack】的更多相关文章

salt-key -y -d linux-node1 #删除linux-node1节点的认证 salt -G 'cpuarch:x86_64' grains.item num_cpus >>1.txt  #把获取到的信息输出至1.txt中 salt "*" state.sls web.apache  #执行apache.sls apache-install: # 状态声明ID,每一个 ID 就是一个配置项 pkg.installed: # 这里面的模块可以是内置的状态模块,…
saltstack命令执行过程 具体步骤如下 Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc salt命令,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jodid,根据jobid获取命令执行结果. master接收到命令后,将要执行的命令发送给客户端minion. minion从消息总线上接收到要处理的命令,交给minion.…
一.引言: 单个salt-master下的minion数已经达到2101个了,所以在master日志有如下的提示: 2016-09-09 11:36:22,221 [salt.utils.verify][CRITICAL][10919] The number of accepted minion keys(2101) should be lower than 1/4 of the max open files soft setting(4096). Please consider raising…
一.Satlstack的概述 Saltstack是什么? Salt是一种和以往不同的基础设施管理方法,它是建立在大规模系统高速通讯能力可以大幅提升的想法上.这种方法使得Salt成为一个强大的能够解决基础设施中许多特定问题的多任务系统.远程执行引擎是Salt的核心,它能够为多组系统创建高速.安全的双向通讯网络.基于这个通讯系统,Salt提供了一个非常快速.灵活并且容易使用的配置管理系统,称之为"Salt States". The backbone of Salt is the remot…
需求产生场景:      1.python的virtualenv虚拟环境非常的好用.      2.saltstack作为运维自动化的一个重要组件也挺好用的. 但是:      1.saltsatck最简便的是使用yum安装,结合的是linux-centos自带的python2.6版本.      2.即便使用编译安装,也是在编译安装的python环境下 so,需求产生了:      我想要在virtualenv环境下使用saltstack的api,发现非常蛋疼.两者无法整合到一起.      …
阶段性总结:      跌跌撞撞的用了一周左右的时间做完了网站自动升级功能,中间遇到了很多的问题,也学到了很多,在此做一个总结.   1.整体架构: 后台:nginx+uwsgi  #nginx提供web服务,uwsgi对python代码进行解析 前台:flask+bootstrap+html  #flask是python的一套web开发工具,bootstrap是一套现成的模板,html不用解释. 功能:shell+saltstack+svn #saltstack 功能的核心,自动化运维工具.…
saltstack官方提供了一个简单的web UI--halite.但是给出的安装配置方法实在没法实现,在网上找了几篇博客,见文章末尾的参考链接,可以用起来了.但是功能有点简单.这篇文章记录安装配置halite的过程. 1.从github克隆halite源码. git clone https://github.com/saltstack/halite 2.安装salt-api yum install salt-api 3.创建halite登录用户. useradd admin passwd ad…
Saltstack异步执行命令 salt执行命令有时候会有超时的问题,就是命令下发下去了,部分主机没有返回信息,这时候就很难判断命令或任务是否执行成功.因此,salt提供异步执行的功能,发出命令后立即返回一个jid.然后我们就可以根据这个jid来查询任务是否执行成功. 命令行实现异步 参数--async,返回job ID,根据job ID我们可以查询执行结果. salt --async '*' test.ping salt-run jobs.lookup_jid 2016111716315335…
Saltstack之SSH 安装 yum install -y salt-ssh 官方文档  https://docs.saltstack.com/en/latest/topics/ssh/index.html 配置 管理/etc/salt/roster文件,配置需要管理的所有主机 vi /etc/salt/roster linux-node1.example.com: host: 192.168.137.11 user: root port: 22 linux-node2.example.co…
Saltstack之Syndic 使用条件: 1.salt syndic必须运行在一台master上 2.salt syndic必须依赖更高级的master 安装 yum install -y salt-syndic 配置 vi /etc/salt/master syndic_master: 192.168.137.12 备注:syndic和master共用一个配置文件 重启master: systemctl restart salt-master 启动sydic: systemctl star…
SaltStack之无Master和多Master Masterless架构,无Master 实现方式: 1)关闭minion进程 2)修改配置文件 vi /etc/salt/minion file_client: local 备注:其它配置项如file_roots.pillar_roots跟master一样,区别在于上面的配置项,将从master获取cache数据,改成了从本地获取cache数据. 3)编写SLS文件 4)执行命令:salt-call --local state.highsta…
SaltStack之Job管理和Runner 配置文件/etc/salt/master cachedir: /var/cache/salt/master # cache路径 keep_jobs: 24 # job保存时间 salt执行模块官方文档  https://docs.saltstack.com/en/latest/ref/modules/all/index.html 如何将master的返回加入mysql数据库? 1)数据库表结构创建可参考 http://www.cnblogs.com/…
SaltStack项目实战 系统架构图 一.初始化 1.salt环境配置,定义基础环境.生产环境(base.prod) vim /etc/salt/master 修改file_roots file_roots: base: - /srv/salt/base prod: - /srv/salt/prod mkdir -p /srv/salt/base mkdir -p /srv/salt/prod pillar配置 vim /etc/salt/master 修改pillar_roots pilla…
官方文档 https://docs.saltstack.com/en/latest/topics/states/index.html 配置管理之SLS Salt  State  SLS描述文件(YAML) 名称ID声明  默认是name声明 备注: 一个ID声明下面.状态模块不能重复使用 例: apache-install: pkg.installed: - names: - httpd - httpd-devel apache-service: # ID声明,高级状态,ID必须唯一. serv…
Saltstack远程执行 语法例:salt '*' cmd.run 'w' -  命令:salt -  目标:'*' -  模块:cmd.run,自带150+模块,也可以自己写模块 -  返回:执行后结果返回,Returnners组件 1.指定目标(targeting) 官网文档:https://docs.saltstack.com/en/latest/topics/targeting/index.html 两种定位方法:一种和minion ID有关,一种和monion ID无关 1)mini…
Saltstack数据系统 分为Grains和Pillar 一.Grains 静态数据,当Minion启动的时候收集的MInion本地的相关信息.(包含操作系统版本.内核版本.CPU.内存.硬盘.设备型号等) 备注:不重启minion,这些信息数据是不会改变的. 1)信息管理,包括资产管理: 例: salt 'linux-node1*' grains.ls # 列出ID为linux-node1的主机,grains的所有key salt 'linux-node1*' grains.items #…
SaltStack与ZeroMQ SaltStack底层是基于ZeroMQ进行高效的网络通信. ZeroMQ简介 ØMQ (也拼写作ZeroMQ,0MQ或ZMQ)是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库.它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理(message broker).该库设计成常见的套接字风格的API.能够提供进程内(inproc).进程间(IPC).网络(TCP)和广播方式的消息信道, 并支持扇出(fan-out).发…
Slatstack 介绍 官网:https://saltstack.com/ 官方源:http://repo.saltstack.com/  (介绍各操作系统安装方法) http://repo.saltstack.com/yum/redhat/7/x86_64 基于python开发,提供REST API接口 三大功能: 远程执行.配置管理(状态).云管理 其它:Puppet(ruby).ansible(python) 四种运行方式:Local.Minion/Master(C/S).Syndic(…
 pillar组件 pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板.state.API等.在pillar中定义的数据与不同业务特性的被控主机相关联,这样不同被控主机只能看到自己匹配的数据,因此pillar安全性很高,适用于一些比较敏感的数据,这也是区别于grains最关键的一点,如定义不同业务组主机的用户ID.组ID.读写权限.程序包等信息,定义的规范是采用python字典形式,即键/值,最上层的键一般为主机的ID…
grains是Saltstack最重要的组件之一,grains的作用是收集被控主机的基本信息,这些信息通常都是一些静态的数据,包括CPU.内核.操作系统.虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这新信息对不同业务进行个性化配置. 官网提供的用来区分不同操作系统的示例如下(采用jinja模板): {% if grains['os'] == 'Ubuntu' %} host: {{ grains['host'] }} {% elif grains['os'] == 'Cent…
Saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能.常用工具支持等,更多模块信息可以查看官网模块介绍.也可以通过sys模块列出当前版本支持的模块. salt '*' sys.list_modules 一.模块API使用方法: API的原理是通过调用 master client 模块,实例化一个LocalClient 对象,再调用cmd()方法来实现的.以下是API实现test.ping的示例: >>> import salt.client >>> cli…
一.基础介绍1.简介 salt 是一个基础平台管理工具 salt是一个配置管理系统,能够维护预定于状态的远程节点 salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 2.salt的核心功能: 使命令发送到远程系统是并行的而不是串行的 使用安全加密的协议 使用最小最快的网路载荷 提高简单的编程接口 3.salt优点: saltstack是用python编写,相当于设备是轻量级别的 saltstack通讯层采用zeroMQ实现,使得它很快速 saltstack是开源的,通过pyth…
导读 SaltStack是基于Python开发的一套C/S架构配置管理工具(功能不仅仅是配置管理,如使用salt-cloud配置AWS EC2实例),它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理.号称世界上最快的消息队列ZeroMQ使得SaltStack能快速在成千上万台机器上进行各种操作. 而且采用RSA Key方式确认身份,传输采用AES加密,这使得它的安全性得到了保障.SaltStack经常被描述为Func加强版+Puppet精简版. 为什么…
salt-master的配置文件位于/etc/salt/master,可用选项如下: #######################主配置 interface默认值:0.0.0.0(所有的网络地址接口)绑定到本地的某个网络地址接口 1 interface: 192.168.0.1 publish_port默认值:4505设置master与minion的认证通信端口 1 publish_port: 4505 user默认值:root运行salt进程的用户 1 user: root max_open…
1. 创建基础镜像 2. 创建配置文件 3. 启动容器 4. 检查创建是否成功 1. 创建基础镜像 salt-master, 文件名Dockerfile # VERSION 1.0 # TO_BUILD: docker build -t salt/master . FROM library/ubuntu:16.04 # Update & install packages RUN sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/s…
SaltStack实战 #安装 安装注意几点 python-libs-2.6.6-64.el6.x86_64 conflicts with file from package python-2.6.6-36.el6.x86_64 yum install python-libs解决 yum的版本太低的话是会出现问题的 http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-3.2.29-69.el6.centos.noarch.rpm rp…
salt官网:http://docs.saltstack.cn/zh_CN/latest/ 安装教程: - http://docs.saltstack.cn/zh_CN/latest/topics/installation/index.html - http://sofar.blog.51cto.com/353572/1596960   1 安装依赖组件 参考:http://docs.saltstack.cn/zh_CN/latest/topics/installation/index.html…
利用saltstack的salt.client模块可以在python的命令行下或者python脚本里执行相应的salt命令 master端想要执行类似 salt '*' cmd.run 'uptime' 在saltclient里可以这么写 import salt.client local = salt.client.LocalClient() local.cmd('*', 'cmd.run', ['uptime']) 也可以放到后台执行只返回一个jid cmd_async('*', 'cmd.r…
SaltStack介绍 官网:https://docs.saltstack.com/en/latest/ 中国saltstack用户组http://www.saltstack.cn/ 下图是它的子系统和扩展插件:…
作者:刘耀 QQ:22102107 一.目标(targeting Minions) 1.匹配Minions Id 匹配所有 (*) [root@node1 salt]# salt '*' test.ping node2.minion: True 匹配后面是.minion的 [root@node1 salt]# salt '*.minion' test.ping node2.minion: True 匹配一个(?) [root@node1 salt]# salt '*node?.minion' t…