【问题标题】:How do I configure SaltStack to transfer a file (or install a package) for the first time?如何配置 SaltStack 第一次传输文件(或安装包)?
【发布时间】:2016-11-25 02:19:38
【问题描述】:

我正在运行两个 RedHat 实例。我在一台机器上安装了 SaltMaster,在另一台机器上安装了 SaltMinion。我正在使用免费版本的 Salt。我想测试 SaltStack 做一个基本的配置管理任务。如果它可以将文件从 SaltMaster 传输到 SaltMinion,那就太好了。如果它可以在 SaltMinion 上安装 Apache Web 服务器,那就太好了。任一项任务都会帮助我学习。我的学习目标是半灵活的。

我可以使用salt '*' test.ping。回复是True。我试过这个命令:salt '*' state.apply

我收到了这个错误:

> hostname.fqdn:
>     Data failed to compile:
> ----------
>     No matching salt environment for environment 'qa' found
> ----------
>     No matching sls found for 'qa1' in env 'qa'
> ----------
>     No matching sls found for 'base1' in env 'base'
> ----------
>     No matching salt environment for environment 'dev' found
> ----------
>     Specified SLS base1 in saltenv dev is not available on the salt master or through a configured fileserver

我修改了 /etc/salt/master 文件。我取消了这些行的注释:

fileserver_backend:
  - git
  - roots

我再次尝试了这个命令:salt '*' state.apply

我收到了这个错误:

> [ERROR   ] Error parsing configuration file: /etc/salt/master -
> expected '<document start>', but found '<block mapping start>'   in
> "<string>", line 547, column 1:
>     fileserver_backend:
>     ^ [ERROR   ] Error parsing configuration file: /etc/salt/master - expected '<document start>', but found '<block mapping start>'   in
> "<string>", line 547, column 1:
>     fileserver_backend:
>     ^

我在这里一直遵循这些指示: https://docs.saltstack.com/en/latest/topics/tutorials/states_pt1.html

我创建了一个webserver.sls 文件。

我将这些行作为内容插入:

apache:                 # ID declaration
  pkg:                  # state declaration
    - installed         # function declaration

我看不出上述方向的三行如何足以配置 SaltStack 工作。 apache 安装媒体需要在哪里?转移从哪里发生?我应该将媒体下载到 SaltMaster 吗?我会这样认为。但是我会把它放在哪里呢?我有一个卫星服务器供 yum 命令运行。

或者,我如何让 SaltStack 将文件从 SaltMaster 传输到 SaltMinion?

【问题讨论】:

    标签: devops salt-stack configuration-management


    【解决方案1】:

    第一个错误 ([...]No matching sls found for 'qa1' in env 'qa'[...]) 表明您配置了许多不同的环境 (file_roots),这些环境在您的主文件系统上不存在。您解决此问题的方法朝着正确的方向发展,但会导致此错误:

    [ERROR] 解析配置文件时出错:/etc/salt/master - 预期为 '',但在 "",第 547 行,第 1 列中找到 '':fileserver_backend:^ [ERROR] 解析配置文件时出错:/etc/ salt/master - 预期为 '',但在 "",第 547 行,第 1 列中找到 '':fileserver_backend: ^

    你应该不再能够test.ping你的仆从,因为盐大师不应该再运行了,是吗?要解决它,只需阅读错误消息。它会告诉您 salt 主配置文件中的哪个点不满意。

    fileserver_backend 配置应该可用的后端类型。您应该检查file_roots 配置以实际定义哪些根可用。根是指文件系统中的盐状态文件夹。

    一个非常简单的配置可能如下所示:

    file_roots:
      base:
      - /srv/salt
    

    它假定 /srv/salt 是您的状态树的根 - 这实际上意味着您的 webserver.sls 应该位于此文件夹中。

    你的 webserver.sls 看起来很有希望 - 当你应用它时,它应该在一个 minion 上安装 apache2。

    在 master 上管理 配置 文件并将它们传输到 minions 是 salt 可以轻松实现的。一个简单的状态可能如下所示:

    /etc/myawesomeconfigurationfile.conf:
      file.managed:
        source: salt://myawesomefile  # refers to /srv/salt/myawesomefile
        user: root
        group: root
        mode: 640
    

    您还要求提供要管理的 媒体 文件。如果您谈论与应用程序相关的数据,那么使用盐来移动它们并不是一个好主意。 IMO 其他方法,如 NFS、GlusterFS 或任何其他将用户内容与您的应用程序分离的方法将是更好的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      相关资源
      最近更新 更多