saltstack安装与使用

时间:2024-03-27 08:11:53

一、拓扑结构:    

如图所示:

saltstack安装与使用

其中,S-C7作为*别的master,管理线上的minions、线下SA0221接入的sycdic以及接入SA0221的所有线下的minions

二、安装:

说明:

1、使用yum方式安装的saltstack均已注册系统服务,CentOS6使用service命令管理服务进程,CentOS7使用systemctl管理;

2、服务默认使用端口4505、4506,保证端口空闲且可用(未被防火墙拦截)

3、大量minion端的安装可以使用salt-ssh安装,也可以写脚本完成安装,包括修改配置文件,服务管理等;

2.1 添加salt安装源:

线上线下系统均为CentOS6/7,采用yum方式安装,首先为所有的服务器添加指定版本salt安装源,操作如下:

CentOS6:yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

CentOS7:yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

(若执行报异常则为原系统中配置的一些yum源存在问题,根据提示信息将这些源做处理:不用的可以删掉,或者重命名备份存储,然后执行yum clean all 清理缓存后重新安装)

2.2 分角色安装:

===*别master(S-C7)===:

yum -y install salt-master

若自动检测依赖报错,最可能的原因就是自带的yum源中不包含所需的基础依赖内容,可以通过换源解决,比较好用的有163或者阿里云,阿里云yum源地址如下:

CentOS 6:

base:http://mirrors.aliyun.com/repo/Centos-6.repo

epel:http://mirrors.aliyun.com/repo/epel-6.repo

CentOS 7:

base:http://mirrors.aliyun.com/repo/Centos-7.repo

epel:http://mirrors.aliyun.com/repo/epel-7.repo

安装好后修改配置文件:/etc/salt/master,修改内容如下:

auto_accept: True              #该选项用于使master自动接受所有发送公钥的minions

order_masters: True            #该选项确保额外的数据被发送至syndic

启动master,验证:netstat -antlp | grep python

 

===中间层syndic安装(SA221)===:

yum install -y salt-master

yum install -y salt-syndic

修改配置文件/etc/salt/master,修改内容如下:

auto_accept: True

syndic_master: 60.191.84.230            #更高级master的IP,这里是S-C7

file_roots:                               #file_roots需要在syndic上配置,因为它不会在master之间传递

  base:

    - /srv/salt

启动master、syndic

===minion端安装===:

yum -y install salt-minion

修改配置文件/etc/salt/minion,修改内容如下:

master: 192.168.0.221

启动minion

三、使用

3.1、命令行执行

配置无误后可以在master端使用salt-key -L 认证key信息,认证成功后可以使用一下格式命令直接命令行执行,格式为:

salt  -选项参数  目标minions  执行函数  函数参数

示例:salt '*' cmd.run 'ls -l /etc'

3.2、sls文件执行

state是Saltstack最核心的功能,通过预先定制好的sls(salt state file)文件对被控制主机进行状态管理,支持包括程序包(pkg)、文件(file)、网络配置(network)、系统服务(service)、系统用户(user)等,

master端添加配置文件,配置文件(/srv/salt/logstash)示例:

saltstack安装与使用

 

/etc/logrotate.d/tomcat:
  file.managed:
    - user: root
    - group: root
    - mode: 644
    - source: salt://base/logrotate/file/tomcat
logrotate.run:
  cmd.run:
    - name: /usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1

master端运行(仅已一台minitor为例):

salt "SA0102" state.sls base.logrotate