2.2 salt 远程执行 Returners 配置管理 jinja

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:

http://www.cnblogs.com/caoxiaojian/p/5084494.html


doc

https://docs.saltstack.com/en/latest/


目录

远程执行

Returners

配置管理



远程执行

目标(Targeting)

模块(Module)

返回(Returnners)



Targeting目标

1、Globbing and regex


    匹配minions 通过通配符和正则表达式,与minion ID有关系。


    链接:使用通配符和正则表达式来匹配


2、Grains


   用来匹配minion的grains,是指那些关于minion主机的静态信息,比如OS,软件版本,虚拟化,CPU,内存等等。


    链接:使用Grains来匹配


3、Pillar


     通过用户定义的变量匹配minion主机


     链接:使用Pillar来匹配


4、Subnet/IP Address


      通过子网或IP地址匹配minion主机(当前仅支持IPV4)。


      链接:通过IP/subnet来匹配


5、Compound matching


       把上面的全部匹配器组合为一个表达式。


       链接:使用组合集合匹配


6、Node groups


       在master配置文件中静态定义minion组,使用:ref:复合 <targeting-compound> 匹配语法。


       链接:使用节点组匹配


7、Batching execution


      一些命令集在匹配上的minions时只需要执行一次。


       链接:只要执行一次的内容


Modules模块

用户权限的限制

# 设置用户名:larry,和可以执行的命令

[root@linux-node1 ~]# vim /etc/salt/master 

245 client_acl:

246   larry:

247     - test.ping

248     - network.*


Returners

Salt返回接收器(returner)允许把minion的响应保存在各种数据存储或不同的位置,甚至把响应内容显示在命令行

Returner可以用来扩展Salt,和新的、定制的接口和支持新的数据库进行通信。

vim /etc/salt/master 

#return: mysql

master_job_cache: mysql

mysql.host: '10.0.0.7'

mysql.user: 'salt'

mysql.pass: 'salt'

mysql.db: 'salt'

mysql.port: 3306


此种方式是主动去Minion端获取,推荐使用。

如果不加job_cache,开启上面的return,就是被动接收。需要客户端也要修改配置文件,添加同样的内容。


检查是否生效 

/etc/init.d/salt-master restart

salt '*' saltutil.refresh_pillar


[root@linux-node1 ~]# /etc/init.d/salt-master restart

[root@linux-node1 ~]# salt '*' saltutil.refresh_pillar

linux-node1.example.com:

    True

linux-node2.example.com:

    True

[root@linux-node1 ~]# salt '*' test.ping

linux-node2.example.com:

    True

linux-node1.example.com:

    True


# 数据库中检查有么有获取到数据(主动去minion端获取)

mysql> use salt;

mysql> select * from salt_returns;


配置管理

[root@linux-node1 ~]# vim /etc/salt/master 

file_roots:

  base:

    - /srv/salt/base

  test:

    - /srv/salt/test

  prod:

    - /srv/salt/prod

# 执行方式一

# 执行状态(单独执行某个状态)

[root@linux-node1 files]# salt '*' state.sls dns

# 到minion端查看

[root@linux-node2 ~]# cat /etc/resolv.conf 

# Generated by NetworkManager

nameserver 10.0.0.2

#########


# 执行方式二

# 如果想使用高级状态执行,需要在top.sls中写明

[root@linux-node1 files]# vim /srv/salt/base/top.sls 

base:

  '*':

    - dns

# 执行高级状态,从top.sls中读取,在执行

[root@linux-node1 files]# salt '*' state.highstate


jinja模版

jinja模版的创建

# jinja模版

# 有- template: 就代表这个文件就是一个模版文件

# - defaults:  是变量列表

[root@linux-node1 base]# vim dns.sls 

/etc/resolv.conf:

  file.managed:

    - source: salt://files/resolv.conf

    - user: root

    - group: root

    - mode: 644

    - template: jinja

    - defaults:

      DNS_SERVER: 10.0.0.2


jinja模版的使用

# 模板文件里面变量使用方式` DNS_SERVER `

[root@linux-node1 base]# vim /srv/salt/base/files/resolv.conf 

# Generated by NetworkManager

# nameserver 10.0.0.2

nameserver ` DNS_SERVER `

# 执行高级状态

[root@linux-node1 base]# salt '*' state.highstate

# minion端查看,nameserver 自动将变量代换

[root@linux-node2 ~]# cat /etc/resolv.conf 

# Generated by NetworkManager

# nameserver 10.0.0.2

nameserver 10.0.0.2


jinja模版中使用Grains

# 使用grains

[root@linux-node1 base]# cat /srv/salt/base/files/resolv.conf 

# Generated by NetworkManager

nameserver 10.0.0.2

# {{ grains['fqdn_ip4'] }}

# minion端查看

[root@linux-node2 ~]# cat /etc/resolv.conf 

# Generated by NetworkManager

nameserver 10.0.0.2

# ['10.0.0.8']


还可以在jinja模版中使用执行模块和Pillar


相关文章
|
监控 NoSQL Java
十八张图带你入门实时监控系统HertzBeat
我们经常讲:研发人员有两只眼睛,一只是监控平台,另一只是日志平台。在对性能和高可用讲究的场景里,监控平台的重要性再怎么强调也不过分。 这篇文章,我们聊聊开源实时监控告警系统 HertzBeat 赫兹跳动。
十八张图带你入门实时监控系统HertzBeat
|
安全 算法 Java
SpringSecurity 快速入门
SpringSecurity 快速入门
321 3
|
JSON 应用服务中间件 API
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
1397 1
|
机器学习/深度学习 虚拟化 数据中心
NVIDIA T4和A10:不同应用场景下的GPU加速器选择
在数据中心和云计算领域,GPU加速器扮演着至关重要的角色。NVIDIA T4和A10是两款适用于不同应用场景的GPU加速器。本文将比较它们的性能和适用场景,帮助读者更好地选择适合自己需求的GPU实例。
6996 0
|
运维 Kubernetes 安全
云原生安全 — seccomp应用最佳实践
近期针对Linux内核的CVE漏洞频出,CVE-2022-0185、CVE-2022-0185、CVE-2022-0847是威胁评分较高且热度较高的几个典型漏洞,相关的POC/EXP利用代码也已经在互联网上公开披露。对于容器场景来说,攻击者的攻击路径也比较相似,都是利用unshare等高危系统调用在新的usernamespace拿到CAP_SYS_ADMIN等高权限capabilities后利用漏
3365 0
云原生安全 — seccomp应用最佳实践
|
运维 资源调度 Kubernetes
Kubernetes Scheduler Framework 扩展: 1. Coscheduling
# 前言 ## 为什么Kubernetes需要Coscheduling功能? Kubernetes目前已经广泛的应用于在线服务编排,为了提升集群的的利用率和运行效率,我们希望将Kubernetes作为一个统一的管理平台来管理在线服务和离线作业。但是默认的调度器是以Pod为调度单元进行依次调度,不会考虑Pod之间的相互关系。但是很多数据计算类的作业具有All-or-Nothing特点,要求所有的
3511 0
|
弹性计算 容器 RDMA
在Kubernetes上使用RDMA
### RDMA RDMA(全称RemoteDirect Memory Access) 它为了解决网络传输中服务器端数据处理的延迟而产生。 它的原理是将待传输的数据从一台计算机的内存,直接传输到另一台计算机的内存,整个传输过程无需操作系统和协议栈的介入。
11196 0
|
人工智能 运维 监控
容器服务Kubernetes场景下可观测体系生产级最佳实践
阿里云容器服务团队在2024年继续蝉联Gartner亚洲唯一全球领导者象限,其可观测体系是运维的核心能力之一。该体系涵盖重保运维、大规模集群稳定性、业务异常诊断等场景,特别是在AI和GPU场景下提供了全面的观测解决方案。通过Tracing、Metric和Log等技术,阿里云增强了对容器网络、存储及多集群架构的监控能力,帮助客户实现高效运维和成本优化。未来,结合AI助手,将进一步提升问题定位和解决效率,缩短MTTR,助力构建智能运维体系。
|
网络协议 Windows
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
3372 2

热门文章

最新文章