前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Saltstack远程执行

Saltstack远程执行

作者头像
用户8851537
修改2021-07-26 18:10:41
修改2021-07-26 18:10:41
6950
举报

Saltstack四种运行方式:

  • local:一台本地自运行
  • Minion/Master: 就是C/S模式
  • Syndic 代理组件管理(可以理解成zabbix proxy模式)
  • Salt SSH: 不用安装agent,也能通过SSH收集信息

1. Saltstack的远程执行概念

远程执行是Saltstack的核心功能之一。主要使用Salt模块批量给选定的minion端执行相应的命令,并获得返回结果。

举例1:如上文例子“判断Salt的minion是否存活?”

salt:是saltstack自带的一个命令

* :表示目标主机,这里表示所有目标主机

test.ping:test是saltstack中的一个模块,ping则是这个模块下面的一个方法

举例:2:saltstack使用cmd.run模块远程执行shell命令

2.Salt命令的结构语法

salt'<target>'<function> [arguments]

目标主机target匹配方式:

  • 与minionID有关的采用,通配符、列表和正则;
  • 与minionID无关的采用,IP、复合、分组、Grains、Pillar

远程执行常用模块(点击所有模块列表):

  • test 模块:用于测试
  • user模块:用于用户管理
  • cmd模块:用于执行任意shell命令
  • pkg模块:用于软件包管理
  • file模块:用于配置
  • service模块:用于服务管理

3.Salt命令的目标主机target匹配方式

3.1 通配符匹配

[root@Saltstack01 /]# salt'*' test.ping

[root@Saltstack01 /]# salt'Saltstack02' test.ping

[root@Saltstack01 /]# salt'*02' test.ping

[root@Saltstack01 /]# salt'Saltstack0[1|2]' test.ping

[root@Saltstack01 /]# salt'Saltstack0[!1|2]' test.ping

[root@Saltstack01 /]# salt'Saltstack0?' test.ping

3.2 列表匹配

[root@Saltstack01 /]# salt -L'Saltstack01,Saltstack02'test.ping

3.3 正则匹配

[root@Saltstack01 /]# salt -E'^Salt' test.ping

[root@Saltstack01 /]# salt -E'^Salt.*2' test.ping

3.4 IP匹配

[root@Saltstack01 /]# salt -S'172.18.20.227' test.ping

[root@Saltstack01 /]# salt -S'172.18.20.0/24' test.ping 

3.5 复合匹配 

[root@Saltstack01 /]# salt -C'G@os:Centos and S@172.18.20.227'test.ping

3.6 分组匹配 

[root@Saltstack01 /]# vim /etc/salt/master

nodegroups:

webserver:'Saltstack01,Saltstack02'

dbserver:'Saltstack03'

[root@Saltstack01 /]# systemctl restart salt-master

[root@Saltstack01 /]# salt -N'webserver' test.ping

[root@Saltstack01 /]# salt -N'dbserver' test.ping

3.7 Grains匹配 

[root@Saltstack01 /]# salt -G'os:Centos' test.ping

[root@Saltstack01 /]# salt -G'localhost:Saltstack02' test.ping

4.Salt命令的远程执行常用模块

4.1 test模块 

功能:用于测试。

[root@Saltstack01 /]# salt'*'test.ping

4.2 user模块 

功能:详见官方

salt'*'user.add name <uid> <gid> <groups> <home> <shell>

4.3 cmd模块 

功能:实现远程的命令行调用执行,可以使用shell所有命令(默认具备root操作权限,使用时需评估风险)

4.4 pkg模块 

功能:软件包状态管理,会根据操作系统不同,选择对应的安装方式(如CentOS系统默认使用yum,Debian系统默认使用apt-get)

[root@Saltstack01 /]# salt'*' pkg.install"vsftpd" #安装

[root@Saltstack01 /]# salt'*' pkg.remove"vsftpd" #卸载

[root@Saltstack01 /]# salt'*' pkg.latest_version"vsftpd" #安装最新版本

[root@Saltstack01 /]# salt'*' pkg.upgrade"vsftpd" #更新软件包

[root@Saltstack01 /]# salt'*' pkg  #查看帮助手册

表上表示已安装程序包。

4.5 file模块 

功能:被控主机常见的文件操作,包括文件读写、权限、查找、校验。

#校验所有minion主机文件的加密信息,支持md5、sha1、sha224、shs256、sha384、sha512加密算法

[root@Saltstack01 /]# salt'*' file.get_sum /etc/passwd md5

#修改所有minion主机/etc/passwd文件的属组、用户权限、等价于chown root:root /etc/passwd

[root@Saltstack01 /]]# salt'*' file.chown /etc/passwd root root

#获取所有minion主机/etc/passwd的stats信息

[root@Saltstack01 /]]# salt'*' file.stats /etc/passwd

#获取所有minion主机/etc/passwd的权限mode,如755,644

[root@Saltstack01 /]]# salt'*' file.get_mode /etc/passwd

#修改所有minion主机/etc/passwd的权限mode为0644

[root@Saltstack01 /]]# salt'*' file.set_mode /etc/passwd 0644

#在所有minion主机创建/opt/test目录

[root@Saltstack01 /]]# salt'*' file.mkdir /opt/test

#在所有minion主机穿件/tmp/test.conf文件

[root@Saltstack01 /]]# salt'*' file.touch /tmp/test.conf

#将所有minion主机/tmp/test.conf文件追加内容'maxclient 100'

[root@Saltstack01 /]]# salt'*' file.append /tmp/test.conf'maxclient 100'

#删除所有minion主机的/tmp/test.conf文件

[root@Saltstack01 /]]# salt'*' file.remove /tmp/test.conf

4.6 service模块 

功能:被控主机程序包服务管理.

#开启(enable)禁用(disable)

salt'*' service.enable <service name>

salt'*' service.disabled <service name>

#reload、restart、start、stop、status操作

salt'*' service.reload <service name>

salt'*' service.restart <service name>

salt'*' service.start <service name>

salt'*' service.stop <service name>

salt'*' service.status <service name>

......

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Saltstack的远程执行概念
  • 2.Salt命令的结构语法
  • 3.Salt命令的目标主机target匹配方式
  • 4.Salt命令的远程执行常用模块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档