SaltStack 安装
1、安装环境
[root@salt-server ~]# uname -a
Linux salt-server 2.6.32-642.el6.x86_64
[root@salt-server ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
2、安装指定epel源
rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
3、安装SaltStack
安装master
yum -y install salt-master
安装minion
yum -y install salt-minion
4、Salt相关配置文件
master端
/etc/salt/master #配置文件
/var/log/salt/master #日志文件
/etc/init.d/salt-master #启动文件
以下是Master端常用的配置:/etc/salt/master
interface:指定bind的地址,默认为0.0.0.0
publish_port:指定发布端口,默认为4505
ret_port:指定结果返回端口,与minion配置文件中的master_port对应,默认为4506
uesr:指定master进程的运行用户,如果调整,则需要调整部分目录的权限,默认权限为root
timeout:指定timeout时间,如果minion规模庞大或⺴络状况不好,建议增⼤该值,默认5s
keep_jobs:默认情况下,minion会执行结果会返回master,master会缓存到本地的cachedir目录,该参数指定缓存多长时间,以供查看之前的执行结果,会占用磁盘空间,默认为24h
job_cache:master是否缓存执行结构,如果规模庞大(超过5000台),建议使用其他方式来存储jobs,关闭本选项,默认为True
file_recv:是否允许minion传送文件到master上,默认是Flase
file_roots:指定file server目录,默认为:
file_roots:
base:
- /srv/salt
pillar_roots:指定pillar目录,默认为:
pillar_roots:
base:
- /srv/pillar
log_level:执行日志级别,支持的日志级别由'garbage', 'trace', 'debug', info', 'warning', 'error', ‘critical ’ ,默认为’warning’
Minion端
/etc/salt/minion #配置文件
/etc/init.d/salt-minion #启动文件
Minion常用配置
master:指定master主机,默认为salt
mastar_port:指定认证和执行结果发送到master的哪个端口,与master配置文件中的ret_port对应,默认为4506
id:指定minion的标识,Salt内部使用id作为标识,默认为主机名
user:指定运行minion的用户,由于安装包,启动服务等操作需要特殊用户,推荐使用root,默认为root
cache_jobs:minion是否缓存执行结果,默认为False
backuo_mode:在文件操作(file.managed或file.recurse)时,如果文件发送更改,指定备份目录,当前有效的值为minion,备份在cachedir/file_backups目录下,以原始文件名称加时间戳来命名,默认为Disabled
providers:指定模块对应的providers,如果RHRL系列中,pkg对应的providers是yumpkg5
renderer:指定配置管理系统中的渲染器,默认值为:yaml_jinja
file_client:指定file client默认去哪里(remotr或local)寻找文件,默认值为remote
loglevel:指定日志级别,默认为warnning
tcp_keepalive:minion是否与master保持keepalive检查,zeromq3一下版本存在keepalive bug,会导致某些情况下链接异常后minion无法重连master,建议有条件的话吧zeromq3以上版本,默认为True
修改minion配置文件
vim /etc/salt/minion
master: salt #可以指定主机名或域名(需要在hosts中配置解析),可以直接配置IP,强烈建议配置主机名或IP。
id:唯一标识符,默认为主机名。
5、SaltStack认证
Salt的数据传输是通过AES加密的,Master和Minion之间在通信之前,需要进行认证,通过认证的方式保证安全性,完成一次认证后,Master就可以自由的控制Minion来完成各项工作了,了解了认证的详细有助于我们在日常管理中管理Minion,已经及时处理问题。
1、minion在第一次启动时,会在/etc/salt/pki/minion/下自动生成minion.pem(private key)和minion.pub(public key),然后将minion.pub发送给master。
2、master在第一次启动时,会在/etc/salt/pki/master下自动生成master.pem。在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的public key,客户端会保存一份master的public key,在/etc/salt/pki/minion_master.pub
3、通过两个步骤的验证,master就能对minion发送指令了。
6、Master端key认证
在上面一个小节已经提到了Master与Minion的认证方式,只有Master接受了Minion的Key后,才能进行管理。具体的认证命令为salt-key,常用的有如下命令。
salt-key
-a #添加指定id
-A #添加全部
-r #拒绝指定id
-R #拒绝全部
-d #删除指定id
-D #删除全部
-y #去除每步操作确认的一步。
例如:
查看需要认证的minion
[root@salt-server ~]# salt-key
Accepted Keys:
salt-client
Denied Keys:
Unaccepted Keys:
Rejected Keys:
认证Minion:
salt-key -a salt-client
提示:无论是accept还是delete都支持Linux的shell通配符。