Saltstack_使用指南17_salt-ssh
1. 主机规划

salt 版本
[root@salt100 ~]# salt --version
salt 2018.3. (Oxygen)
[root@salt100 ~]# salt-minion --version
salt-minion 2018.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
查看版本信息
[root@salt100 ~]# salt-ssh --version
salt-ssh 2018.3. (Oxygen)
2.2. salt-ssh配置
[root@salt100 ~]# cat /etc/salt/roster
# Sample salt-ssh config file
#web1:
# host: 192.168.42.1 # The IP addr or DNS hostname
# user: fred # Remote executions will be executed as user fred
# passwd: foobarbaz # The password to use for login, if omitted, keys are used
# sudo: True # Whether to sudo to root, not enabled by default
#web2:
# host: 192.168.42.2 # 添加信息如下:
# 由于所有机器做了禁止root远程登录,所以这里只能使用普通用户登录,通过提权到root
# 普通用户远程
salt100:
host: 172.16.1.100 # The IP addr or DNS hostname
user: yun # Remote executions will be executed as user fred
# passwd: foobarbaz # The password to use for login, if omitted, keys are used
sudo: True # Whether to sudo to root, not enabled by default
port: # default port is salt01:
host: 172.16.1.11
user: yun
sudo: True salt02:
host: 172.16.1.12
user: yun
sudo: True salt03:
host: 172.16.1.13
user: yun
sudo: True
3. salt-ssh操作测试
3.1. 首次通信并实现秘钥登录
[root@salt100 ~]# salt-ssh '*' test.ping -i # 有参数 -i ,之后就可以不需要该参数了
Permission denied for host salt100, do you want to deploy the salt-ssh key? (password required):
[Y/n] y
Password for yun@salt100:
salt100:
True
Permission denied for host salt02, do you want to deploy the salt-ssh key? (password required):
[Y/n] y
Password for yun@salt02:
salt02:
True
Permission denied for host salt01, do you want to deploy the salt-ssh key? (password required):
[Y/n] y
Password for yun@salt01:
salt01:
True
Permission denied for host salt03, do you want to deploy the salt-ssh key? (password required):
[Y/n] y
Password for yun@salt03:
salt03:
True
注意:
第一次连接时会输入密码,并实现秘钥登录,这样以后就使用秘钥进行交互了。
会把 /etc/salt/pki/master/ssh/salt-ssh.rsa.pub 拷贝到 /app/.ssh/authorized_keys「/app/ 是 yun用户的家目录,参见《Saltstack_使用指南01_部署》说明」。
3.2. salt-ssh目标指定
目前支持三种方式指定目标:通配符、正则表达式、列表
# 通配符
salt-ssh '*' test.ping
salt-ssh 'salt1*' test.ping
# 正则表达式
salt-ssh -E 'salt1.*' test.ping
salt-ssh -E 'salt(100|03)' test.ping
# 列表
salt-ssh -L 'salt100,salt02' test.ping
3.3. salt-ssh使用raw shell测试
查看环境变量
[root@salt100 ~]# salt-ssh 'salt01' -r 'echo "${PATH}"'
salt01:
----------
retcode:
stderr:
stdout:
/usr/local/bin:/usr/bin
说明:
有时会因为环境变量的原因找不到命令,这时需要你使用命令的全路径即可。
salt-ssh '*' -r 'df -h'
salt-ssh '*' -r '/usr/sbin/ifconfig' # 使用了全路径
salt-ssh '*' -r '/usr/sbin/ip address'
salt-ssh '*' -r 'whoami'
3.4. salt-ssh通过raw shell进行安装包操作
salt-ssh '*' -r 'sudo yum install -y nmap'
3.5. salt-ssh使用grains和pillar
[root@salt100 web]# salt-ssh 'salt01' grains.item os
salt01:
----------
os:
redhat01
[root@salt100 web]#
[root@salt100 web]# salt-ssh 'salt01' pillar.items
salt01:
----------
level1:
----------
level2:
None
service_appoint:
www
3.6. salt-ssh使用状态模块
可参见:《Saltstack_使用指南03_配置管理》
[root@salt100 web]# salt-ssh 'salt01' state.highstate test=true # 使用 state.highstate 还是存在有些问题,所以不要用该函数
salt01: Summary for salt01
-----------
Succeeded:
Failed:
-----------
Total states run:
Total run time: 0.000 ms
[root@salt100 web]#
[root@salt100 web]#
[root@salt100 web]# salt-ssh 'salt01' state.sls web.apache test=true # 正常使用
salt01:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: All specified packages are already installed
Started: ::46.078678
Duration: 896.211 ms
Changes:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: All specified packages are already installed
Started: ::46.975113
Duration: 16.735 ms
Changes:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: None
Comment: Service httpd is set to start
Started: ::46.992651
Duration: 306.683 ms
Changes: Summary for salt01
------------
Succeeded: (unchanged=)
Failed:
------------
Total states run:
Total run time: 1.220 s
[root@salt100 web]#
[root@salt100 web]#
[root@salt100 web]# salt-ssh 'salt01' state.sls web.apache # 正常使用
salt01:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: All specified packages are already installed
Started: ::58.298577
Duration: 907.003 ms
Changes:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: All specified packages are already installed
Started: ::59.205783
Duration: 16.56 ms
Changes:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: Service httpd has been enabled, and is running
Started: ::59.223138
Duration: 980.719 ms
Changes:
----------
httpd:
True Summary for salt01
------------
Succeeded: (changed=)
Failed:
------------
Total states run:
Total run time: 1.904 s
———————————————END———————————————

Saltstack_使用指南17_salt-ssh的更多相关文章
- Saltstack_实战指南02_各主机Pillar信息指定
1. 实战项目GitHub地址 该项目已经放在了GitHub上,地址如下: https://github.com/zhanglianghhh/salt-example-lnmp 2. 主机规划 3. ...
- Saltstack_实战指南01_系统规划
1. 实战项目GitHub地址 之前<Saltstack_使用指南>详细讲解了saltstack的使用.那么从这节开始实战讲解,当然不会再像之前那样详细说明了.只是讲一些系统规划之类的信息 ...
- Saltstack_使用指南16_syndic
1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...
- Saltstack_使用指南12_配置管理-jinja模板
1. 说明 下文的案例是根据上一篇文章进行的修改.因此请优先读取上一章博文内容<Saltstack_使用指南11_配置管理-状态之间依赖关系> 2. 主机规划 salt 版本 [root@ ...
- Saltstack_使用指南05_数据系统-Pillar
1. 主机规划 Pillar文档 https://docs.saltstack.com/en/latest/topics/pillar/index.html 注意事项 修改了master或者minio ...
- Saltstack_使用指南01_部署
1. 主机规划 服务器名称 操作系统版本 内网IP 外网IP(模拟) Hostname 部署模块 salt100 CentOS7.5 172.16.1.100 10.0.0.100 salt100 s ...
- Saltstack_使用指南07_远程执行-执行模块
1. 主机规划 远程执行教程文档 https://docs.saltstack.com/en/latest/topics/tutorials/modules.html 所有模块文档 https://d ...
- Saltstack_使用指南06_远程执行-指定目标
1. 主机规划 Targeting Minions文档 https://docs.saltstack.com/en/latest/contents.html 另请参见:自动化运维神器之saltstac ...
- Saltstack_使用指南04_数据系统-Grains
1. 主机规划 Grains文档 https://docs.saltstack.com/en/latest/topics/grains/index.html 注意事项 修改了master或者minio ...
随机推荐
- 达梦7入门技术总结--DCA级别
说明: 1)该实验所有过程均是本人亲自敲命令完成,所有代码运行正确 2)安装过程使用的是suse11 sp3操作系统,后续的实验过程换成了麒麟中标,因此部分路径可能存在差异 3)安装过程使用了命令行安 ...
- Kali_Linux 中文乱码 修改更新源及更新问题
Kali_Linux 中文乱码 修改更新源及更新问题 中文乱码问题 kali默认没有中文字符 当以中文安装或者切换编码换为中文后会出现乱码的情况 解决方法: 确定locales已经安装好, 使用 ap ...
- 设置POP3/SMTP协议 手机绑定邮箱
例如设置企业邮箱 一.设置POP3/SMTP协议,意思是代收邮件致本地POP3接收邮件服务器:pop.qiye.qq.comSMTP发送邮件服务器:smtp.qiye.qq.com二.设置IMAP/S ...
- Python 的 Geth 封装库 PyGeth
PyGeth 是一个 Python 封装库,用来作为子进程运行 geth. 系统依赖 该库需要 geth 可执行文件. 安装 pip install py-geth 快速启动 运行连接到 mainne ...
- (一)初识NumPy库(数组的创建和变换)
在学习数据分析时,NumPy作为最基础的数据分析库,我们能够熟练的掌握它是学习数据分析的必要条件.接下来就让我们学习该库吧. 学习NumPy库的环境: python:3.6.6 编辑器:pycharm ...
- 如何提高 PHP 代码的质量?第三:端到端 / 集成测试
在本系列的最后一部分,是时候设置端到端 / 集成测试环境,并确保我们已经准备好检查我们工作的质量. 在本系列的前几部分中,我们建立了一个构建工具,一些静态代码分析器,并开始编写单元测试. 为了使我们的 ...
- XNginx升级记录
之前的博文提到过,XNginx - nginx 集群可视化管理工具, 开发完成后一直稳定运行,直到前面因为一个站点的proxy站点配置问题,导致需要修改nginx 配置文件模板,因此借此机会对系统做了 ...
- EntityFramework中实体类到表名的批量映射
在使用EntityFramework做CodeFirst开发时,经常需要将实体类映射到数据库表,但是C#实体类和数据库表中的命名遵循的是不同的规范,这就需要为每个实体类做一个到数据库表名的映射.大多情 ...
- Cesium专栏-卫星轨迹
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- 【好书推荐】《剑指Offer》之硬技能(编程题1~6)
本文例子完整源码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/sword 前一篇<[好书推 ...