一、常用操作

①、模块查看

#查看全部模块
[root@k8s_master ~]# salt '*' sys.list_modules      # "*"为所有node节点 (此处可以写通过salt-key -L 命令获取的node节点的名称)
k8s_master:
- acl
- aliases
- alternatives
- archive

查看模块对应的api

salt k8s_master sys.list_state_functions
[root@k8s_master ~]# salt k8s_master sys.list_state_functions pkg    ##查看pkg对应的api
k8s_master:
- pkg.installed
- pkg.latest
- pkg.mod_aggregate
- pkg.mod_init
- pkg.purged
- pkg.removed
- pkg.uptodate
[root@k8s_master ~]# salt k8s_master sys.list_state_functions cmd    ##查看cmd模块对应的api
k8s_master:
- cmd.call
- cmd.mod_run_check
- cmd.mod_watch
- cmd.run
- cmd.script
- cmd.wait
- cmd.wait_call
- cmd.wait_script
- cmd.watch

②、模块使用

查看模块使用说明

salt '*' sys.doc  模块名称(模块api) ## state.apply/cmd.run/...

实例说明:

[root@k8s_master ~]# salt k8s_master sys.doc cmd.run
'cmd.run:' Execute the passed command and return the output as a string Note that ``env`` represents the environment variables for the command, and
should be formatted as a dict, or a YAML string which resolves to a dict. Warning: This function does not process commands through a shell
unless the python_shell flag is set to True. This means that any
shell-specific functionality such as 'echo' or the use of pipes,
redirection or &&, should either be migrated to cmd.shell or
have the python_shell=True flag set here. The use of python_shell=True means that the shell will accept _any_ input
including potentially malicious commands such as 'good_command;rm -rf /'.
Be absolutely certain that you have sanitized your input prior to using
python_shell=True CLI Example: salt '*' cmd.run "ls -l | awk '/foo/{print \$2}'" The template arg can be set to 'jinja' or another supported template
engine to render the command arguments before execution.
For example: salt '*' cmd.run template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print \$2}'" Specify an alternate shell with the shell parameter: salt '*' cmd.run "Get-ChildItem C:\ " shell='powershell' A string of standard input can be specified for the command to be run using
the ``stdin`` parameter. This can be useful in cases where sensitive
information must be read from standard input.: salt '*' cmd.run "grep f" stdin='one\ntwo\nthree\nfour\nfive\n' If an equal sign (``=``) appears in an argument to a Salt command it is
interpreted as a keyword argument in the format ``key=val``. That
processing can be bypassed in order to pass an equal sign through to the
remote shell command by manually specifying the kwarg: salt '*' cmd.run cmd='sed -e s/=/:/g'

查看帮助文档都有那些方法(api):

[root@k8s_master ~]# salt k8s_master sys.list_functions sys
k8s_master:
- sys.argspec
- sys.doc
- sys.list_functions
- sys.list_modules
- sys.list_renderers
- sys.list_returner_functions
- sys.list_returners
- sys.list_runner_functions
- sys.list_runners
- sys.list_state_functions
- sys.list_state_modules
- sys.reload_modules
- sys.renderer_doc
- sys.returner_argspec
- sys.returner_doc
- sys.runner_argspec
- sys.runner_doc
- sys.state_argspec
- sys.state_doc

③、执行命令

[root@k8s_master ~]#  salt --out=raw 'k8s_master' cmd.run_all 'echo HELLO'    #raw格式
{'k8s_master': {'pid': , 'retcode': , 'stderr': '', 'stdout': 'HELLO'}} [root@k8s_master ~]# salt --out=json 'k8s_master' cmd.run_all 'echo HELLO'  #json格式
{
"k8s_master": {
"pid": ,
"retcode": ,
"stderr": "",
"stdout": "HELLO"
}
} [root@k8s_master ~]# salt --out=yaml 'k8s_master' cmd.run_all 'echo HELLO'  #yml格式
k8s_master:
pid:
retcode:
stderr: ''
stdout: HELLO [root@k8s_master ~]# salt --out=nested 'k8s_master' cmd.run_all 'echo HELLO'  #nested格式
k8s_master:
----------
pid: retcode: stderr:
stdout:
HELLO [root@k8s_master ~]# salt --out=quiet 'k8s_master' cmd.run_all 'echo HELLO'    #只执行,不输出

例:检测网络连接情况:

命令执行常用参数

对主机进行过滤参数:

-E,--pcre,通过正则表达式进行匹配:  

salt -E 'k8s.*' test.ping #探测k8s开头的主机id名是否连通

-L,--list,以主机id名列表的形式进行过滤,格式与Python的列表相似,即不同主机id名称使用逗号分离。

salt -L 'k8s_master,k8s_node1' grains.item osfullname #获取主机id为:k8s_master,k8s_node1完整操作系统发行版名称

-G,--grain,根据被控主机的grains信息进行匹配过滤,格式为:<grain value>:<grain expression>

salt -G 'osrelease:7.3.1611' cmd.run 'python -V' #获取发行版本号为7.3.1611的python版本号

-I,--pillar,根据被控主机的pillar信息进行匹配过滤,格式为:"对象名称":"对象值"

salt -I 'nginx:root:/data' test.ping #探测具有'nginx:root:/data'信息的连通性。

#pillar属性配置文件如下:
nginx:
root: /data

-N,--nodegroup,根据主控端master配置文件中的分组名称进行过滤。

#分组配置:【/etc/salt/master】
nodegroups:
master: 'k8s_master'
agent: 'L@k8s_node1,k8s_node2'
#其中L@表示后面的主机id格式为列表,即主机id以逗号分隔:G@表示以grain格式描述:S@表示以IP子网或地址格式描述 salt -N agent test.ping #探测agent被控主机的连通性

-C,--compound,根据条件运算符not、and、or去匹配不同规则的主机信息

salt -C 'E@^k8s_node.* and G@os:Centos' test.ping #探测k8s_node开头并且操作系统版本为CentOS的主机的连通性

-S,--ipcidr,根据被控主机的IP地址或IP子网进行匹配

salt -S 192.168.0.0/ test.ping
salt -S 192.168.1.10 test.ping

saltstack 基本操作的更多相关文章

  1. saltstack基本操作第一篇章

    一.安装saltstack 1)官网安装 http://repo.saltstack.com/#rhel saltstack的模块:   https://www.unixhot.com/docs/sa ...

  2. saltstack学习笔记--grains基本操作

    查看当前已经定义的监控项: [root@master ~]# salt "192.168.75.135" grains.items 192.168.75.135:     ---- ...

  3. saltstack系列~第一篇

    一 简介:从今天开始学习saltstack 二 salt的认证系列操作 1 原理 saltstack通过/etc/salt/pki/目录下面的配置文件的密钥进行通信,master端接受minion端后 ...

  4. saltstack 基础入门文档

    saltstack 和 Puppet Chef 一样可以让你同时在多台服务器上执行命令也包括安装和配置软件.Salt 有两个主要的功能:配置管理和远程执行.这里讲述了saltstack的基本使用方法. ...

  5. saltstack(五) saltstack的state状态管理

    一,YAML语法 首先先了解一下YAML,默认的SLS文件的renderer是YAML renderer.YAML是一个有很多强大特性的标记性语言.Salt使用了一个YAML的小型子集,映射非常常用的 ...

  6. 学习saltstack (四)

    一.salt常用命令 salt 该命令执行salt的执行模块,通常在master端运行,也是我们最常用到的命令 salt [options] '<target>' <function ...

  7. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  8. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  9. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

随机推荐

  1. Linux内核第二节

    作者:武西垚 深入理解函数调用堆栈 堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间 堆栈的作用 函数调用框架 传递参数 保存返回地址 提供局部变量空间 堆栈相关的寄存器 esp,堆栈指针,指 ...

  2. 20135337——linux实践三:ELF文件格式分析(32位系统)

    ELF文件格式分析 可重定位文件 十六进制形式显示内容 显示各个段.符号表相关信息 查看各个段信息 elf文件头信息 段表 符号表信息 查看堆栈 具体分析 1.ELF文件头信息(小字节优先,均十六进制 ...

  3. Socket、Session、Option和Pipe

    消息队列NetMQ 原理分析4-Socket.Session.Option和Pipe   消息队列NetMQ 原理分析4-Socket.Session.Option和Pipe 前言 介绍 目的 Soc ...

  4. linux 终端快捷操作

    终端一些常用快捷键 按键 作用 Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行 Ctrl+z 将当前程序放到后台运行,jobs命令查看后台工作,命令&quo ...

  5. CSS 选择器继承和层叠

    CSS选择器及其继承特性.层叠特性1.基本选择器  标记  id  class  这个就不再作介绍了 2.复合选择器  交集 交集选择器由两个选择器直接连接构成,其结果是选中二者各自元素范围的交集 其 ...

  6. Node params和query的Get请求传参

    //1:加载http express框架//2:创建服务器const http = require("http");const express = require("ex ...

  7. mysql 分页数据错乱

    最近在使用mysql 分页查询数据的时候发现返回的数据与预期的不一样,显示数据重复错乱. 在官方文档 有这样一句话 If multiple rows have identical values in ...

  8. Java常用工具方法

    以GET请求形式获取文本文件内容 /** * 以GET请求形式获取文本文件内容 * @param url http下载地址,比如http://www.abc.com/123.css * @return ...

  9. jenkins--svn+Email自动触发3(jenkins全局设置)

    全局java配置: 全局sonar-scanner插件配置:

  10. Django model 字段详解

    字段类型选择: AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 ...