salt的安装和配置

目录
  1. Salt的架构
  2. 安装及配置master和minions
    1. 安装配置master
    2. 安装配置minion
  3. 测试master和minions

作者:杨冬 欢迎转载,也请保留这段声明。谢谢!
出处:https://andyyoung01.github.io/http://andyyoung01.16mb.com/

Salt是由SaltStack创建并维护的系统管理软件。使用Salt可以使数据中心的自动化,服务器配置管理,应用程序编排等工作更加简单、高效。本篇就来看看其安装和配置。

Salt的架构

Salt是典型的客户端服务器架构。服务端称为Master,客户端称为Minion,它们以daemon方式运行。它们通过4505和4506端口进行通信。

安装及配置master和minions

有多种方式可以安装salt。这里选择通过程序的包管理器进行安装。不同的Linux发行版有不同的包管理器,不过使用方式都大同小异,这里以CentOS为例进行安装,机器环境如下:
master:机器名:centos7-A, IP:192.168.71.167
minion:机器名:centos7-B, IP:192.138.71.168

安装配置master

salt软件包包含在EPEL repository中。所以首先添加EPEl安装源:

[yangdong@centos7-A ~]$ sudo yum -y install epel-release

EPEL源添加后就可以直接安装salt master了:

[yangdong@centos7-A ~]$ sudo yum -y install salt-master

安装完成后需要对master做一些配置。它的主配置文件是/etc/salt/master。不过在/etc/salt/master.d/文件夹创建以.conf作为扩展名的配置文件也可以实现对salt master进行配置,这是配置master的最佳实践。
配置文件中大部分都有默认值,而且有注释可以参考。我们保留其中大部分的默认值,这里只配置autosign_file这一项。此文件定义了master可以自动接受minion的key的主机列表的pattern。就是说只要minion的名称符合文件中定义的模式,master就自动接受这个minion的key而不用再手动使用命令接受。配置过程如下:
创建/etc/salt/master.d/文件夹,在文件夹中创建autosign_file.conf文件,添加如下行:

autosign_file: /etc/salt/autosign.conf

创建/etc/salt/autosign.conf文件,在文件中添加一个通配符*,这告诉master自动接受所有的minion的key(这里为了简单这样做,虽然有安全风险)。
完成所有的配置后,启动master,并且配置为开机自动启动:

[yangdong@centos7-A ~]$ sudo systemctl start salt-master
[yangdong@centos7-A ~]$ sudo systemctl enable salt-master

如果机器上配置了防火墙,需要将防火墙的4505和4506端口开启。

安装配置minion

minion的安装与master的安装类似,先添加EPEL源,然后直接使用包管理器安装。

[yangdong@centos7-B ~]$ sudo yum -y install epel-release
[yangdong@centos7-B ~]$ sudo yum -y install salt-minion

minion的主配置文件是主配置文件是/etc/salt/minion。与master类似,可以在/etc/salt/minion.d/文件夹中添加以.conf为后缀的配置文件。
我们也在minion配置文件中保持大部分默认值,只修改两个配置:masterid。master配置告诉minion从哪里找到master,该值可配置为可以解析为ip地址的FQDN名或者直接用IP地址;id参数配置了minion的名称,如果没有配置该参数的话,会用minion的机器名作为id。具体配置过程如下:
创建/etc/salt/minion.d/文件夹,在文件夹中创建文件master.conf和id.conf。
master.conf文件中添加内容:

master: centos7-A

注意这里的centos7-A应该可以解析为IP地址192.168.71.167,如果没有DNS服务器,可以将其添加进/etc/hosts中,或者直接使用其IP。
id.conf文件中添加内容:

id: minion

完成这些配置后,启动minion,并且配置为开机自启动:

[yangdong@centos7-B ~]$ sudo systemctl start salt-minion
[yangdong@centos7-B ~]$ sudo systemctl enable salt-minion

测试master和minions

在进行完上边的安装和配置后,可以简单测试一下master和minions的工作是否正常。
首先看看minions的key是否自动被master接受:

[root@centos7-A ~]# salt-key -l accepted
Accepted Keys:
minion

使用其它命令测试master和minions之间的通信:

[root@centos7-A ~]# salt '*' test.ping
minion:
    True
[root@centos7-A ~]# salt '*' grains.items
minion:
    ----------
    SSDs:
    biosreleasedate:
        07/02/2015
    biosversion:
        6.00
    cpu_flags:
        - fpu
        - vme
...
    zmqversion:
        3.2.5

好了,salt master和minion就配置起来了。
本篇进行了salt的基础配置,使master和minino可以通信,但还没有使用到其配置管理的功能,下篇来探索一下其配置管理功能。