Saltstack_使用指南17_salt-ssh

 

1. 主机规划

 

salt 版本

1 [root@salt100 ~]# salt --version
2 salt 2018.3.3 (Oxygen)
3 [root@salt100 ~]# salt-minion --version
4 salt-minion 2018.3.3 (Oxygen)

 

salt ssh文档

https://docs.saltstack.com/en/latest/topics/ssh/index.html

 

2. salt-ssh实现步骤

2.1. 部署salt-ssh

在salt100上部署salt-ssh

yum install -y salt-ssh    

 

查看版本信息

1 [root@salt100 ~]# salt-ssh --version
2 salt-ssh 2018.3.3 (Oxygen)

 

2.2. salt-ssh配置

 1 [root@salt100 ~]# cat /etc/salt/roster 
 2 # Sample salt-ssh config file
 3 #web1:
 4 #  host: 192.168.42.1 # The IP addr or DNS hostname
 5 #  user: fred         # Remote executions will be executed as user fred
 6 #  passwd: foobarbaz  # The password to use for login, if omitted, keys are used
 7 #  sudo: True         # Whether to sudo to root, not enabled by default
 8 #web2:
 9 #  host: 192.168.42.2
10 
11 # 添加信息如下:
12 # 由于所有机器做了禁止root远程登录,所以这里只能使用普通用户登录,通过提权到root
13 # 普通用户远程
14 salt100:
15   host: 172.16.1.100 # The IP addr or DNS hostname
16   user: yun         # Remote executions will be executed as user fred
17   # passwd: foobarbaz  # The password to use for login, if omitted, keys are used
18   sudo: True         # Whether to sudo to root, not enabled by default
19   port: 22           # default port is 22
20 
21 salt01:
22   host: 172.16.1.11
23   user: yun
24   sudo: True
25 
26 salt02:
27   host: 172.16.1.12
28   user: yun
29   sudo: True
30 
31 salt03:
32   host: 172.16.1.13
33   user: yun
34   sudo: True

 

3. salt-ssh操作测试

3.1. 首次通信并实现秘钥登录

 1 [root@salt100 ~]# salt-ssh '*' test.ping -i  # 有参数 -i ,之后就可以不需要该参数了
 2 Permission denied for host salt100, do you want to deploy the salt-ssh key? (password required):
 3 [Y/n] y
 4 Password for yun@salt100: 
 5 salt100:
 6     True
 7 Permission denied for host salt02, do you want to deploy the salt-ssh key? (password required):
 8 [Y/n] y
 9 Password for yun@salt02: 
10 salt02:
11     True
12 Permission denied for host salt01, do you want to deploy the salt-ssh key? (password required):
13 [Y/n] y
14 Password for yun@salt01: 
15 salt01:
16     True
17 Permission denied for host salt03, do you want to deploy the salt-ssh key? (password required):
18 [Y/n] y
19 Password for yun@salt03: 
20 salt03:
21     True

注意:

第一次连接时会输入密码,并实现秘钥登录,这样以后就使用秘钥进行交互了。

会把 /etc/salt/pki/master/ssh/salt-ssh.rsa.pub 拷贝到 /app/.ssh/authorized_keys「/app/ 是 yun用户的家目录,参见《Saltstack_使用指南01_部署》说明」。

 

3.2. salt-ssh目标指定

目前支持三种方式指定目标:通配符、正则表达式、列表

1 # 通配符
2 salt-ssh '*' test.ping  
3 salt-ssh 'salt1*' test.ping  
4 # 正则表达式
5 salt-ssh -E 'salt1.*' test.ping  
6 salt-ssh -E 'salt(100|03)' test.ping  
7 # 列表
8 salt-ssh -L 'salt100,salt02' test.ping  

 

3.3. salt-ssh使用raw shell测试

查看环境变量

1 [root@salt100 ~]# salt-ssh 'salt01' -r 'echo "${PATH}"' 
2 salt01:
3     ----------
4     retcode:
5         0
6     stderr:
7     stdout:
8         /usr/local/bin:/usr/bin

说明:

有时会因为环境变量的原因找不到命令,这时需要你使用命令的全路径即可。

1 salt-ssh '*' -r 'df -h' 
2 salt-ssh '*' -r '/usr/sbin/ifconfig'   # 使用了全路径
3 salt-ssh '*' -r '/usr/sbin/ip address' 
4 salt-ssh '*' -r 'whoami' 

 

3.4. salt-ssh通过raw shell进行安装包操作

salt-ssh '*' -r 'sudo yum install -y nmap' 

 

3.5. salt-ssh使用grains和pillar

 1 [root@salt100 web]# salt-ssh 'salt01' grains.item os
 2 salt01:
 3     ----------
 4     os:
 5         redhat01
 6 [root@salt100 web]# 
 7 [root@salt100 web]# salt-ssh 'salt01' pillar.items
 8 salt01:
 9     ----------
10     level1:
11         ----------
12         level2:
13             None
14     service_appoint:
15         www

 

3.6. salt-ssh使用状态模块

可参见:《Saltstack_使用指南03_配置管理》

 1 [root@salt100 web]# salt-ssh 'salt01' state.highstate test=true  # 使用 state.highstate 还是存在有些问题,所以不要用该函数
 2 salt01:
 3 
 4 Summary for salt01
 5 -----------
 6 Succeeded: 0
 7 Failed:   0
 8 -----------
 9 Total states run:    0
10 Total run time:  0.000 ms
11 [root@salt100 web]# 
12 [root@salt100 web]# 
13 [root@salt100 web]# salt-ssh 'salt01' state.sls web.apache test=true  # 正常使用
14 salt01:
15 ----------
16           ID: apache-install
17     Function: pkg.installed
18         Name: httpd
19       Result: True
20      Comment: All specified packages are already installed
21      Started: 10:26:46.078678
22     Duration: 896.211 ms
23      Changes:   
24 ----------
25           ID: apache-install
26     Function: pkg.installed
27         Name: httpd-devel
28       Result: True
29      Comment: All specified packages are already installed
30      Started: 10:26:46.975113
31     Duration: 16.735 ms
32      Changes:   
33 ----------
34           ID: apache-service
35     Function: service.running
36         Name: httpd
37       Result: None
38      Comment: Service httpd is set to start
39      Started: 10:26:46.992651
40     Duration: 306.683 ms
41      Changes:   
42 
43 Summary for salt01
44 ------------
45 Succeeded: 3 (unchanged=1)
46 Failed:    0
47 ------------
48 Total states run:     3
49 Total run time:   1.220 s
50 [root@salt100 web]# 
51 [root@salt100 web]# 
52 [root@salt100 web]# salt-ssh 'salt01' state.sls web.apache  # 正常使用
53 salt01:
54 ----------
55           ID: apache-install
56     Function: pkg.installed
57         Name: httpd
58       Result: True
59      Comment: All specified packages are already installed
60      Started: 10:26:58.298577
61     Duration: 907.003 ms
62      Changes:   
63 ----------
64           ID: apache-install
65     Function: pkg.installed
66         Name: httpd-devel
67       Result: True
68      Comment: All specified packages are already installed
69      Started: 10:26:59.205783
70     Duration: 16.56 ms
71      Changes:   
72 ----------
73           ID: apache-service
74     Function: service.running
75         Name: httpd
76       Result: True
77      Comment: Service httpd has been enabled, and is running
78      Started: 10:26:59.223138
79     Duration: 980.719 ms
80      Changes:   
81               ----------
82               httpd:
83                   True
84 
85 Summary for salt01
86 ------------
87 Succeeded: 3 (changed=1)
88 Failed:    0
89 ------------
90 Total states run:     3
91 Total run time:   1.904 s

 

———————————————END———————————————

 

转载于:https://www.cnblogs.com/zhanglianghhh/p/10952104.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新手入门:AIX操作系统安装图解

AIX(Advanced Interactive Executive)是IBM 公司的UNIX操作系统,它特别适合于做关键数据处理。2002年IBM发布了AIX 5.2版。 下面就以该版本为例来介绍IBM的AIX操作系统的安装,主要介绍在IBM P630机器上如何使用AIX软件的光盘&…

华为荣耀9x怎么解账户锁_麒麟820,4000万像素,荣耀X10是下一部千元街机?

哈喽黑粉们,欢迎来到黑马公社。最近发布的新机很多,其中之一就是黑马此前和大家聊过多次的荣耀X10。这款新机于昨天5月20日发布,表现怎么样呢?今天黑马就来聊聊这款新机。和此前爆料的一样,荣耀X10采用了升降式设计&am…

关键词提取算法

1、先给本聚类内的所有文档进行分词,然后用一个字典保存每个词出现的次数;2、遍历每个词,得到每个词在所有文档里的IDF值,和在本聚类内出现的次数(TF)相乘的值;3、用一个字典(key是词,value是TF*IDF权重)来…

JavaWeb的分页

1.什么是分页 第N页/共M页 首页 上一页 1 2 3 4 5 6 7 8 9 下一页 尾页 [ ] go 分页的优点:只查询一页,不用查询所有页! 2.分页数据 页面的数据都是由Servlet传递过来的! Servlet: 1.*当前页:pageCod…

中反应器体积_缠绕管式反应器大幅提高能效,移热能力较列管式反应器提升逾50%...

武汉东海石化重型装备有限公司与中科院过程工程研究所联合开展的高效缠绕管式反应器研发课题二期研究日前结题。该研究建立了一套与不同工作原理相适应的缠绕管式反应器设计方法,使缠绕管式反应器的移热能力较列管式固定床反应器提升逾50%,可极大提高企业…

【异常(待解决)】org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respond...

一、记录下异常堆栈信息 2019-06-01 10:26:58.246 [http-nio-9850-exec-3] ERROR weixin.popular.client.LocalHttpClient - execute error org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respondat org.apache.http.impl.conn.DefaultHttpRespon…

企业内容管理-互联网应用

企业内容管理-互联网应用 当你第一次听到企业内容管理这个名字,很容易联想到ERP这种复杂无比的系统。实际上也确实如此,目前几大主要的ECM系统都是复杂无比,所以我想从互联网应用,一般网民可以使用的角度来谈谈企业内容管理。 从…

计算机做游戏到大学要学什么,大学学什么专业,毕业才能从事电竞行业?

原标题:大学学什么专业,毕业才能从事电竞行业?电竞可不只是打游戏这么简单。想必最近很多同学已经陆陆续续收到录取通知书了,大学的美好生活已经在等着你们啦!今天化学姐想和大家聊聊就业已经游戏行业相关的事儿。电子…

layui中table监听单元格_最全总结 | 聊聊 Python 办公自动化之 PPT(中)

点击上方 “AirPython”,选择 “加为星标”第一时间关注 Python 技术干货!1. 前言上一篇文章简单地介绍了 PPT 的文档结构,并使用 python-pptx 这个依赖库完成对 PPT 文档最基本的操作最全总结 | 聊聊 Python 办公自动化之 PPT(上)作为 PPT 系…

东北考生到南方学计算机,为啥东北考生都想去南方,而南方学生很少考东北,看看他们怎么说...

原标题:为啥东北考生都想去南方,而南方学生很少考东北,看看他们怎么说文/晓宁说教育高考对于众多考生来说,是人生中最重要的一场考试,如果能在高考中发挥出好成绩,就可以顺利的考上一所自己理想的大学。按照…

用excel制作双层饼图_双层饼图,让你的工作更出彩

在Excel中饼图是很常见的图表类型,做起来也很简单,相信大家都会做。但双层饼图你会做吗?如下图所示,根据左侧的数据源,做出右侧的双层饼图。这么漂亮的双层饼图是怎么制做出来的呢?今天我就来给大家分享一下…

Comet OJ - 2019 六一欢乐赛

传送门 #A&#xff1a; 思路&#xff1a;等差数列求和,看成俩次12… n,多加的n减去&#xff0c;所以 ans n*(n1) - n。 AC代码&#xff1a; 1 #include<iostream>2 #include<algorithm>3 #include<string>4 using namespace std;5 int main()6 {7 int n…

三个子系统_「正点原子Linux连载」第五十八章Linux INPUT子系统实验(一)

1)实验平台&#xff1a;正点原子Linux开发板2)摘自《正点原子I.MX6U嵌入式Linux驱动开发指南》关注官方微信号公众号&#xff0c;获取更多资料&#xff1a;正点原子第五十八章Linux INPUT子系统实按键、鼠标、键盘、触摸屏等都属于输入(input)设备&#xff0c;Linux内核为此专门…

【翻译】eXpressAppFramework QuickStart 业务模型设计(十)——在代码中实现数据验证...

这一讲&#xff0c;你将学到如何给业务对象和他们的属性设置规则。最终用户在执行赋值操作后将验证这些规则。你可以实现必填规则使得Position.Title属性不能为空。此规则将在Position对象保存的时候被验证。你还能够看到打破规则的界面提示。在此之前&#xff0c;我建议你去读…

注册机patch起什么作用_电机滑环起什么作用?

电机滑环起什么作用?发电机滑环就是我们传统的集电环&#xff0c;用于电机的换向器上作为导出导入电流的滑动接触体&#xff0c;它的导电、导热以及润滑性能良好&#xff0c;并具有一定的机械强度和换向性火花的本能。几乎所有的电机都使用碳刷&#xff0c;它是电机的重要组成…

《Java并发编程的艺术》之synchronized的底层实现原理

在学习锁优化时&#xff0c;对象头(Mark Word) 是必不可缺的一环&#xff0c;因为synchronized 用的锁是存在对象头里的。32位的虚拟机上对象头占64位&#xff08;8字节&#xff09;&#xff0c;64位的虚拟机上对象头占128位(16字节&#xff09;[^objectHead]&#xff1b;而不同…

文字投影_店铺门口投影灯,引领店铺新潮流

在社会的进步下&#xff0c;现在人们物质生活越来越好&#xff0c;在原来消费的基础上也更加注重消费时店铺的装修、氛围。装修精致、环境优雅的店铺不仅更加容易吸引顾客&#xff0c;并且更加容易让顾客打卡发圈&#xff0c;无形中也帮自己做了一波宣传。上次我们出去游玩的时…

实验5

一、 1 #ifndef MACHINEPETS_H2 #define MACHINEPETS_H3 #include<iostream>4 #include<string>5 using namespace std;6 class MachinePets7 {8 public:9 MachinePets(const string s) :nickname(s) {} 10 virtual string talk()0; 11 string getnick…

计算机网络ieee,博士生程珂论文连续两年被计算机网络顶级会议IEEE INFOCOM录用...

近日&#xff0c;第39届IEEE国际计算机通信会议(IEEE International Conference on Computer Communications, IEEE INFOCOM 2020)录用结果揭晓&#xff0c;陕西省网络与系统安全重点实验室沈玉龙教授课题组博士生程珂的论文《A Lightweight Auction Framework for Spectrum Al…

去除标题_资深运营导师-云中教你轻松写标题

一、标题作用解读标题对于产品的意义买家购买逻辑想到一款产品&#xff0c;并知道他的名称去网上搜索&#xff0c;看到图片等信息类比价格评价等内容&#xff0c;下单收到货和自己根据标题照片评判商品核心要点&#xff1a;买家是根据产品名字作为购买切入点&#xff1b;照片和…