Ubuntu 17.04上的SaltStack入门

SaltStack是基于python的配置管理程序,针对软件定义的数据中心主题下的配置文件,部署和其他任何内容的自动化进行了优化。在本指南中,您将学习如何开始使用SaltStack,添加第一个节点并编写第一个公式。

要求

  • 运行Ubuntu 17.04的Vultr实例(master)
  • 运行Ubuntu 17.04的Vultr实例(minion)

术语

SaltStack使用一些关键字来表示特定的设备或配置,如下所述:

这是主实例,它连接到添加到SaltStack“集群”中的所有服务器,从而也运行与服务器的任何命令/通信。

奴才

添加到SaltStack的服务器称为奴才。任何动作都可以在一个,一组或所有小兵上执行。

公式代表一个文件或一组文件,其中介绍了各小部件应执行的命令。这可以是单个应用程序的安装,例如nginx或部署配置文件等。

支柱是存储与一组小仆或单个小仆有关的信息的文件。例如,您将使用这种文件为特定的奴才存储Nginx的“虚拟主机”。

服务器设置

首先,我们将从为我们的SaltStack集群设置主服务器开始:

apt-get update
apt-get dist-upgrade
apt-get install salt-master

默认情况下,SaltStack主机不侦听任何接口,因为该主机通常通过公共互联网与各部门通信。我们必须对配置文件进行一些更改,可以在以下位置找到该文件/etc/salt/master

# The address of the interface to bind to:
interface: 0.0.0.0

将更改写入文件后,重新启动主服务:

service salt-master restart

奴才

现在,我们可以添加第一个仆从。继续安装所需的软件包:

apt-get update
apt-get dist-upgrade
apt-get install salt-minion

接下来,我们需要对小黄人的SaltStack配置进行其他小的更改,可以在以下位置找到/etc/salt/minion

# Set the location of the salt master server. If the master server cannot be
# resolved, then the minion will fail to start.
master: <master_server_ip>

替换<master_server_ip>为先前设置的主服务器的IP地址。理想情况下,您将为此设置一个DNS记录,以便更轻松地更改主服务器。

之后,我们必须重新启动Minion服务,以使更改生效:

service salt-minion restart

SaltStack主操作

现在,我们已经建立了一个正常的master和minion,因此我们可以直接继续进行操作,并在master上使用一小部分SaltStack命令。

显示所有奴才

# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
Rejected Keys:

注意:我们已经告诉了奴才它应该连接到哪个主服务器。因此,如果您遵循了本指南,您将已经在该Unaccepted Keys:部分下看到了奴才。

接受一个不被接受的奴才

# salt-key -a <minion_id>

接受所有未接受的奴才

# salt-key -A

移除小兵

# salt-key -d <minion_id>

注意: <minion_id>通常代表您的奴才的UNIX主机名,并存储在/etc/salt/minion_id该奴才的文件中。

创建第一个公式

将小兵添加到母版中后,我们可以继续编写第一个公式。最初,我们必须创建用于存储公式的文件夹:

mkdir -p /srv/salt/

为我们的第一个公式创建文件夹:

mkdir -p /srv/salt/nginx

基本上,公式的任何指令都存储在init.sls文件中,例如/srv/salt/nginx/init.sls。由于可以通过公式执行大量操作,因此我们将编写一个小的公式来安装Nginx:

nginx:
  pkg:
    - installed

运行您的第一个公式

init.sls如上所述写入文件后,我们可以继续运行它:

salt '*' state.sls nginx

注意: nginx代表我们先前创建的文件夹的名称。

结论

SaltStack是一款非常出色的软件,可用于自动执行任何类型的配置文件,服务部署,初始服务器推出等。由于SaltStack是基于Python的事实,如果您精通该语言,也可以轻松添加自己的模块。祝自动化!



Leave a Comment

使用Chef-solo在Ubuntu上配置Django应用

使用Chef-solo在Ubuntu上配置Django应用

有许多方法可以自动化设置和配置盒子的过程。无论出于何种原因,如果此时我们的整个系统仅包含

如何在Ubuntu 18.04上安装Strider CD

如何在Ubuntu 18.04上安装Strider CD

简介Strider CD是一个开源的持续部署平台。该应用程序使用Node.js编写,并使用MongoDB作为存储后端。大步走

如何在Ubuntu 16.04 LTS上安装Foreman

如何在Ubuntu 16.04 LTS上安装Foreman

使用其他系统?Foreman是一个免费的开源工具,可以帮助您配置和管理物理和虚拟服务器。气孔

如何在CentOS 7上安装Foreman

如何在CentOS 7上安装Foreman

使用其他系统?Foreman是一个免费的开源工具,可以帮助您配置和管理物理和虚拟服务器。气孔

Vultr负载均衡器

Vultr负载均衡器

什么是负载均衡器负载均衡器位于应用程序的前面,可在应用程序的多个实例之间分配传入流量。佛

在Windows上使用Chocolatey Package Manager

在Windows上使用Chocolatey Package Manager

简介Chocolatey将软件包管理引入了Windows,从而使Linux上的软件和依赖项管理变得容易。您可以快速而轻松

如何在Ubuntu 16.04上安装和配置Concourse CI

如何在Ubuntu 16.04上安装和配置Concourse CI

使用其他系统?简介持续集成是一种DevOps软件开发实践,使开发人员能够频繁合并。

如何在Ubuntu 18.04上安装Drone CI

如何在Ubuntu 18.04上安装Drone CI

简介Drone是一个自动化,连续的测试和交付平台,可在您自己的基础架构上运行。无人机支持任何语言,服务或

如何在CentOS 7上安装和配置Concourse CI

如何在CentOS 7上安装和配置Concourse CI

使用其他系统?简介持续集成是一种DevOps软件开发实践,使开发人员能够频繁合并。

如何在Debian 9上安装和配置Ansible以用于Windows Server

如何在Debian 9上安装和配置Ansible以用于Windows Server

使用其他系统?Ansible是用于自动化任务的开源工具。它管理Linux和Windows服务器的配置。这行得通

如何在CentOS 7上安装和配置Ansible以用于Windows Server

如何在CentOS 7上安装和配置Ansible以用于Windows Server

使用其他系统?Ansible是用于自动化任务的开源工具。它管理Linux和Windows服务器的配置。这行得通

如何在CentOS 7上安装SaltStack

如何在CentOS 7上安装SaltStack

SaltStack或Salt是一种流行的开源配置管理解决方案,可用于实施远程执行,配置管理,编码

如何在CentOS 7上安装和配置GoCD

如何在CentOS 7上安装和配置GoCD

使用其他系统?GoCD是一个开源的持续交付和自动化系统。它允许您使用其并行的

在Ubuntu 17.04上将SaltStack与支柱配合使用

在Ubuntu 17.04上将SaltStack与支柱配合使用

SaltStack是可在多个服务器上同时运行操作的出色工具,但它还支持按主机定义的配置预设,这些预设存储在服务器中。

使用Packer创建快照

使用Packer创建快照

什么是Packer?Packer是HashiCorp开发的服务器映像工具。服务器映像;或者,不变的基础设施;是一个受欢迎的替代

如何在CentOS 7上安装Jenkins

如何在CentOS 7上安装Jenkins

Jenkins是一种流行的开源CI(连续集成)工具,广泛用于项目开发,部署和自动化。这篇文章将

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息