openssh作为大多数UNIX平台常用的工具,用于对远程主机进行访问和操作,意思就是安全的shell,在传统的salt中,由minion主动去连接master,master不需要保存minion 网络和主机配置,但是在基于SSH的连接时,master必须通过SSH去连接访问minion,所以就有了roster这个文件来保存主机信息
Roster的编写
Roster文件默认的情况下位于/etc/salt
如果需要修改其路径可以使用以下命令
salt-ssh --roster-file=‘指定的roster路径’ 主机名 操作
在Roster中需要编写minion主机的一些信息,例如
# 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
openstack:
host: 172.25.254.41
user: root
passwd: xxxxxx
在roster文件中支持以下这些选项
host MINION主机的IP地址如果有解析的话主机名也可以
port 通常是ssh协议默认的22端口,按照需要可以更改
user 登陆目的主机时的用户
passwd 对应用户的密码
sudo 这个选项之后可填’True’或者’False’,为了非特权用户可以执行特权命令,为了sudo时不需要密码,可以通过visudo来修改/etc/sudoers文件来完成
priv 指定私钥路径
timeout 指定等待连接完成的最大时间,默认60秒
thin_dir slat-thin agent的安装目录
当然在salt中也内置其他的roster,可以自己进行指定,例如下面这个命令
salt-ssh --roster=scan 172.25.254.0/24 test.ping
在salt中总共有这几种roster
scan 这是一种动态的roster,在客户端对一定范围内的IP地址进行处理请求。在使用的时候,需要连接的所有主机连接信息都必须一致(除了IP地址)
cache
每一个minion的grain会被缓存到Master上,当已经安转过minion的客户端无法响应时,需要进行排错可以使用cache roster进行排错。
例如开启salt-minion服务
salt-ssh --roster cache openstack service.start salt-minion
cloud
cloud与cache有点类似,也会默认的缓存minion之前的信息,但是cloud需要在minion和master建立一个连接之后才能获得IP地址并且缓存上。salt cloud创建的minion除非通过特殊指定,IP地址可能重其后发生变更,使用方法与cache类似