SaltStack(二) 安装使用
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通配符。