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———————————————

最新文章

  1. 手机设计尺寸 - iPhone界面尺寸
  2. Python 2.7_pandas连接MySQL数据处理_20161229
  3. Linux网络编程系列-TCP编程实例
  4. (十一)外观模式详解(Service第三者插足,让action与dao分手)
  5. MFC CPen CBrush CFont
  6. Asynchttpclient开源框架下载图片和文本,于Volley和Glide开源框架的区别。
  7. 使用 Entity Framework
  8. SpringMVC最基础配置
  9. 《A First Course in Probability》-chaper7-极限定理-强大数定理
  10. C#复习,输入学生信息排列成绩
  11. docker入门(二)容器与镜像的理解
  12. JDK1.8源码(五)——java.util.ArrayList 类
  13. [ZJOI2008]瞭望塔
  14. 技术趋势:React vs Vue vs Angular
  15. 2019清明期间qbxt培训qaq
  16. icpc2018-焦作-E Resistors in Parallel-数论+大数
  17. Unity3D学习笔记(三十五):Shader着色器(2)- 顶点片元着色器
  18. 【洛谷4238】 多项式求逆(NTT,分治)
  19. MVC 6 电商网站开发实战
  20. shell篇(二)

热门文章

  1. idea上传项目到github
  2. Electron中使用sql.js操作SQLite数据库
  3. Nginx+Tomcat8+Memcached实现负载均衡及session共享
  4. Newifi-mini OpenWrt 下 EAP-PEAP,EAP-TLS 企业级无线认证及 FreeRadius3
  5. 比较3个开源数据库:PostgreSQL,MariaDB和SQLite
  6. C++做四则运算的MFC计算器(一)MFC界面创建
  7. JavaWeb入门——在Windows环境下安装Tomcat服务器
  8. uni-app ios 苹果真机运行
  9. web项目的初始搭建和intellij的tomcat的配置
  10. 【pycharm】Unable to save settings: Failed to save settings. Please restart PyCharm解决