需要 salt-master 0.17以上版本支持

1.安装

相关依赖包可查看requirements.txt

Jinja2

M2Crypto

msgpack-python

pycrypto

PyYAML

pyzmq >= 2.1.9

markupsafe

[root@server1 salt]# git clone https://github.com/saltstack/salt.git

[root@server1 salt]# python setup.py  install

2.roster定义

花名册(roster)定义存放主机列表文件,默认存放在/etc/salt/roster

格式:

<Salt ID>:   # ID,用于salt-ssh引用
host: # IP或域名
  user: # 登录用户名
passwd: # 登录密码 # 可选参数
port: # 自定义的端口
sudo: # 是否允许sudo到root,默认不允许
priv: # ssh登录key路径,默认为salt-ssh.rsa
timeout: # 等待超时

[root@server1 salt]# vim /etc/salt/roster

salt-ssh安装及简单使用-LMLPHP

3.测试连接及执行命令

salt-ssh安装及简单使用-LMLPHP

这时就可以对所定义的服务器执行命令了:

salt-ssh安装及简单使用-LMLPHP

执行格式:

salt 参数 对象 命令

其中对象支持多种匹配方式,常见的 通配符、正则表达式、列表、分组、复合匹配等

4.相关参数:

查看文件及执行命令

salt-ssh '*' [ options ] sys.doc

salt-ssh -E '.*' [ options ] sys.doc cmd

-r 执行shell命令

--roster-file 指定roster文件

--refresh 强制刷新master端缓存数据

--max-procs 设置客户端并发数,默认25

--passwd 设置默认密码

--out-file=output_file, --output-file=OUTPUT_FILE 把信息输出到指定文件

--no-color 输出的结果不带颜色

salt-ssh 第一次执行是根据roster的账号密码推送密码,来实现自动交互的。

执行完了后 会在目标的服务器里面,追加master端的key,以后再对服务器执行操作不再依赖于密码。

5.遇到错误:

问题1:

[root@server1 salt]# salt-ssh '*' [ options ] sys.doc

[CRITICAL] Unable to import msgpack or msgpack_pure python modules

[WARNING ] Console logging already configured

[WARNING ] Warning:  sshpass is not present, so password-based authentication is not available.

解决:

[root@server1 salt]# easy_install msgpack-python

问题2:

[WARNING ] Warning:  sshpass is not present, so password-based authentication is not available.

[root@localhost salt]# yum -y install sshpass

参考:https://salt.readthedocs.org/en/latest/ref/cli/salt-ssh.html

http://docs.saltstack.com/topics/ssh/index.html

05-11 21:42