saltstack SLS】的更多相关文章

本文主要以实例的形式去熟悉sls的部署流程及相关模块的使用 文件下载:https://github.com/unixhot/saltbook-code 目录结构 [root@k8s_master saltbook-code-master]# tree saltstack-haproxy/ saltstack-haproxy/ ├── pillar │ └── base │ ├── top.sls │ └── zabbix │ └── agent.sls └── salt ├── base │ ├…
一.使用saltstack 批量安装nginx 1.创建salt目录 mkdir /srv/{salt,pillar} 2.再/srv/salt/下创建sls文件 vim nginx_install.sls 3.输入内容 # 备注安装程序 nginx-install: # 指定安装程序 pkg.installed: # 指定安装程序名 - names: # 指定服务 - nginx # 第一行需要管理的文件名,minion端指定路径 /etc/hosts: # 两个空格,写入方法名.如下方法为管…
SLS文件定义 SLS(代表SaLt State文件)是Salt State系统的核心.SLS描述了系统的目标状态,由格式简单的数据构成.这经常被称作配置管理 top.sls 是配置管理的入口文件,一切都是从这里开始,在master 主机上,默认存放在/srv/salt/目录.  top.sls 默认从 base 标签开始解析执行,下一级是操作的目标(被控主机),可以通过正则,grain模块,或分组名,来进行匹配,再下一级是要执行的state文件,不包换扩展名. 创建top.sls (一)被控主…
一.使用sls文件 批量添加计划任务 1.创建salt目录 mkdir /srv/{salt,pillar} 2.再salt目录下创建文件 vim crontab.sls 3.添加内容 # 添加的命令 /usr/sbin/ntpdate times.aliyun.com >>/dev/null: # 计划任务,命令 cron.present: # 用户文件 - user: root # 没五分钟执行一次 - minute: '*/5' 注:minute分钟,hour小时,daymonth日,m…
一.创建salt管理配置文件:将所有minion 指定文件替换为master端的文件. 1.创建salt管理目录,并创建salt配置文件规范 # 创建salt文件目录 mkdir /srv/{salt,pillar} # 创建编辑sls文件 vim host_file.sls 注:salt配置文件后缀必须是sls. 2.编辑sls文件 ---------------------------------------- # 第一行需要管理的文件名,minion端指定路径 /etc/hosts: #…
piller组件定义与客户端相关的任何数据(定义在master端),定义好的数据可以被其他组件调用(如state,api) 说通俗了,一句话,就是ansible vars里定义的变量,可以在整个playbook中引用,只不过pillar中只有指定的minion自己能看到自己的数据. 启用piller功能并查看 [root@k8s_master ~]# cat /etc/salt/master |grep -v '^#\|^$' cachedir: /var/cache/salt/master a…
写在前面的话 当我们需要进行一系列可重复且复杂的操作的时候,如果还继续用传统的 cmd.run 来执行显然难以满足我们的需求.这时候就会在想一个问题,我们能不能把这些操作编辑成一个类似脚本的操作,我们只需要运行这个脚本,达到在指定目标机器上执行的意义.而且通过 saltsatck 帮我们自动兼容多种 linux 系统.这里我们就来谈一下解决思路之一的 saltstack sls 配置管理. YUM 安装示例 我们可以查看一下 apache 安装配置格式: apache-install: pkg.…
saltstack简介 SaltStack是一种新型的基础设施管理软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltStack提供了一个动态基础设施通信总线用于编排,远程执行.配置管理等等.SaltStack项目于2011年启动,年增长速度较快,五年期固定基础设施编制和配置管理的开源项目.SaltStack社区致力于保持slat项目集中.友好.健康.开放. 简单来说它的两大基础功能就是:配置管理.远程命令执行.剩下就是根据你的需求自由组合,…
转自:https://segmentfault.com/a/1190000000513137 今天在进行 saltstack 多环境的时候,遇到一个问题,最终得到解决,好记性不如烂笔头,记录. 首先,我在 salt master 服务器上对 /etc/salt/master 配置文件进行多环境配置,配置文件如下: file_roots: base: - /srv/salt/base dev: - /srv/salt/dev prod: - /srv/salt/prod test: - /srv/…
state模块 state模块会调用它的sls函数处理一个以.sls结尾的配置文件. sls文件是YAML语言来进行描述的 缩进 不要使用`tab`因为tab是四个空格,而YAML是使用两个空格 冒号 key: value //第一种 key: value //第二种 在Python中映射为 {'key': value} 短横杠 - - v1 - v2 - v3 //同一级别的缩进表示一个列表 key: - v1 - v2 - v3 映射到Python里面就是{'key': [v1,v2,v3]…
一直用的 jenkins + saltstack 自动化构建发布项目,一共也就不超过20台服务器,奈何运行时间越来越慢,并且负载越来越高(这里大部分都是使用state模块),但是不用state模块效率挺高的,所以初步锁定坑应该在 state配置以及运行机制上. 查阅各种资料果不其然,需要注意几点. Minion 配置 By default, the Salt fileserver recurses fully into all defined environmentsto attempt to…
SLS(代表SaLt State文件)是Salt State系统的核心.SLS描述了系统的目标状态,由格式简单的数据构成.这经常被称作配置管理 首先,在master上面定义salt的主目录,默认是在/srv/salt/下面,vim /etc/salt/master: file_roots: base: - /srv/salt dev: - /srv/salt-dev 然后,在/srv/salt下面创建top.sls文件(如果有的话,就不用创建了,直接编辑好了) vim top.sls base:…
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之无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项目实战 系统架构图 一.初始化 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数据系统 分为Grains和Pillar 一.Grains 静态数据,当Minion启动的时候收集的MInion本地的相关信息.(包含操作系统版本.内核版本.CPU.内存.硬盘.设备型号等) 备注:不重启minion,这些信息数据是不会改变的. 1)信息管理,包括资产管理: 例: salt 'linux-node1*' grains.ls # 列出ID为linux-node1的主机,grains的所有key salt 'linux-node1*' grains.items #…
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是基于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…
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…
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…
环境: master: 节点node1:阿里云:121.42.195.15 centos6.6 minion: 节点node2:腾讯云:182.254.157.19 centos6.6 一.saltstack快速配置 saltstack基本介绍 SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyz…
场景:rpm包安装的nginx服务,无法满足定制模块的需求,故线上环境使用nginx源码进行安装.本片文章详细介绍如何使用saltstack的配置管理功能实现nginx软件的源码安装. 下载源码:pcre下载源码:nginx 1.修改master配置文件,指定环境为prod. [root@node1 prod]# egrep -A ^file_roots /etc/salt/master file_roots: base: - /srv/salt/base dev: - /srv/salt/de…
场景:公司有10台服务器需要安装lamp测试环境,使用saltstack编写state文件进行批量部署,可以提高工作效率,减少人为出错的可能性,保证环境的一致性. saltstack之配置管理lamp实战案例: 1.修改master配置文件,指定dev环境. [root@node1 dev]# egrep -A ^file /etc/salt/master file_roots: base: - /srv/salt/base dev: - /srv/salt/dev 2.编写state文件,最终…
saltstack的配置管理分环境管理:①.base为基础环境,一般会存放一些所有服务器都使用的配置管理信息.②.dev为开发测试环境,一般会存放一些开发测试服务器使用的配置管理信息.③.pro为线上环境,一般会存放线上服务器使用的配置管理信息.saltstack的配置管理的state文件入口为top.sls,建议每个环境配置一个top.sls文件. saltstack之系统初始化实战案例:1.修改node1上master配置文件,定义base环境. [root@node1 ^file_root…
配置管理是saltstack工具最重要的模块之一,也是学习saltstack之后使用最多的一个功能.可以轻松实现上百台上千台甚至上万台服务器的管理工作. 1.使用state模块进行配置管理,编写sls文件,sls文件使用的是yaml语法格式. yaml文件的语法格式: structure通过空格来展示. sequence里的项用"-"来表示. map里的键值对用":"来表示. 2.常用的state模块及方法:file: file.managed --文件管理(重点)…