SaltStack是一个功能强大,灵活,高性能的配置管理和远程执行系统。它可用于从集中位置管理您的基础架构,同时最大限度地减少手动维护步骤。
在本文中,我们将重点介绍如何设置Salt主服务器来管理您的基础架构。我们还将演示如何在其他计算机上安装Salt minion守护程序,以便使用Salt管理它们。我们将使用两个Ubuntu 14.04服务器来演示这些步骤。
首先,您应该至少有两个Ubuntu 14.04服务器实例。你需要2台已经设置好可以使用sudo
命令的非root账号的CentOS服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。
准备好开始使用时,请与您的sudo
用户一起登录要用作Salt master的服务器。我们将首先配置此机器。
Salt master守护程序可以在Ubuntu 14.04上以多种方式安装。以下是每种方法的优缺点的简要概述:
下面,我们将概述如何使用Ubuntu PPA方法进行安装。我们还将提供有关如何使用该salt-bootstrap
脚本安装Salt master的稳定版和开发版的说明。
您可以自行决定哪种方案最适合您的需求。如果遇到问题,可能会在开发版本中提供错误修复。但是,也有可能遇到新发布的错误。
从Ubuntu PPA安装是最直接的安装方法。
首先,您需要将SaltStack PPA添加到您将用作主服务器的服务器上。您可以通过输入以下内容来执
sudo add-apt-repository ppa:saltstack/salt
确认PPA添加后,它将添加到您的系统中。要索引可用的新软件包,您需要更新本地软件包索引。之后,您可以安装相关软件:
sudo apt-get update
sudo apt-get install salt-master salt-minion salt-ssh salt-cloud salt-doc
在上面的命令中,我们安装了Salt master和minion守护进程。这将允许我们使用Salt控制我们的主服务器。我们还安装salt-ssh
和salt-cloud
,这给我们,我们如何连接并控制资源更多的灵活性。我们也包含了文档包。
此时,您已完成Salt master安装。跳到初始主配置部分,以启动并运行新服务。
直接使用PPA的替代方法是使用salt-bootstrap
脚本安装稳定版本。可以从SaltStack网站下载。您可以选择使用此方法在上述方法上安装稳定系统的一个原因是它从pip
包管理器中获取了一些依赖项。这可能会为您提供一些Salt依赖项的更新版本。
要开始使用,请移至您的主目录或您具有写入权限的其他位置。我们可以curl
用来下载引导脚本。我们将按照salt-bootstrap
GitHub页面上的说明操作,并使用他们选择的输出名称以明确:
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh
此时,请查看脚本以确保它没有执行您不赞同的任何操作:
less ~/install_salt.sh
该salt-bootstrap
脚本由SaltStack团队维护,但在运行之前应始终检查外部脚本的内容。
如果对将要执行的操作感到满意,请通过将脚本传递给脚本来运行该脚本sh
。我们将使用该-P
标志,以便脚本可以pip
根据需要用作依赖源。如果没有此标志,安装可能会失败。我们还需要包含该-M
标志,以便安装Salt master守护程序。将自动包含所有Salt辅助工具。
我们需要的完整命令是:
sudo sh install_salt.sh -P -M
此时,您已完成Salt master安装。跳到初始主配置部分,以启动并运行新服务。
我们也可以使用该salt-bootstrap
脚本来安装Salt的开发版本git
。这有助于访问更新的功能,更重要的是,可以访问PPA版本软件中可能无法使用的最新错误修复。
所需的salt-bootstrap
脚本与我们上面使用的脚本相同。只有我们使用的选项会有所不同。考虑到这一点,如果您还没有脚本,请将其下载到您的主目录:
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh
再次,看看脚本,以确保您可以执行它将执行的操作:
less ~/install_salt.sh
如果您满意,可以传递脚本sh
来执行它。我们将包含-P
标志,以告诉脚本pip
在必要时获取依赖关系。-M
包含该标志以指定我们希望安装Salt master。我们将结束命令git develop
告诉脚本我们要使用SaltStack GitHub repo来安装最新的开发版本而不是Ubuntu PPA。
我们需要的完整命令是:
sudo sh install_salt.sh -P -M git develop
此时,您已完成Salt master安装。接下来,我们将配置主服务器以启动和运行新服务。
接下来,我们需要配置Salt master。
首先,我们将创建配置管理目录结构,Salt master将查找各种文件。默认情况下,这些都在/srv
目录下。我们需要/srv/salt
和/srv/pillar
开始。现在输入以下命令创建:
sudo mkdir -p /srv/{salt,pillar}
接下来,我们将调整Salt主配置文件。在文本编辑器中使用sudo
权限打开文件:
sudo nano /etc/salt/master
我们要做的第一件事是设置file_roots
字典。这基本上指定了Salt master将查找配置管理指令的位置。在base
指定的默认环境。我们之前创建的两个目录将用于此目的。这/srv/salt
将用于管理员创建的指令,并将/srv/formulas
留出从外部源下载的预打包配置:
file_roots:
base:
- /srv/salt
- /srv/formulas
注意
重复复制给定的格式非常重要。Salt使用YAML样式的配置文件。这些需要严格注意守护进程的间距和缩进以正确解释值。
接下来,我们将为Salt柱配置设置根目录。这与上面的配置非常相似,并使用我们创建的第三个目录:
pillar_roots:
base:
- /srv/pillar
这是我们此时需要为主服务器配置的全部内容。完成后保存并关闭文件。
我们还在这台机器上安装了Salt minion守护程序,这样我们就可以使它与其他基础设施策略保持一致。sudo
接下来使用权限打开Salt minion配置:
sudo nano /etc/salt/minion
我们需要做的唯一更改是指定此minion应连接到的master。在这种情况下,minion应该连接到在同一台机器上运行的主进程。将master
密钥设置为等于本地环回地址127.0.0.1
,以便minion正确连接:
master: 127.0.0.1
完成后保存并关闭文件。
现在,我们需要重新启动Salt master和minion守护进程才能使用我们的新配置:
sudo restart salt-master
sudo restart salt-minion
考虑到我们概述的配置更改,两个守护进程都将重新启动。
重启后,Salt minion守护程序会自动联系Salt master并使用其凭据。作为管理员,您只需验证并接受minion的密钥即可进行通信。
首先列出Salt master知道的所有密钥:
sudo salt-key --list all
你应该看到这样的东西。在saltmaster
下面应该与你的系统的盐minionID。这通常是服务器的主机名:
Accepted Keys:
Denied Keys:
Unaccepted Keys:
saltmaster
Rejected Keys:
正如你所看到的,我们的Salt Minion已经将它的钥匙发给了主人,但它尚未被接受。出于安全考虑,在接受密钥之前,我们将运行两个命令。
我们需要确保输出(告诉我们Salt minion生成的密钥的指纹):
sudo salt-call key.finger --local
local:
24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
匹配此处找到的指纹(Salt Master要求接受的密钥的指纹)。在这里替换minionID:
sudo salt-key -f saltmaster
Unaccepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
验证这些值是否相同后,您可以键入以下内容来接受密钥:
sudo salt-key -a saltmaster
接受密钥后,您可以看到密钥已移至“已接受密钥”部分:
sudo salt-key --list all
Accepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
Rejected Keys:
现在,您可以通过键入以下内容来测试Salt master和minion进程是否正确通信:
sudo salt '*' test.ping
您应该收到一条消息,表明运行状况检查成功:
saltmaster:
True
您的Salt主服务器现已配置。我们可以继续演示如何设置一个额外的Salt minion服务器。
现在我们已经使Salt主服务器顺利运行,我们可以演示如何将Salt服务器作为一个小型控制器。
同样,我们有多种方法来安装必要的软件,但您应该匹配用于主服务器的方法。这将确保您在Salt master和minion之间没有版本不匹配。比他们的主服务器更新的盐爪可能会表现出不可预测的行为。
准备就绪后,请与您的sudo
用户一起登录您的第二台服务器。
如果您从SaltStack PPA安装了Salt主服务器,则可以在Ubuntu minion服务器上添加相同的PPA:
sudo add-apt-repository ppa:saltstack/salt
这一次,我们只需要安装salt-minion
可执行文件。添加PPA后更新本地软件包索引,并键入以下命令安装软件:
sudo apt-get update
sudo apt-get install salt-minion
现在应该安装你的盐奴隶。跳到配置minion的部分。
如果您使用安装了稳定版本salt-bootstrap
,则可以将相同的脚本下载到您的minion机器:
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh
我们将以与Salt master上相同的方式调用脚本。唯一的区别是我们省略了-M
标志,因为我们不需要安装主工具和守护进程:
sudo sh install_salt.sh -P
现在应该安装你的盐奴隶。跳到配置minion的部分。
如果您在Salt master上安装了当前开发版本,则salt-bootstrap
可以使用相同的脚本安装伴随的minion进程。输入以下内容将其下载到您的minion:
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh
我们需要安装minion的命令几乎与我们在master上使用的命令相同。唯一的区别是我们离开-M
标志表示我们不需要Salt主工具和守护进程:
sudo sh install_salt.sh -P git develop
完成后,继续前进以配置您的minion实例。
现在我们安装了minion,我们可以继续配置它以与Salt master进行通信。
在我们开始之前,我们应该抓住Salt master的密钥指纹。我们可以将此添加到我们的minion配置中以提高安全性。
在Salt主服务器上,键入:
sudo salt-key -F master
输出应该如下所示:
Local Keys:
master.pem: 12:db:25:3d:7f:00:a3:ed:20:55:94:ca:18:f8:67:97
master.pub: 7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92
Accepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
位于“本地密钥”部分下的master.pub
密钥值是我们要查找的指纹。复制此值以在我们的Minion配置中使用。
回到你的新Salt Minion,打开具有sudo
权限的minion配置文件:
sudo nano /etc/salt/minion
我们需要指定可以找到Salt master的位置。这可以是可解析的DNS域名或IP地址:
的/ etc /盐/仆从
master: ip_of_salt_master
接下来,将master_finger
选项设置为刚刚从Salt master复制的指纹值:
的/ etc /盐/仆从
master_finger: '7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92'
完成后保存并关闭文件。
现在,重新启动Salt minion守护程序以实现新的配置更改:
sudo restart salt-minion
新的minion应该在提供的地址联系Salt主服务。然后它将发送其密钥供主人接受。为了安全地验证密钥,需要检查新的minion服务器上的密钥指纹。
为此,请键入:
sudo salt-call key.finger --local
您应该看到如下所示的输出:
local:
32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be
您需要验证主服务器收到的密钥指纹是否与此值匹配。
回到Salt主服务器,我们需要接受密钥。
首先,验证我们有一个未接受的密钥在主服务器上等待:
sudo salt-key --list all
您应该在“未接受的密钥”部分中看到与您的新奴才关联的新密钥:
Accepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
saltminion
Rejected Keys:
检查新密钥的指纹。使用您在“未接受的密钥”部分中看到的小号ID修改下面突出显示的部分:
sudo salt-key -f saltminion
输出应该如下所示:
Unaccepted Keys:
saltminion: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be
如果这与您在发出salt-call
命令时从minion收到的值匹配,则可以通过键入以下内容安全地接受该键:
sudo salt-key -a saltminion
现在应将密钥添加到“接受密钥”部分:
sudo salt-key --list all
Accepted Keys:
saltmaster
saltminion
Denied Keys:
Unaccepted Keys:
Rejected Keys:
通过键入以下内容测试您是否可以向新的minion发送命令:
sudo salt '*' test.ping
您应该从您配置的两个minion守护进程中收到回复的答案:
saltminion:
True
saltmaster:
True
您现在应该配置Salt主服务器来控制您的基础结构。我们还介绍了设置新的minion服务器的过程。您可以按照相同的程序进行其他Salt minions。这些是为Salt管理设置新基础架构所需的基本技能。
更多Ubuntu教程请前往腾讯云+社区学习更多知识。
参考文献:《How To Install and Configure Salt Master and Minion Servers on Ubuntu 14.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。