Saltstack 安装 命令

主机规划

10.0.0.21  master 
10.0.0.22  minion
10.0.0.23  minion

基础环境

[root@10.0.0.21 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core) 

[root@10.0.0.21 ~]# uname -r
3.10.0-957.el7.x86_64

[root@10.0.0.21 ~]# uname -m
x86_64

 关闭防火墙和SElinux

[root@10.0.0.21 ~]# systemctl stop firewalld
[root@10.0.0.21
~]# vim /etc/selinux/config SELINUX=disabled
[root@10.0.0.21
~]# getenforce Disabled

 配置机器的hosts文件,用于加速域名解析,加入以下信息,每台机器都要配置

[root@10.0.0.21 opt]# cat /etc/hosts

10.0.0.21 10.0.0.21
10.0.0.22 10.0.0.22
10.0.0.23 10.0.0.23

更改主机名

[root@10.0.0.21 opt]# hostnamectl set-hostname master
[root@10.0.0.22 opt]# hostnamectl set-hostname minion
[root@10.0.0.23 opt]# hostnamectl set-hostname minion

安装

配置epel源

[root@10.0.0.21 opt ]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@ 10.0.0.21 opt ]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#清空缓存
[root@ 10.0.0.21 opt ]# yum clean all 
 #生成yum缓存
[root@ 10.0.0.21 opt ]# yum makecache

开始安装salt了

安装master(10.0.0.21)
[root@10.0.0.21 opt]# yum install salt-master -y
安装minion(10.0.0.22,10.0.0.23)
[root@10.0.0.22 opt]# yum install salt-minion -y

salt端口

安装好salt之后开始配置,salt-master默认监听两个端口:

4505   publish_port 提供远程命令发送功能
4506   ret_port     提供认证,文件服务,结果收集等功能
确保客户端可以通信服务器的此2个端口,保证防火墙允许端口通过。因此在测试环境直接关闭防火墙。

配置文件

salt-master的配置文件是/etc/salt/master
salt-minion的配置文件是/etc/salt/minion
配置文件中包含了大量可调整的参数,这些参数控制master和minion各个方
# salt运行的用户,影响到salt的执行权限
user: root

#s alt的运行线程,开的线程越多一般处理的速度越快,但一般不要超过CPU的个数
worker_threads: 10

# master的管理端口
publish_port : 4505

# master跟minion的通讯端口,用于文件服务,认证,接受返回结果等
ret_port : 4506

# 如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口
syndic_master_port : 4506

# 指定pid文件位置
pidfile: /var/run/salt-master.pid
salt-master 常用配置

salt-master文件配置

[root@10.0.0.21 opt]# grep -v ^# /etc/salt/master|grep -v ^$
interface: 0.0.0.0  #绑定到本地的0.0.0.0地址
publish_port: 4505  #管理端口,命令发送
user: root      #运行salt进程的用户
worker_threads: 5  #salt运行线程数,线程越多处理速度越快,不要超过cpu个数
ret_port: 4506  #执行结果返回端口
pidfile: /var/run/salt-master.pid #pid文件位置
log_file: /var/log/salt/master  #日志文件地址

#自动接收minion的key
auto_accept: False
# minion的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
id: slave
 
# salt运行的用户权限
user: root
 
# master的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
master : master
 
# master通信端口
master_port: 4506
 
# 备份模式,minion是本地备份,当进行文件管理时的文件备份模式
backup_mode: minion
 
# 执行salt-call时候的输出方式
output: nested
 
# minion等待master接受认证的时间
acceptance_wait_time: 10
 
# 失败重连次数,0表示无限次,非零会不断尝试到设置值后停止尝试
acceptance_wait_time_max: 0
 
# 重新认证延迟时间,可以避免因为master的key改变导致minion需要重新认证的syn风暴
random_reauth_delay: 60
 
# 日志文件位置
log_file: /var/logs/salt_minion.log
salt-minion 常用配置

salt-minion文件配置

[root@10.0.0.22 opt]# grep -v ^# /etc/salt/minion|grep -v ^$
master: 10.0.0.21  
master_port: 4506
user: root
id: 10.0.0.22
acceptance_wait_time: 10
log_file: /var/log/salt/minio

 启动salt-master和salt-minion

[root@10.0.0.21 opt]# systemctl start salt-master
[root@10.0.0.22 opt]# systemctl start salt-minion

查看salt的状态

[root@10.0.0.21 opt]# systemctl status salt-master
[root@10.0.0.22 opt]# systemctl status salt-minion

在master上接收minion秘钥

 在salt-master执行

[root@10.0.0.21 opt]# salt-key *
Accepted Keys:
Denied Keys:
Unaccepted Keys:
10.0.0.22
10.0.0.23
Rejected Keys:

指定接受minion的key

[root@10.0.0.21 opt]# salt-key -a 10.0.0.22

检查两条秘钥情况

在主执行
salt-key -f 10.0.0.22

在从执行
salt-call --local key.finger

salt-key常用命令

[root@10.0.0.21 opt]# salt-key -L
Accepted Keys:  #已经接受的key
Denied Keys:    #拒绝的key
Unaccepted Keys:#未加入的key
Rejected Keys:#吊销的key

#常用参数
-L  #查看KEY状态
-A  #允许所有
-D  #删除所有
-a  #认证指定的key
-d  #删除指定的key
-r  #注销掉指定key(该状态为未被认证)

#在master端/etc/salt/master配置
auto_accept: True   #如果对Minion信任,可以配置master自动接受请求

日常命令参数

首先知道master和minion都安装了什么文件,然后才知道怎么操作

master端

pm -ql salt-master
复制代码
/etc/salt/master      # salt master主配置文件
/usr/bin/salt           #salt master 核心操作命令
/usr/bin/salt-cp       #salt 文件传输命令
/usr/bin/salt-key    #salt证书管理
/usr/bin/salt-master    #salt master 服务命令
/usr/bin/salt-run          #salt master runner命令

slave端

[root@slave  ~]$rpm -ql salt-minion
/etc/salt/minion     #minion配置文件
/usr/bin/salt-call    #拉取命令
/usr/bin/salt-minion   #minion服务命令
/usr/lib/systemd/system/salt-minion.service   #minion启动脚本

第一条salt命令

探测minion主机是否存活

[root@10.0.0.21 opt]# salt '*' test.ping
10.0.0.22:
True
10.0.0.23:
True

# salt 是一个命令 
# * 表示目标主机, 在这里代表所有目标主机 
# test.ping是salt远程执行的一个模块下面的方法。

获取minion主机名

[root@10.0.0.21 opt]# salt '*' cmd.run 'hostname'

获取minion的IP

[root@10.0.0.21 opt]# salt '*' cmd.run 'ip a'

在minion创建文件

[root@10.0.0.21 opt]# salt '*' cmd.run 'touch /tmp/text.txt '

返回值的格式替换

[root@10 opt]# salt --out=json "*" cmd.run  "hostname"

返回yaml的语法格式

[root@10 opt]# salt --out=yaml "*" cmd.run  "hostname"

为所有的机器安装nginx

安装
[root@10.0.0.21 opt]# salt "*" pkg.install 'nginx'

卸载
[root@10.0.0.21 opt]# salt "*" pkg.remove 'nginx'

查看pkg包的版本
[root@
10.0.0.21 opt]# salt "*" pkg.version 'nginx'

远程管理

启动
[root@10.0.0.21 opt]# salt "*" service.start 'nginx'

关闭
[root@10.0.0.21 opt]# salt "*" service.stop 'nginx'

查看状态
[root@10.0.0.21 opt]# salt "*" service.status 'nginx'
原文地址:https://www.cnblogs.com/wanglan/p/7405658.html