一、入门指南 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端口状态:
启动服务之后会在/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