前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上安装和配置Salt Master和Minion服务器

如何在Ubuntu 14.04上安装和配置Salt Master和Minion服务器

原创
作者头像
温浪
修改2018-09-30 10:38:10
1.7K0
修改2018-09-30 10:38:10
举报

如何在Ubuntu 14.04上安装和配置Salt Master和Minion服务器

介绍

SaltStack是一个功能强大,灵活,高性能的配置管理和远程执行系统。它可用于从集中位置管理您的基础架构,同时最大限度地减少手动维护步骤。

在本文中,我们将重点介绍如何设置Salt主服务器来管理您的基础架构。我们还将演示如何在其他计算机上安装Salt minion守护程序,以便使用Salt管理它们。我们将使用两个Ubuntu 14.04服务器来演示这些步骤。

准备

首先,您应该至少有两个Ubuntu 14.04服务器实例。你需要2台已经设置好可以使用sudo命令的非root账号的CentOS服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

准备好开始使用时,请与您的sudo用户一起登录要用作Salt master的服务器。我们将首先配置此机器。

安装主守护程序

Salt master守护程序可以在Ubuntu 14.04上以多种方式安装。以下是每种方法的优缺点的简要概述:

  • Ubuntu SaltStack PPA:使用Ubuntu本机包管理工具来安装和更新所需的软件。这是最简单的安装方法,但与撰写本文时的情况一样,软件包可能已经过时了。
  • Salt-Bootstrap:此引导脚本尝试提供更通用的方法来安装和配置Salt。它可以尝试使用可用的本机软件工具,这意味着它仍然可以尝试从上面的PPA安装。它还可以轻松访问Salt的开发版本。

下面,我们将概述如何使用Ubuntu PPA方法进行安装。我们还将提供有关如何使用该salt-bootstrap脚本安装Salt master的稳定版和开发版的说明。

您可以自行决定哪种方案最适合您的需求。如果遇到问题,可能会在开发版本中提供错误修复。但是,也有可能遇到新发布的错误。

从官方PPA安装稳定版本

从Ubuntu PPA安装是最直接的安装方法。

首先,您需要将SaltStack PPA添加到您将用作主服务器的服务器上。您可以通过输入以下内容来执

代码语言:javascript
复制
sudo add-apt-repository ppa:saltstack/salt

确认PPA添加后,它将添加到您的系统中。要索引可用的新软件包,您需要更新本地软件包索引。之后,您可以安装相关软件:

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install salt-master salt-minion salt-ssh salt-cloud salt-doc

在上面的命令中,我们安装了Salt master和minion守护进程。这将允许我们使用Salt控制我们的主服务器。我们还安装salt-sshsalt-cloud,这给我们,我们如何连接并控制资源更多的灵活性。我们也包含了文档包。

此时,您已完成Salt master安装。跳到初始主配置部分,以启动并运行新服务。

使用Salt-Bootstrap安装稳定版本

直接使用PPA的替代方法是使用salt-bootstrap脚本安装稳定版本。可以从SaltStack网站下载。您可以选择使用此方法在上述方法上安装稳定系统的一个原因是它从pip包管理器中获取了一些依赖项。这可能会为您提供一些Salt依赖项的更新版本。

要开始使用,请移至您的主目录或您具有写入权限的其他位置。我们可以curl用来下载引导脚本。我们将按照salt-bootstrapGitHub页面上的说明操作,并使用他们选择的输出名称以明确:

代码语言:javascript
复制
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

此时,请查看脚本以确保它没有执行您不赞同的任何操作:

代码语言:javascript
复制
less ~/install_salt.sh

salt-bootstrap脚本由SaltStack团队维护,但在运行之前应始终检查外部脚本的内容。

如果对将要执行的操作感到满意,请通过将脚本传递给脚本来运行该脚本sh。我们将使用该-P标志,以便脚本可以pip根据需要用作依赖源。如果没有此标志,安装可能会失败。我们还需要包含该-M标志,以便安装Salt master守护程序。将自动包含所有Salt辅助工具。

我们需要的完整命令是:

代码语言:javascript
复制
sudo sh install_salt.sh -P -M

此时,您已完成Salt master安装。跳到初始主配置部分,以启动并运行新服务。

使用Salt-Bootstrap安装开发版本

我们也可以使用该salt-bootstrap脚本来安装Salt的开发版本git。这有助于访问更新的功能,更重要的是,可以访问PPA版本软件中可能无法使用的最新错误修复。

所需的salt-bootstrap脚本与我们上面使用的脚本相同。只有我们使用的选项会有所不同。考虑到这一点,如果您还没有脚本,请将其下载到您的主目录:

代码语言:javascript
复制
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

再次,看看脚本,以确保您可以执行它将执行的操作:

代码语言:javascript
复制
less ~/install_salt.sh

如果您满意,可以传递脚本sh来执行它。我们将包含-P标志,以告诉脚本pip在必要时获取依赖关系。-M包含该标志以指定我们希望安装Salt master。我们将结束命令git develop告诉脚本我们要使用SaltStack GitHub repo来安装最新的开发版本而不是Ubuntu PPA。

我们需要的完整命令是:

代码语言:javascript
复制
sudo sh install_salt.sh -P -M git develop

此时,您已完成Salt master安装。接下来,我们将配置主服务器以启动和运行新服务。

初始主配置

接下来,我们需要配置Salt master。

创建Salt目录结构

首先,我们将创建配置管理目录结构,Salt master将查找各种文件。默认情况下,这些都在/srv目录下。我们需要/srv/salt/srv/pillar开始。现在输入以下命令创建:

代码语言:javascript
复制
sudo mkdir -p /srv/{salt,pillar}

修改Salt Master配置

接下来,我们将调整Salt主配置文件。在文本编辑器中使用sudo权限打开文件:

代码语言:javascript
复制
sudo nano /etc/salt/master

我们要做的第一件事是设置file_roots字典。这基本上指定了Salt master将查找配置管理指令的位置。在base指定的默认环境。我们之前创建的两个目录将用于此目的。这/srv/salt将用于管理员创建的指令,并将/srv/formulas留出从外部源下载的预打包配置:

代码语言:javascript
复制
file_roots:
  base:
    - /srv/salt
    - /srv/formulas

注意

重复复制给定的格式非常重要。Salt使用YAML样式的配置文件。这些需要严格注意守护进程的间距和缩进以正确解释值。

接下来,我们将为Salt柱配置设置根目录。这与上面的配置非常相似,并使用我们创建的第三个目录:

代码语言:javascript
复制
pillar_roots:
  base:
    - /srv/pillar

这是我们此时需要为主服务器配置的全部内容。完成后保存并关闭文件。

修改Salt Minion配置

我们还在这台机器上安装了Salt minion守护程序,这样我们就可以使它与其他基础设施策略保持一致。sudo接下来使用权限打开Salt minion配置:

代码语言:javascript
复制
sudo nano /etc/salt/minion

我们需要做的唯一更改是指定此minion应连接到的master。在这种情况下,minion应该连接到在同一台机器上运行的主进程。将master密钥设置为等于本地环回地址127.0.0.1,以便minion正确连接:

代码语言:javascript
复制
master: 127.0.0.1

完成后保存并关闭文件。

重新启动进程

现在,我们需要重新启动Salt master和minion守护进程才能使用我们的新配置:

代码语言:javascript
复制
sudo restart salt-master
sudo restart salt-minion

考虑到我们概述的配置更改,两个守护进程都将重新启动。

接受小奴钥匙

重启后,Salt minion守护程序会自动联系Salt master并使用其凭据。作为管理员,您只需验证并接受minion的密钥即可进行通信。

首先列出Salt master知道的所有密钥:

代码语言:javascript
复制
sudo salt-key --list all

你应该看到这样的东西。在saltmaster下面应该与你的系统的盐minionID。这通常是服务器的主机名:

代码语言:javascript
复制
Accepted Keys:
Denied Keys:
Unaccepted Keys:
saltmaster
Rejected Keys:

正如你所看到的,我们的Salt Minion已经将它的钥匙发给了主人,但它尚未被接受。出于安全考虑,在接受密钥之前,我们将运行两个命令。

我们需要确保输出(告诉我们Salt minion生成的密钥的指纹):

代码语言:javascript
复制
sudo salt-call key.finger --local
代码语言:javascript
复制
local:
    24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

匹配此处找到的指纹(Salt Master要求接受的密钥的指纹)。在这里替换minionID:

代码语言:javascript
复制
sudo salt-key -f saltmaster
代码语言:javascript
复制
Unaccepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

验证这些值是否相同后,您可以键入以下内容来接受密钥:

代码语言:javascript
复制
sudo salt-key -a saltmaster

接受密钥后,您可以看到密钥已移至“已接受密钥”部分:

代码语言:javascript
复制
sudo salt-key --list all
代码语言:javascript
复制
Accepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
Rejected Keys:

现在,您可以通过键入以下内容来测试Salt master和minion进程是否正确通信:

代码语言:javascript
复制
sudo salt '*' test.ping

您应该收到一条消息,表明运行状况检查成功:

代码语言:javascript
复制
saltmaster:
    True

您的Salt主服务器现已配置。我们可以继续演示如何设置一个额外的Salt minion服务器。

安装一个独立的minion

现在我们已经使Salt主服务器顺利运行,我们可以演示如何将Salt服务器作为一个小型控制器。

同样,我们有多种方法来安装必要的软件,但您应该匹配用于主服务器的方法。这将确保您在Salt master和minion之间没有版本不匹配。比他们的主服务器更新的盐爪可能会表现出不可预测的行为。

准备就绪后,请与您的sudo用户一起登录您的第二台服务器。

从官方PPA安装Stable Master

如果您从SaltStack PPA安装了Salt主服务器,则可以在Ubuntu minion服务器上添加相同的PPA:

代码语言:javascript
复制
sudo add-apt-repository ppa:saltstack/salt

这一次,我们只需要安装salt-minion可执行文件。添加PPA后更新本地软件包索引,并键入以下命令安装软件:

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install salt-minion

现在应该安装你的盐奴隶。跳到配置minion的部分。

使用Salt-Bootstrap安装稳定版本

如果您使用安装了稳定版本salt-bootstrap,则可以将相同的脚本下载到您的minion机器:

代码语言:javascript
复制
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

我们将以与Salt master上相同的方式调用脚本。唯一的区别是我们省略了-M标志,因为我们不需要安装主工具和守护进程:

代码语言:javascript
复制
sudo sh install_salt.sh -P

现在应该安装你的盐奴隶。跳到配置minion的部分。

使用Salt-Bootstrap安装开发版本

如果您在Salt master上安装了当前开发版本,则salt-bootstrap可以使用相同的脚本安装伴随的minion进程。输入以下内容将其下载到您的minion:

代码语言:javascript
复制
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

我们需要安装minion的命令几乎与我们在master上使用的命令相同。唯一的区别是我们离开-M标志表示我们不需要Salt主工具和守护进程:

代码语言:javascript
复制
sudo sh install_salt.sh -P git develop

完成后,继续前进以配置您的minion实例。

配置Minion

现在我们安装了minion,我们可以继续配置它以与Salt master进行通信。

获取Salt Master公钥指纹

在我们开始之前,我们应该抓住Salt master的密钥指纹。我们可以将此添加到我们的minion配置中以提高安全性。

在Salt主服务器上,键入:

代码语言:javascript
复制
sudo salt-key -F master

输出应该如下所示:

代码语言:javascript
复制
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配置中使用。

修改Minion配置

回到你的新Salt Minion,打开具有sudo权限的minion配置文件:

代码语言:javascript
复制
sudo nano /etc/salt/minion

我们需要指定可以找到Salt master的位置。这可以是可解析的DNS域名或IP地址:

的/ etc /盐/仆从

代码语言:javascript
复制
master: ip_of_salt_master

接下来,将master_finger选项设置为刚刚从Salt master复制的指纹值:

的/ etc /盐/仆从

代码语言:javascript
复制
master_finger: '7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92'

完成后保存并关闭文件。

现在,重新启动Salt minion守护程序以实现新的配置更改:

代码语言:javascript
复制
sudo restart salt-minion

新的minion应该在提供的地址联系Salt主服务。然后它将发送其密钥供主人接受。为了安全地验证密钥,需要检查新的minion服务器上的密钥指纹。

为此,请键入:

代码语言:javascript
复制
sudo salt-call key.finger --local

您应该看到如下所示的输出:

代码语言:javascript
复制
local:
    32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

您需要验证主服务器收到的密钥指纹是否与此值匹配。

接受Salt Master上的Minion Key

回到Salt主服务器,我们需要接受密钥。

首先,验证我们有一个未接受的密钥在主服务器上等待:

代码语言:javascript
复制
sudo salt-key --list all

您应该在“未接受的密钥”部分中看到与您的新奴才关联的新密钥:

代码语言:javascript
复制
Accepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
saltminion
Rejected Keys:

检查新密钥的指纹。使用您在“未接受的密钥”部分中看到的小号ID修改下面突出显示的部分:

代码语言:javascript
复制
sudo salt-key -f saltminion

输出应该如下所示:

代码语言:javascript
复制
Unaccepted Keys:
saltminion: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

如果这与您在发出salt-call命令时从minion收到的值匹配,则可以通过键入以下内容安全地接受该键:

代码语言:javascript
复制
sudo salt-key -a saltminion

现在应将密钥添加到“接受密钥”部分:

代码语言:javascript
复制
sudo salt-key --list all
代码语言:javascript
复制
Accepted Keys:
saltmaster
saltminion
Denied Keys:
Unaccepted Keys:
Rejected Keys:

通过键入以下内容测试您是否可以向新的minion发送命令:

代码语言:javascript
复制
sudo salt '*' test.ping

您应该从您配置的两个minion守护进程中收到回复的答案:

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何在Ubuntu 14.04上安装和配置Salt Master和Minion服务器
    • 介绍
      • 准备
        • 安装主守护程序
          • 从官方PPA安装稳定版本
          • 使用Salt-Bootstrap安装稳定版本
          • 使用Salt-Bootstrap安装开发版本
        • 初始主配置
          • 创建Salt目录结构
          • 修改Salt Master配置
          • 修改Salt Minion配置
          • 重新启动进程
          • 接受小奴钥匙
        • 安装一个独立的minion
          • 从官方PPA安装Stable Master
          • 使用Salt-Bootstrap安装稳定版本
          • 使用Salt-Bootstrap安装开发版本
        • 配置Minion
          • 获取Salt Master公钥指纹
          • 修改Minion配置
          • 接受Salt Master上的Minion Key
        • 结论
        相关产品与服务
        云开发 CloudBase
        云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档