saltstack基础

saltstack介绍


概念

1、一个配置管理系统,能够维护预定义状态的远程节点。
2、一个分布式的远程执行系统,用来在远程节点上执行命令和查询数据。

特点

1、相对于其他(例如pupet)重量型自动化运维工具来讲其相对简单。
2、并发能力和并行执行能力强于ansible。
3、基于成熟的技术。
4、有python api,可自定义功能。
5、灵活,开源。

服务架构

  • master:负责管理其他节点,支持多个master
  • minion:客户端节点服务
  • ZeroMQ:通信服务
  • AES:数据加密
    saltstack基础_第1张图片

缺点

1、需要独立安装客户端
2、安全隐患大(minion会具有root权限)

saltstack安装配置


saltstack安装

依赖:
1、python2.6及以上
2、ZeroMQ或者RAET
3、mako(可选),一个salt states解析器
4、gcc

centos下安装可以使用:

pip install salt
或
yum install -y salt-master salt-minion

如果源里没有这两个包可以先安装epel源,或者下载官方的rpm包安装。
在master上安装salt-master,minion上安装salt-minion

saltstack启动

运行master节点

service start salt-master

在minion节点写入master信息

vim /etc/salt/minion
    master: 10.10.109.19    // master地址
    id: minion-1    // 设置minion的用于区分

启动minion节点

systemctl start salt-minion

master添加minion节点

首先在master上查看请求加入的minion节点:

salt-key -L

saltstack基础_第2张图片

然后执行命令让其加入:

salt-key -a minion-1

saltstack基础_第3张图片

现在master和minion就处于联通的状态了

测试

salt minion-1 test.ping

这里写图片描述

saltstack master配置

通用配置项

interface: 0.0.0.0:监听的IPv4地址,默认0.0.0.0
publish_port: 4505:与minion通信的端口(zeromq端口)
user: root:启动master进程的用户
max_open_files: 100000:连接数,每一个连接到master的minion都会打开一个文件描述符
worker_threads: 5:最大工作线程数
ret_port: 4506获取minion返回结果的端口
pidfile: /var/run/salt-master.pid:pid文件位置
root_dir: /:master运行根目录
pki_dir: /etc/salt/pki/master:秘钥存放路径
module_dirs:salt模块路径
cachedir: /var/cache/salt/master:缓存路径
keep_jobs: 24:旧任务信息保存时间
timeout: 5:api和command执行的超时时间
max_minions:最大管理的minions

安全配置项

open_mode: False:开放模式,为true则任何minion都可无需认证就连接
auto_accept: False:接收所有客户端的公钥(不需要salt-key -a这样接收了)
token_expire: 43200:master生成token存活时间
autosign_timeout: 120:如果minion的keyid在master上的keyid文件中,则自动连接,超过这个时间需要重新认证
autosign_file: /etc/salt/autosign.conf:自动接收minion keyid存放的文件
autoreject_file: /etc/salt/autoreject.conf:自动拒绝,与autosign_file相反
external_auth::额外的验证方法
file_recv: False:允许minion向master发送文件
file_recv_max_size: 100:允许接收文件大小(MB)

saltstack minion配置

通用配置项

master: 10.10.109.19:指定master的ip或主机名,可以是多个
master_type: str:str表示一对一连接,failover表示容错连接,这时master必须为多个,minion会逐个通信;func表示动态指定的
max_event_size: 1048576:最多接受master推送的事件数目
master_alive_interval:master心跳检测
random_master: False:若master多个,则算法是否随机
master_port: 4506:连接master的端口
user: root:启动minion用户
sudo_user: saltdev:可通过sudo获取权限的用户
id: minion-1:minion自身的id
auth_tries: 7:auth重试次数

你可能感兴趣的:(自动化工具-saltstack)