前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >入门Salt - 基本安装和设置

入门Salt - 基本安装和设置

作者头像
良莉
修改2018-09-03 15:59:02
1.9K0
修改2018-09-03 15:59:02
举报
文章被收录于专栏:最新技术最新技术

原文地址:https://www.linode.com/docs/applications/configuration-management/getting-started-with-salt-basic-installation-and-setup/

使用Linode更新于2018.03.23周五

贡献于GitHub

报告问题 | 查看文件 | 编辑文件

Salt是一个基于Python的配置管理平台,旨在从单个主服务器控制许多从服务器(用Salt的术语叫Minions)。本指南将指导您配置Salt Master和Minion,并支持任何linux发行版。

准备工作

  • 您将需要至少两个Linode:一个将作为Salt Master服务端,另一个将作为Salt Minions客户端。
  • 设置每个Linode的主机名。主机名将用于标识以命名来明确Salt中的每个Linode(例如master,minion1,minion2等)。
  • 如果您的Linode都设置在同一数据中心,我们建议您为每个系统都配置专用IP地址

使用Salt Bootstrap安装

Salt Bootstrap是一个配置脚本,它可以自动检测正在运行的操作系统,然后设置正确的存储库并安装Salt。安装脚本旨在能在Salt master和所有minion机器上运行。

Salt Master

代码语言:javascript
复制
curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P -M -N

注意 : -N的标志表示不能安装salt-minion,因为该系统是Salt Master。

Salt Minions

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

协调网络寻址

Salt Master

1.在文件顶部附近取消注释#interface:的行,并将地址占位符替换为Salt master的Linode的地址。如果您的Linode都设置在同一数据中心,您可以使用Linode的专用IP地址。

/etc/salt/master

代码语言:javascript
复制
# The address of the interface to bind to: 
interface: 203.0.113.0

2.重启Salt: sudo systemctl restart salt-master

Salt Minions

注意 : 必须对每个 Salt minion 执行此步骤。

在顶部/etc/salt/minion附近取消注释#master: salt,并替换salt为Salt master的IP地址:

/etc/salt/minion

1 2 3

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

给Salt Master认证Minions

获取Salt Master Key指纹

列出Salt master的密钥指纹列表,以及与其关的所有Minions的指纹:

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

您会看到在Unaccepted Keys下列出的minion主机名或IP地址,以及每个密钥的SHA256指纹。这里指纹被...截断以避免混乱。

代码语言:javascript
复制
Local Keys:
master.pem: e9:6a:86:bf...
master.pub: 4b:2a:81:79...
Accepted Keys:
Unaccepted Keys:
minion1: c7:b2:55:83:46...
minion2: f8:41:ce:73:f8...

配置Salt Minions

1.在单引号之间,添加Salt Master的master.pub指纹到/etc/salt/minion: / etc /salt/minion

代码语言:javascript
复制
# Fingerprint of the master public key to validate the identity of your Salt master
# before the initial key exchange. The master fingerprint can be found by running 
# "salt-key -f master.pub" on the Salt master.
master_finger: '4b:2a:81:79...'

2.重启Salt:

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

3.列出Minion的指纹散列,并使用上面步骤1中Salt Master报告的内容进行验证:

sudo salt-call key.finger --local

接收Minions

1.一旦验证了每个Minion ID,从Salt Master来的请全部接收:

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

注意:要接收单个的minion,请按主机名或IP地址来指定它:

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

2.验证接收的minions的状态,下面的这个命令该要返回已验证并正在运行的每个Minion的主机名或IP地址。

代码语言:javascript
复制
sudo salt-run manage.up

有关Salt键的更多信息,请参阅salt-key手册页。

测试Master-Minion的连接

Ping掉所有的Minions:

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

输出应显示每个Minion都是true

代码语言:javascript
复制
root@saltmaster:~# salt '*' test.ping
minion1:
True
minion2:
True

概述包管理

使用pkg状态模块在Minions中安装或删除软件包。只要你运行的是由SaltStack支持的Linux发行版,SaltStack控制发行版的包管理器,aptyum等。可以通过指定Minion的主机名或IP地址,或通过向所有Minions使用*来对独立的Minions指定相应的包。

使用Salt minion的系统存储库中相同的包名称安装包。比如,apache是Debian和Ubuntu中的Apache httpd服务器包,httpd而是基于RHEL的系统中的包的名称。如果您的Salt Minions是Debian或Ubuntu的版本,您可以使用以下示例安装或删除Apache。

将Apache安装到所有的Minions:

代码语言:javascript
复制
sudo salt '*' pkg.install apache2

minion5中删除Apache:

代码语言:javascript
复制
sudo salt 'minion5' pkg.remove apache2

列出安装在minion1的所有包:

代码语言:javascript
复制
sudo salt 'minion1' pkg.list_pkgs

使用服务模块控制服务

在所有Minions上重启Apache:

代码语言:javascript
复制
sudo salt '*' service.start apache2

minion1上查看mariadb服务的状态:

代码语言:javascript
复制
sudo salt 'minion1' service.status mariadb

接下来的步骤

Salt是一个复杂的生态系统,必须通过学习和实践才能彻底掌握。该Salt文档有很多可能帮助到你的例子、教程和参考页面。

接下来,您应首先熟悉执行模块Salt States,并确定如何将它们应用于您的设置。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 使用Salt Bootstrap安装
  • 协调网络寻址
  • 给Salt Master认证Minions
    • 获取Salt Master Key指纹
      • 配置Salt Minions
        • 接收Minions
        • 测试Master-Minion的连接
        • 概述包管理
        • 接下来的步骤
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档