那么大量的minion上运行远程命令就必须使用salt提供的“状态管理”了,状态是对minion的一种描述和定义,运维不需要关心部署是如何完成的,只需要描述minion需要达到什么状态。...组件 Pillar也是saltstack组件中非常重要的组件之一,称作数据管理中心,经常配合states在大规模的配置管理中使用。...Pillar是动态的,存储在master端,提供和给minion端 Pillar在SaltStack中主要的作用是存储和定义配置管理中需要的一些数据,比如软件版本号,用户账号密码等,保证敏感数据不被其他...etc/salt/master #此配置代表pillar的工作根目录,在/srv/pillar下,然后可以新建sls文件 #pillar_roots: # base: # - /srv/pillar...默认pillar的工作目录在/srv/pillar目录下,执行如下代码 [root@master ~]# mkdir -p /srv/pillar #指定环境,标记,引用packages.sls和services.sls
说明 下文的案例是根据上一篇文章进行的修改。因此请优先读取上一章博文内容《Saltstack_使用指南11_配置管理-状态之间依赖关系》 2. 主机规划 ?...3. jinja 用法 1 # 注意有空格 2 这里有两种分隔符: {% ... %} 和 {{ ... }} 。前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上。...:salt 远程执行、grains 和 pillar 进行赋值 4....本章涉及的 pillar 的信息 可参见:《Saltstack_使用指南05_数据系统-Pillar》 1 [root@salt100 pillar]# pwd 2 /srv/pillar 3 [...minion 14 'salt03': 15 - web_pillar.apache 16 - web_pillar.user # 引用 17 [root@salt100 pillar
一、saltstack 简介 SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统,包括VMware vSphere环境。SaltStack作用于仆从和主拓扑。...由于它提供了在管理远程系统的灵活性,SaltStack-based产品迅速获得利益。该功能可以对比由状态管理系统提供的功能,如Puppet和Ansible。...和Low Data(低级数据?),高级数据我理解的就是我们编写sls文件的数据,低级数据就是经过render和parser编译过的数据。...推荐阅读: saltstack常用管理命令 saltstack使用event机制来监控salt运行 saltstack 中pillar和grains的区别 saltstack master和...minion认证机制 saltstack自定义模块示例 使用salt state执行一个复制文件并执行的任务 saltstack pillar设置 saltstack的nodegroups配置
24.5 saltstack远程执行命令 saltstack的salt命令可以用于远程在minion端上执行命令,本节介绍一下salt的常用语法。...~]# ---- 24.7 pillar pillar和grains不一样,pillar是在master上定义的,并且是针对minion定义的一些信息。...去安装httpd 通过saltstack工具,我们可以在指定的或所有的minion端上,安装某个服务或工具,本节演示如何使用saltstack在minion端安装httpd服务。...为自定的名字,表示该配置段的名字,可以在别的配置段中引用它, name指定分发到minion端上的哪个路径以及文件名称 source指定文件从哪里拷贝,这里的salt://test/example/example.txt...相当于是/srv/salt/test/example/example.txt, user和group指定文件的属主以及属组 mode则是指定文件的的权限。
一、saltstack简介 Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master 和客户端 minions ;Saltstack...minion_data_cache: True 开启minion的grains和pillar数据的缓存 event_return: mysql 设置return存储 event_return_queue...它还支持 grains 和 pillar,分别加 -G 和 -I 选项,下面会介绍到。...pillar 下面来介绍 grains 和 pillar 1、grains grains 是在 minion(客户端)启动时收集到的一些信息,比如操作系统类型、网卡ip等。 ...file-test 为自定的名字,表示该配置段的名字,可以在别的配置段中引用它;source指定文件从哪里拷贝,这里的 test 目录相当于是 /srv/salt/test 目录;name指定远程客户端要生成的文件
saltstack 常用命令 查看所有的KEYS salt-key –list-all 接受一个特定的钥匙 salt-key –accept=key-name salt-key –accept-all...using lftp: cmd.run: - name: lftp -c "open -u {{ pillar['ftpusername'] }},{{ pillar['ftppassword.../remote" 依赖关系 必需条件允许您明确指定状态中的ID的依赖关系。...因为许多发行版具有不同的包名称,您可以使用os grain来设置平台特定的路径,包名称和其他值。.../ columns / common.sls文件中,然后运行以下命令进行刷新,然后列出每个子节点的Salt柱值 salt ‘*’ saltutil.refresh_pillar salt
一、利用 Saltstack 远程执行命令 Saltstack的一个比较突出优势就是具备执行远程命令的功能。..._2: True 复制代码 1.3 获取主机 id 名为 saltstack_web1group_1和saltstack_web1group_2 获取完整操作系统发行版名称 -L:--list...2.6.6 saltstack_web1group_2: Python 2.6.6 复制代码 1.5 过滤所有具备 'apache:httpd' pillar 值的主机 -I:--pillar...根据被控主机的pillar(作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用)信息进行过滤匹配,格式为'对象名称:对象值'。..._2: True 其中pillar属性配置文件如下: httpd: root: /data 复制代码 1.6 探测 web1group(或web2group)被控主机的连通性 -N:--nodegroup
默认SaltStack的state脚本都是在当前Python版本的site-packages/salt/states/下 SaltStack没有一个比较合适的state的话,我们还可以通过Python语言去定义一个...然后我们编写的state脚本去真正去完成我们想要的结果 4.ext_pillar与ext_nodes 4.1.1 ext_pillar 写过 245页 官网一个Hiera例子 data = yaml.safe_load...salt: [] 这里ext_pillar接口的脚本就叫做salt.py,脚本的路径是在/srv/salt/modules/pillar/目录下 脚本返回字典就行。...4.2 理解ext_nodes流程和案例 238页 平常使用SaltStack的state的时候 top.sls入口文件 top.sls作用是指定Minion与state.sls文件的对应关系 目的top.sls...的扩展 SaltStack除了支持默认roots fileserver以外,还支持git fileserver salt '*' pillar.get master:environment(这点是至关重要的
grains数据是静态的。...2.在minion配置文件进行自定义 3.在Master端定义grains推送Minion 2.数据系统Pillar Pillar是动态的,Pillar存储在master端,提供给minion...Pillar在SaltStack中主要作用是存储和定义配置管理中需要的一些数据,比如软件版本号、用户名密码等信息,它的存储格式跟Grains类似,都是YAML格式。 ?...base: 'salt2-minion.example.com': - zabbix 3.刷新Pillar [root@saltstack01 ~]# salt '*' saltutil.refresh_pillar...[root@salt0-master ~]# salt 'salt2-minion.example.com' pillar.item Zabbix_Server 注意: 如果Master更新了新的数值
saltstack 实践 部署 master 服务端 安装shell yum install salt-master salt-minion salt-ssh \ salt-syndic salt-cloud...file_roots /etc/salt/master || cat > /etc/salt/master<< EOF auto_accept: True hash_type: sha256 #指定files和pillar...环境的路径 file_roots: base: - /srv/salt/base dev: - /srv/salt/dev prod: - /srv/salt/prod...pillar_roots: live: - /srv/salt/pillar/live game: - /srv/salt/pillar/game #主机分组 nodegroups...cat roster #推荐使用key方便密码管理 account-1-3: host: 10.x.x.3 user: super sudo: True 客户端推送key #可以和jumpserver
说明: Syndic 节点可以看作是一个特殊的直通minion节点。Syndic 节点由salt-syndic和salt-master组成。...其中salt-master用于控制更低级的minion节点,salt-syndic用于连接更高级的master节点(有时也称为master的master)。...重点: Syndic的file_roots和pillar_roots必须与高级master保持一致 缺点: 高级Master并不知道自己到底有多少个minion。 3. 结构图下部分实现 ?...其他配置与部署 具体实现可参见:《Saltstack_使用指南01_部署》和《Saltstack_使用指南15_多master》 按照步骤走即可实现 4. Syndic实现步骤 4.1....2 salt '*' pillar.item level1:level2:my_user:0 3 salt '*' grains.item roles ———————————————END———
设计:多redis启动只需要一个配置文件和启动脚本即可,而启动程序是不变的,那么我可以安装一个redis,以/usr/local/redis目录为例,在目录下生成基于应用的redis,下发对应的脚本到/...init.d脚本 2.脚本内容必须有start、stop、status,status必须有,因为service模块会先执行status来判定服务是否在运行,在执行启动 3.脚本包含启动和关闭参数...redis/redis-s-group redis.conf /etc/init.d/redis-s-user /etc/init.d/redis-s-group 上述设计完成,那么开工,Saltstack...之前在部署时,出现客户端手工执行正确,但saltstack调用死活都不成功,告诉我已运行,且需要个状态。...设计:多redis启动只需要一个配置文件和启动脚本即可,而启动程序是不变的,那么我可以安装一个redis,以/usr/local/redis目录为例,在目录下生成基于应用的redis,下发对应的脚本到/
salt-minion --version 4 salt-minion 2018.3.3 (Oxygen) salt 无master文档 standalone_minion https://docs.saltstack.com.../en/latest/topics/tutorials/standalone_minion.html salt-call https://docs.saltstack.com/en/latest/ref...file_client runs the 6 # minion in masterless mode. 7 #file_client: remote 8 file_client: local # 从默认的...3、file_roots和pillar_roots设置 使用默认的即可,不需要设置 4、External pillars设置 无master模式支持External pillars 3....1的数据 28 local: 29 ---------- 30 roles:1: 31 memcache03 3.3. pillar设置 1 [root@salt01
和minion的pki目录 ?...4)上面认证完成后再次查看master和minion的pki目录 ?...Saltstack远程执行 远程执行是 Saltstack 的核心功能之一。主要使用 salt 模块批量给选定的 minion 端执行相应的命令,并获得返回结果。...每行包含函数参数的行都以两个空格缩进开头,然后是连字符,然后是一个额外的空格。 如果参数采用单个值,则名称和值位于由冒号和空格分隔的同一行中。...: //指定pillar 目录, 默认为: pillar_roots: base: - /srv/pillar log_level: //日志级别 支持的日志级别有
它提高了系统管理员的自由度和职责履行能力。最低的 Ceph 设置能够很好地满足演示目的,但无法展示 Ceph 在处理大量节点时可体现的卓越功能。...DeepSea 会收集并储存有关单台服务器的相关数据,例如地址和设备名称。对于诸如 Ceph 的分布式储存系统,可能需要收集并储存数百个这样的项目。...SaltStack 基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、 python-msgpack和PyYAML等...SaltStack: Pillar 和 Grains 详解 SatlStack 远程执行 1、远程执行 目标 (Targeting) 模块 (Module) 返回 (return) 2、目标 (1...(定义 salt 的pillar) 阶段 3 — 部署:创建包含必要 Ceph 服务的基本 Ceph 群集。
中国Saltstack用户组:http://www.saltstack.cn Saltstack组件: Salt Master组件:用于向在Salt Minion设备上运行的Salt管理器发送命令和配置...Grain是关于底层托管系统的静态信息,包括操作系统、内存和许多其他系统属性。您还可以为任何系统定义自定义Grain。 Pillar组件:用户定义的变量。...Salt Pillar数据存储端口、文件路径、配置参数和密码等值。 Top File组件:将公式和Salt Pillar数据与Salt Minion匹配。...Saltstack01的目录 image.png Saltstack02的目录 image.png 2.2 配置Saltstack01和Saltstack02的minion配置文件, 并启动salt-minion...此时Saltstack01的目录 此时Saltstack02的目录(启动minion之后就有了pki目录,并生成两个公钥和私钥文件) image.png 2.3 Salt minion和Salt
Pillar文档 https://docs.saltstack.com/en/latest/topics/pillar/index.html 注意事项 修改了master或者minion的配置文件,那么必须重启对应的服务...Grains VS Pillar ? 3. Pillar基本信息 1 Pillar 2 Pillar数据是动态的 给特定的minion指定特定的数据。...显示系统自带的pillar 系统自带的pillar默认是不显示的 注意:看完之后还原回去,因为数据较多。和自定义数据杂在一起,不方便查看 4.1....grains情况 并包含优先级和 or 或 and 的写法 1 [root@salt100 web]# pwd # 定义一个文件目录,方便后期维护 2 /srv/pillar/web_pillar...- web_pillar.apache 16 - web_pillar.user # 引用 7.3. pillar信息刷新并查看 1 [root@salt100 pillar]# salt
引言 SaltStack是VMware子公司,其产品用于运维管理,能够支持数万台服务器,主要功能是配置文件管理和远程执行命令,十分易用且强大,在github有11.4k star。... CVE-2021-25282 有限制任意文件写漏洞 其中salt/salt/wheel/pillar_roots.py:write()方法存在任意写入文件漏洞,不过需要__opts__["pillar_roots...这里的读文件是没有办法利用的,由于是异步调用,所以返回的是jid和tag,通过jid和tag去查询任务执行的结果时是有认证的。...salt/salt/wheel/pillar_roots.py:write() ?...,grains为saltstack收取各个minion中系统信息的功能。
minion机器(配置步骤和之前一样) [root@linux-node3 ~]# cat /etc/salt/minion|grep -v "^#"|grep -v "^$" master: 192.168.1.101...在运维中的常规操作做一详细解析: 1)利用Saltstack远程执行命令 saltstack的一个比较突出优势就是具备执行远程命令的功能...-168-1-102: Python 2.7.8 minion-192-168-1-118: Python 2.7.8 d)-I:--pillar 根据被控主机的pillar...(作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用)信息进行过滤匹配,格式为'对象名称:对象值',比如过滤所有具备'apache:httpd' pillar值的主机。...常用模块及API saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能、常用工具支持等,更多模块信息请见:https://docs.saltstack.com/en/latest/ref
1.介绍 Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master 和客户端 minions ;Saltstack 和 Puppet 很像...,默认4506端口)和publish_port(saltstack的消息发布系统,默认4505端口)的端口。...这些 Target都是通过去管理和匹配Minion的ID来做的一些集合。...pillar 和 grains 不一样,是在 master 上定义的,并且是针对 minion 定义的一些信息。...file-test 为自定的名字,表示该配置段的名字,可以在别的配置段中引用它;source指定文件从哪里拷贝,这里的 test 目录相当于是 /srv/salt/test 目录;name指定远程客户端要生成的文件
领取专属 10元无门槛券
手把手带您无忧上云