一、入门指南 1.1 SALTSTACK是什么? The backbone of Salt is the remote execution engine, which creates a high-speed, secure and bi-directional communication net for groups of systems. On top of this communication system, Salt provides an extremely fast, flexible, and easy-to-use configuration management system called Salt States. Salt是一种和以往不同的基础设施管理方法,它是建立在大规模系统高速通讯能力可以大幅提升的想法上。这种方法使得Salt成为一个强大的能够解决基础设施中许多特定问题的多任务系统。远程执行引擎是Salt的核心,它能够为多组系统创建高速、安全的双向通讯网络。基于这个通许系统,Salt提供了一个非常快速、灵活并且容易使用的配置管理系统,称之为“Salt States”。
1.2 SALTSTACK有什么特性?
(1)、部署简单,方便 (2)、支持大部分UNIX/Linux及Windows环境; (3)、主从集中化管理; (4)、配置简单、功能强大、扩展性强; (5)、主控端(master)和被控端(minion)基于证书认证,安全可靠; (6)、支持API及自定义模块,可通过Python轻松扩展。
2.2 SALTSTACK (yum)安装
指定官方yum源: rpm -ivh https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm
Salt Master:
yum -y install salt-master salt-minion Salt Minion: yum -y install salt-minion 修改Minion配置文件 # vim /etc/salt/minion master: 192.168.56.10 可以是主机名需要解析(指定服务端的IP地址) id: 唯一标识符,可以不配,不配默认就是主机名 启动服务: Master: systemctl start salt-minion systemctl start salt-master Minoin: systemctl start salt-minion
yum安装源两端必须使用一样的,安装之前报旧的删除,hosts文件里面要配置所有主机名
查看master端口状态:
![](https://images2015.cnblogs.com/blog/1019229/201705/1019229-20170502150847507-631058252.png)
启动服务之后会在/etc/salt下面产生一个minion_id的配置文件(里面就是我们配置文件中指定的ID,可以不修改。不修改默认就是主机名)同时还会产生一个pki的文件,里面存放minion的公钥和私钥
配置说明:
salt启动之后会先读取minion_id里面的配置
[root@Minion1 ~]# cat /etc/salt/minion_id Master [root@Minion1 ~]# cat /etc/salt/minion_id Minion1 [root@Minion2 ~]# cat /etc/salt/minion_id Minion2 minion在启动的时候建立的 [root@Master salt]# tree -L 2 /etc/salt/pki/ /etc/salt/pki/ ├── master │ ├── master.pem │ ├── master.pub │ ├── minions │ ├── minions_autosign │ ├── minions_denied │ ├── minions_pre │ └── minions_rejected └── minion ├── minion.pem #私钥 └── minion.pub #公钥 配置完master启动minion的时候就会将公钥发送过去 Master详解: [root@Master salt]# tree -L 3 /etc/salt/pki/ /etc/salt/pki/ ├── master │ ├── master.pem #私钥 │ ├── master.pub #公钥 │ ├── minions │ ├── minions_autosign │ ├── minions_denied │ ├── minions_pre #收到minion的公钥,等待master同意 │ │ ├── Master #使用id作为公钥名称 │ │ ├── Minion1 │ │ └── Minion2 │ └── minions_rejected └── minion ├── minion.pem #私钥 └── minion.pub #公钥
认证:
帮助:
[root@Master ~]# salt-key --help
同意的三种方法:
[root@Master salt] salt-key -A [root@Master salt] salt-key -a 指定id [root@Master salt] salt-key -a 支持通配符
我们选择第一种演示
salt-key命令介绍:
-L 列出所有 -d 删除指定的支持通配符 -D 删除所有 -A 添加所有 -a 指定添加
同意之后master发送公钥
命令测试:
salt '*' test.ping
命令解析:
* 代表所有
‘ ’ 引号,防止扩展
test.ping 模块的方法
* 可以写Master或者Minion 也支持正则
三、命令测试:
1.查看登录状态
salt "*" cmd.run 'w'
2.创建目录及查看创建:
salt "*" cmd.run "mkdir /test"
salt "*" cmd.run "ls -l /test"
查看命令是否运行:
ps -aux|grep salt
东方