对象的管理

saltstack系统中我们的管理对象叫做target,在master上我们可以采用不同的target去管理不同的minion,这些target都是通过去管理和匹配minion的id来做的一些集合。

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

target参数

1.正则匹配(PCRE)

通过正则表达式来匹配minion id的方式去管理它们:

salt -E '^min' test.ping

2.列表匹配(List)

通过列表的方式去指定minion id

salt -L minion-01,minion-02 test.ping

3.grains匹配

使用minion的grains的键值对去匹配minion id

salt -G 'os:centos' test.ping

4.组匹配(节点组,Nodegroup)

salt -N groups test.ping

groups为组名,需要在配置文件中定义/etc/salt/master

5.复合匹配

salt -C 'G@os:centos or L@minion-01' test.ping

支持使用and和or关联多个条件

6.pillar值匹配

key:value是pillar系统中定义的一组键值对,与grains

salt -I 'key:value' test.ping

7.cidr匹配

cidr匹配的ip地址是minion连接master4505端口的来源地址

salt -S '192.168.2.0/24' test.ping

模块方法的运行

指定target之后,接下来声明运行的方法(function),上面使用了test.ping方法。

方法包含两个部分,通过点来分割:

<模块名>.<方法>

在salt命令中,模块方法紧随target其后,也可以在最后给方法加任何参数:

salt <target> <模块名>.<方法> [参数...]

saltstack模块

Module是我们日常使用接触最多的一个组件,比如简单的执行命令、查看包安装情况、查看服务运行情况等工作都是通过module来实现的。

查看module列表

#salt ‘minion-01’ sys.list_modules

查看指定module的所有function

#salt ‘minion-01’ sys.list_functions cmd

查看module用法

#salt ‘minion-01’ sys.doc cmd

以下模版是salt的核心部分,每个模块中都包含一些常用方法:

test.ping

salt最基本的命令,只要求minion返回True。用于监测minion是否可响应,如果没有响应,则不一定意味着minion宕掉,也可能是由于minion响应慢,如果连续失败那就要注意了。

test.echo

让minion显示除传递给自己的字符串。

test.sleep

需要minion先sleep若干秒后再返回true,常用测试或验证任务系统。

test.version

返回每个minion的salt版本。

pkg.install

指定一个包名或一组软件包,安装软件包功能。

pkg.remove

指定卸载软件包

file.replace

查找、替换需求

还有其他文件类操作方法

用户及用户组管理

sys.doc

查看minion端的所有方法所有内容。指定模块名字就显示模块相关文档,包含该方法的用途,以及至少一个命令行实例。

Saltstack学习之二:target与模块方法的运行的更多相关文章

  1. angular学习笔记(二)-创建angular模块

    如果在页面的html标签(或任意标签)中添加ng-app,表示对整个页面应用angular来管理. 他是一个模块. 模块有助于把东西从全局命名空间中隔离. 今天学习如何自定义创建模块: <!DO ...

  2. OpenCV学习笔记二:OpenCV模块一览

    注:本系列博客基于OpenCV 2.9.0.0 一,一览图: 二,模块: /* 基础库 */ 1,opencv_core(链接) ,opencv最基础的库.包含exception,point,rect ...

  3. node.js入门学习(二)MIME模块,request和response对象,demo之不同url请求不同html页面,页面包含图片、样式css等静态资源

    一.构建http服务程序-根据不同请求做出不同响应 // 加载http模块 var http = require("http"); // 创建一个http服务对象 http.cre ...

  4. 爬虫学习(二)requests模块的使用

    一.requests的概述 requests模块是用于发送网络请求,返回响应数据.底层实现是urllib,而且简单易用,在python2.python3中通用,能够自动帮助我们解压(gzip压缩的等) ...

  5. Python学习札记(二十九) 模块2

    参考:使用模块 NOTE 1.内建sys模块: #!/usr/bin/env python3 import sys 'a test module' __author__ = 'wasdns' def ...

  6. Python学习札记(二十八) 模块1

    参考:模块 NOTE 1.模块:一个.py文件称为一个模块. 2.代码模块化的意义:a.提升程序的可维护性 b.不用重复造轮子 3.避免模块冲突,解决方法:引入了按目录来组织模块的方法,称为包(Pac ...

  7. SaltStack学习系列之state常用模块

    常用模块:cron,cmd,file,mount,ntp,pkg,service,user,group cmd模块 参数: name:要执行的命令 unless:用于检查的命令,只有unless指向的 ...

  8. Python学习总结15:时间模块datetime & time & calendar (二)

    二 .datetime模块  1. datetime中常量 1)datetime.MINYEAR,表示datetime所能表示的最小年份,MINYEAR = 1. 2)datetime.MAXYEAR ...

  9. Python之常用模块学习(二)

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

随机推荐

  1. linux shell脚本之-变量极速入门与进阶(2)

    1,$$:显示当前的进程id号 ghostwu@dev:~/linux/shell/how_to_use_var$ cat show_pid.sh #!/bin/bash echo $$ ghostw ...

  2. 小程序和PHP学习笔记 ----- 不定期更新。

    学习tp5和小程序过程需要记住的重点记录 1,box-sizing: border-box; 规定两个并排的带边框的框 border-box 为元素设定的宽度和高度决定了元素的边框盒. 就是说,为元素 ...

  3. React中使用百度地图API

    今天我们来搞一搞如何在React中使用百度地图API好吧,最近忙的头皮发麻,感觉身体被掏空,所以很久都没来写博客了,但今天我一定要来一篇好吧 话不多说,我们直接开始好吧 特别注意:该React项目是用 ...

  4. 【代码笔记】iOS-tableView滑动的范围函数

    //tableview滑动的范围 -(void)scrollViewDidScroll:(UIScrollView *)scrollView { myTableView.contentSize = C ...

  5. Cookie--小知识总结

    一.何为cookie 由于http协议是无状态的,所以没法知道当前访问的客户端是谁,所以有了cookie这个东西,通过cookie来让服务端知道当前是谁访问我,可以看做是一个身份牌 二.cookie的 ...

  6. linux之sort和uniq

    uniq uniq命令: uniq不加参数,只对相邻的相同行内容去重. 例子如下: [root@localhost ~]# pwd /root [root@localhost ~]# cat oldb ...

  7. WCF服务端开发和客户端引用小结

    1.服务端开发 1.1 WCF服务创建方式 创建一个WCF服务,总是会创建一个服务接口和一个服务接口实现.通常根据服务宿主的不同,有两种创建方式. (1)创建WCF应用程序 通过创建WCF服务应用程序 ...

  8. node webpack4.6简单配置

    package.json { "name": "his-web", "version": "0.0.0", " ...

  9. NetBeans数据库笔记---三层架构

    1.创建数据库,数据表 用MySQL数据库和Navicat for MySQL工具创建表 2.创建实体类——反应表结构(列——变量) 也就是对应表建立的gets和sets方法,实体类的名字一般都与数据 ...

  10. linux 系统中用root切换到普通用户时显示的异常如-bash-4.1$

    解决办法: 其实就是普通用户的家目录缺少配置文件导致: [root@xxx ~]# su - oldboy -bash-4.1$ 原因是普通用户的家目录下缺少文件: [root@xxx ~]# ls ...