[root@master~]# salt \* test.ping

minion-1:

True

minion-2:

True

minion-3:

True

minion-4:

True

True代表正常,没有响应当然代表客户端没有启动或者没有认证成功之类的。

指定目标主要有五种方式

一: Global,即salt默认的匹配方式,能识别终端常用的通配符,如*代表所有

如,salt '*' test.ping

二: List,列表,需-L指定。

如,salt -L 'foo,bar' test.ping 其中foo,bar是完整的minion_id

三:正则表达式,需-E指定。

如,salt -E 'pre[1-7]' test.ping 会匹配pre1,pre2..pre7,并且匹配到左右minion_id里面含有1-7的,如pre-11,pre7也会匹配到,如果只匹配1-7可使用参照下面

如,salt -E ^pre[1-7]$ test.ping或者 salt pre[1-7] test.ping

四:混合模式,需-C指定。里面可以既有正则表达式也有列表等

salt -C "apache* or E@ngin*" test.ping 匹配所有tomcat开头,或者mon开头的

五:分组,需要-N指定,其中组名就是上面/etc/salt/master.d/groups.conf文件里面配置的配置信息。

如,salt -N apache test.ping

然后是模块,主要介绍state,cmd,cp模块

注:想了解某个模块的功能或者具体参数可以

salt \* sys.doc [模块名,如cmd]

即salt \* sys.doc cmd 就会列出相关操作及示例了

远程命令执行

远程命令执行大概是最常用的操作的,比如获取所有minion端的ip地址,查看同一个目录下的文件,全部增加一条环境变量到/etc/profile文件里并刷新环境变量等等操作

cmd模块

主要用此模块的run方法,即cmd.run

使用方式如下,

salt \* cmd.run 'ls /root'

如上所示,选择了所有的客户端,master端用cmd.run模块,把''里面的'ls /root'命令全部分发下去,其中单引号''也可以用双引号""代替,引号的作用就是把被引号的命令传给salt-master,然后master分发给所有的minion执行,上述命令就会列出所有minion端/root目录下的文件

注:引号里面的命令跟在任何一台机器上的命令没有任何区别,唯一的区别就是salt执行的命令默认用的是sh,而我们常用的shell是bash,比如bash中ll是ls –l的别名,而sh里面是没有做ll的别名的,所以引号里面的命令如果用ll命令会提示找不到此命的

cmd有几个有用的参数,在可以着重介绍一下

cwd 定义命令所在的目录,即工作目录,在哪个目录执行操作

如:

复制代码 代码如下:

Salt \* cmd.run cwd=/opt ‘pwd'

minion-id-1:

/opt

runas,定义执行此条命令的用户,使用哪个用户执行这条命令

如:

复制代码 代码如下:

Salt \* cmd.run runas=nobody ‘touch /tmp/file'

然后去客户端就会发现,在/tmp/目录下有一个file文件,拥有者是nobody

然后就state模块了

主要用到的几个方法是sls,highstate,show_sls

在讲state模块的时候首先得了解sls文件。

Sls文件用.sls结尾,放在指定的环境目录下,即提到的/data/salt/base /data/salt/base/sls或者/data/salt/apache/sls等目录

注:假如在这两个目录下有两个一样的sls文件,那么会file_root配置的第一个环境目录,即

比如环境:

base:

复制代码 代码如下:

/data/salt/base

/data/salt/base/sls

会执行/data/salt/base里的sls文件,因为它在前一行

sls文件基本格式如下:

例子一

复制代码 代码如下:

/tmp/ttt20:

file.managed:

- source: salt://files/tst

- mode: 700

- backup: minion

- makedirs: True

例子二

复制代码 代码如下:

testfile:

file.managed:

- name: /tmp/ttt20

- source: salt://files/tst

- mode: 700

- backup: minion

- makedirs: True

如上所示,其实例子一与例子二是达成了一样的效果,只不过写法不一样

像例子一,因为没有- name: /tmp/ttt20所以,它会去第一行的标识作为name

,而例子二的testfile可以任意起名,只要不与该文件中的其他标识一样即可。

上面的例子达到的功能就是,将/srv/salt/files/tst文件复制到客户端的/tmp/ttt20位置,如果存在则替换,如果已存在且一样则提示is correct state,即已经是正确的状态了。

然后就是top.sls

在每个独立的salt环境下有且只能有一个top.sls文件,这个文件为该环境的入口文件,里面记录了目标主机对应的sls文件

如:

base:

minion-id-1:

- test1

- test2

minion-id-2:

- test1

- test3

以tomcat-1为例

它匹配了

- test1

- test2

上面一共是一个2个sls配置文件,即匹配该环境下的test11.sls,test2.sls文件

所以在执行state模块的时候,它会去检索这些对应的配置文件并执行该配置文件里的内容。

注:在前面提到过,这些参数前面的空格不能用tab键补全或者少写,不然会报错,再者就是如果配置文件为xxxx.sls 在调用这个配置文件的时候只要写xxxx,即它的文件名,没有后缀

以test1为例

复制代码 代码如下:

/tmp/testfile.txt:

file.managed:

- source: salt://test.txt

- mode: 700

- user: root

- mode: 644

- makedirs: True

功能就是调用file模块,将salt://test.txt(其中,salt://对于该环境的file_root目录,即/data/salt/base)与目标的/tmp/testfile.txt文件做比对,如不一致则更新。

并且此文件的拥有者为root mask码为644,如果目标文件目录不存在就创建

现在回到highstate,sls,show_sls方法

执行如下

复制代码 代码如下:

salt \* state.sls test

salt \* state.highstate

salt \* state.show_sls test

上面的意思依次是

1.在当前环境下寻找test.sls文件并执行

2.匹配当前环境的top.sls文件所有的sls文件并执行

3.查看当前环境test.sls文件的执行内容,但是不在客户端执行。

注:上面特别提到了是在当前环境,默认情况下,salt只会查找执行base环境下的sls文件,不会执行其他环境的配置文件,所以在不同环境下,需要指定要执行的配置环境,比如apache环境,只是执行apache的sls文件的话,则需声明saltenv=apache,如下

网友评论

文明上网理性发言,请遵守 新闻评论服务协议我要评论

立即提交

专题推荐独孤九贱-php全栈开发教程

全栈 100W+

主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门

玉女心经-web前端开发教程

入门 50W+

主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门

天龙八部-实战开发教程

实战 80W+

主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

php中文网:公益在线php培训,帮助PHP学习者快速成长!

Copyright 2014-2020 https://www.php.cn/ All Rights Reserved | 苏ICP备2020058653号-1

saltstack php,Saltstack快速入门简单汇总相关推荐

  1. 树莓派从零开始快速入门系列汇总

    树莓派从零开始快速入门系列汇总 树莓派从零开始快速入门第0讲--环境安装 树莓派从零开始快速入门第1讲--命令行 树莓派从零开始快速入门第2讲--更换国内源 树莓派从零开始快速入门第3讲--文件编辑 ...

  2. Alibaba Arthas快速入门 简单易懂

    简介 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load.内存.gc.线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参.异常,监测方法执 ...

  3. 【机器学习】快速入门简单线性回归 (SLR)

    简单线性回归图(青色散点为实际值,红线为预测值) statsmodels.api.statsmodels.formula.api 和 scikit-learn 的 Python 中的 SLR 今天云朵 ...

  4. RabbitMQ快速入门--简单队列模型

    入门案例 简单队列模式的模型图: 官方的HelloWorld是基于最基础的消息队列模型来实现的,只包括三个角色: publisher:消息发布者,将消息发送到队列queue queue:消息队列,负责 ...

  5. Hibernate快速入门+简单示例

    很多人说Hbiernate已经没人用了,市面上有太多可供选择的开源工具.诚然市面上有很多新技术,但是作为初学者,还是要踏踏实实从基础做起,而且Hbiernate有自己的应用场景. 上篇博文 我们介绍了 ...

  6. html 甘特图_甘特图怎么画?甘特图基础教程,小白快速入门简单易懂

    甘特图是什么?可能你是第一次听到,甘特图是通过活动顺序和时间间隔表示某一特定项目其顺序与时间的关系.不同于时间表,或日程规划表,甘特图可以使使用者更直观的知道在某一时间的工作内容和进度. 甘特图常见用 ...

  7. 数据校验JSR303快速入门(简单使用、分组效验、自定义注解效验)

    前言: 在实际开发中,除了前端需要在表单中验证用户的输入.后台服务也需要对用户传入的参数进行效验,避免他人在得知请求格式后,直接通过类似Postman这样的测试工具进行非常数据请求. JSR303是什 ...

  8. Swift 语言快速入门

    Swift 语言快速入门 简单值 控制流 函数闭包 对象和类 枚举和结构体 协议和拓展 错误处理 泛型 由于项目原因,需要做一款 iOS 应用...然后这个任务就落到了我身上-emm 经过我的全方面了 ...

  9. ①、iOS-Swift基础快速入门

    Demo Demo-Swift基础快速入门 Swift基础快速入门 Swift基础快速入门 简单值 控制流 函数和闭包 对象和类 枚举和结构 协议和扩展 错误处理 泛型 Swift基础快速入门 传统建 ...

最新文章

  1. 使用 Python 和 OpenCV 构建 SET 求解器
  2. 2021年的第一盆冷水:有人说别太把图神经网络当回事儿
  3. 最终篇!AAAI 2022值得读的NLP论文盘点
  4. oracle 处理过程,Oracle SQL语句处理过程(转载)
  5. Linux 命令(三)--用户管理
  6. leetcode 1473. 粉刷房子 III(dp)
  7. Web框架——Flask系列之请求上下文与应用上下文请求钩子Flask-Script扩展命令行(十七)
  8. java 容器都有哪些?_适合存储普洱茶的容器都有哪些?
  9. 获得网页中元素的位置
  10. (四)使用Jenkins工作流链接MLOps管道
  11. OSPF:STUB与NSSA区别
  12. 2020阿里云线上峰会预告
  13. 夜神/逍遥/雷电/51/网易MUMU/腾讯手游助手等模拟器多开模拟器分配不同ip的办法
  14. 如何查看Safari浏览器network里Request的Payload
  15. 泉源堂招股书失效:首冲上市折戟,毛利率渐增,三年亏掉4个亿
  16. python使用numba库实现gpu加速
  17. 关于android的Haxm报错调试问题
  18. PS 给给人物磨皮(美白)
  19. poj Best Cow Line
  20. 查找数组中重复的元素

热门文章

  1. winform Outlookbar
  2. Flask爱家租房--订单(下订单)
  3. 机器学习中qa测试_如何对机器学习做单元测试
  4. 深度学习之卷积神经网络 GoogleNet
  5. scrapy startproject【学习笔记02】
  6. python离群点检测方法分几类_数据分析 第五篇:离群点检测
  7. php copy array,ES6中Array.copyWithin()函数用法的详解
  8. 将Source Insight里面着色代码拷贝到word里面的方法
  9. java台球游戏设计原理_Java实现简单台球游戏
  10. Mysql优化之执行计划查看