0%

SaltStack学习记录

SaltStack 介绍

salt是一个新的基础平台管理工具, 只需要花费数分钟即可运行起来, 扩展性足以支撑管理上万台服务器, 数秒钟即可完成数据传递。 经常被描述为Func加强版+Puppet精简版。 SaltStack采用C/S架构。简单的说: salt是一种全新的基础设施管理方式, 部署轻松, 在几分钟内可运行起来, 扩展性好。很容易管理上万台服务器, 速度快, 服务器之间秒级通信。 salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等。最为重要的一点, salt是开源的。 而且是python实现的自动化运维工具, 这意味着我们可以对其进行一些改动, 在其基础之上加上我们想要的功能, 对其进行二次开发。

环境介绍

系统Centos7.2 x64两台, 一台为master,另一台为minion。

SaltStack安装

两台安装epel

1
[root@localhost ~]# rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm

在master安装

1
[root@localhost ~]# yum -y install salt-master

在minion上运行

1
[root@localhost ~]# yum -y install salt-minion

SAltStack配置

修改master配置文件,并启动服务

1
2
3
4
[root@localhost ~]# vim /etc/salt/master
修改interface: 192.168.1.226 #master ip地址

[root@localhost ~]# systemctl start salt-master

修改被管理端(minion),并启动服务

1
2
3
4
[root@localhost ~]# vim /etc/salt/minion
修改master: 192.168.1.226

[root@localhost ~]# systemctl start salt-minion

master接受minion的托管请求,在master上操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@localhost ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
192.168.1.136
Rejected Keys:

[root@localhost ~]# salt-key -a 192.168.1.136
The following keys are going to be accepted:
Unaccepted Keys:
192.168.1.136
Proceed? [n/Y] y
Key for minion 192.168.1.136 accepted.

[root@localhost ~]# salt-key -L
Accepted Keys:
192.168.1.136
Denied Keys:
Unaccepted Keys:
Rejected Keys:

SAltStack操作

基本操作命令通用格式

1
格式: 命令 对象 执行模块 参数salt ‘*’ cmd.run “ping -c 4 www.baidu.com" 

举个例子

1
2
3
4
5
6
7
8
9
[root@localhost ~]# salt '*' cmd.run 'uptime'
192.168.1.136:
21:14:44 up 1 day, 2:29, 3 users, load average: 0.10, 0.18, 0.13

[root@localhost ~]# salt '*' cmd.run 'date'
192.168.1.136:
Fri May 5 21:14:51 CST 2017

[root@object1 ~]# salt '*' disk.usage

默认情况下master和minion之间使用以下端口进行通信:
4505(publish_port):salt的消息发布系统
4506(ret_port):salt客户端与服务端通信的端口
cmd.run 为模块,又称之为超级命令. 可以执行Linux中的任何命令

Salt States

SLS(代表Salt State文件)是Salt State系统的核心。SLS描述了系统的目标状态, 由格式简单的数据构成。 这经常被称作配置管理。

默认的数据 - YAML

1