salt的安装和配置
作者:杨冬 欢迎转载,也请保留这段声明。谢谢!
出处: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配置文件中保持大部分默认值,只修改两个配置:master
和id
。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可以通信,但还没有使用到其配置管理的功能,下篇来探索一下其配置管理功能。