一、SaltStack概述
Salt,,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。
salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等.
多种配置管理工具对比:
Puppet(rubby开发,现在很少使用)
ansible(python开发,轻量级,没有agent,大规模环境下使用ssh会很慢,串行传输)
Saltstack(python开发,远程执行、配置管理、事件驱动基础设施、使用saltcloud可以管理私有云和公有云)
官方文档:https://docs.saltstack.com/en/getstarted/;
官方提供官方yum源:repo.slatstack.com–>可以使用cobbler自定义yum仓库进行同步
官方安装源:http://repo.saltstack.com/2016.11.html#rhel;
Saltstack组件:
SaltMaster
SaltMinion
Execution Modules
环境说明:
主机名 IP地址 说明 系统
server1 106.12.58.12 模式:master Centos 7.4 x86_64
server2 106.52.177.115 模式:minion Centos 7.4 x86_64
二、SaltStack安装
1.安装指定的yum源
master & minion
yum install https://repo.saltstack.com/yum/redhat/salt-repo-2016.11-2.el7.noarch.rpm
2.安装salt-master和salt-minion
master & minion :yum install -y salt-master salt-minion
minion :yum install -y salt-minion
3.修改minion配置并启动
master
vim /etc/salt/master
interface: 106.12.58.12
systemctl start salt-master
vim /etc/salt/minion
master: 106.12.58.12
systemctl start salt-minion
minion
vim /etc/salt/minion
master: 106.12.58.12
systemctl start salt-minion
配置后结果
[root@server1 salt]# tree pki/
pki/
├── master
│ ├── master.pem
│ ├── master.pub
│ ├── minions
│ ├── minions_autosign
│ ├── minions_denied
│ ├── minions_pre
│ │ ├── server1
│ │ └── server2
│ └── minions_rejected
└── minion
├── minion.pem
└── minion.pub
[root@server2 salt]# tree pki/
pki/
|-- master
`-- minion
|-- minion.pem
`-- minion.pub
4.配置salt-master和slat-minion通信
同意认证的方法:
分为三种:
salt-key -A
salt-key -a 指定id
salt-key -a 支持通配符
[root@server1 salt]# salt-key -a server*
The following keys are going to be accepted:
Unaccepted Keys:
server1
server2
Proceed? [n/Y] Y
Key for minion server1 accepted.
Key for minion server2 accepted.
salt-key 命令参数介绍
-L 列出所有
-d 删除指定的支持通配符
-D 删除所有
-A 添加所有
-a 指定添加
同意之后生成的文件
[root@server1 salt]# tree pki/
pki/
├── master
│ ├── master.pem
│ ├── master.pub
│ ├── minions
│ │ ├── server1
│ │ └── server2
│ ├── minions_autosign
│ ├── minions_denied
│ ├── minions_pre
│ └── minions_rejected
└── minion
├── minion_master.pub
├── minion.pem
└── minion.pub