【问题标题】:Successfully Install Artifactory RPM using Salt-Stack使用 Salt-Stack 成功安装 Artifactory RPM
【发布时间】:2017-11-19 11:51:38
【问题描述】:

我正在使用 Salt Stack 使某些事情完全自动化。我目前正在通过 Salt Stack 使用 RPM 安装 Artifactory v5.3.2。我能够让它安装并正常工作,但开始从盐堆栈中收到误报错误。

目前在CentOS Linux release 7.3.1611 (Core) 上运行,带有来自here 的无主盐栈(仅用于测试目的)。根据 Artifactory 文档;他们建议使用 yum 安装 rpm 包。 Installing Artifactory OSS from an RPM disribution

我知道有两个用于类似用例的盐公式,但是这些对于我们的需求来说过于复杂了。我试图为他们发布这两个网址,但 saltstack 的声誉不足以让我这样做。

在下载 rpm 并将其放置在正确的目录之后.. 使用此盐堆栈配置在第一次尝试安装时无法正常工作:

jfrog-artifactory-oss.noarch:
  pkg.installed:
    - source: salt://path/conf/jfrog-artifactory-oss-5.3.2.rpm

返回如下错误消息:

ID: jfrog-artifactory-oss.noarch
Function: pkg.installed
  Result: False
 Comment: Error occurred installing package(s). Additional info follows:`

         errors:
              - Running scope as unit run-2994.scope.
                Loaded plugins: fastestmirror
                Loading mirror speeds from cached hostfile
                 * base: mirror.steadfast.net
                 * epel: mirror.steadfast.net
                 * extras: repo.us.bigstepcloud.com
                 * updates: mirrors.lga7.us.voxel.net
                No package jfrog-artifactory-oss available.
                Error: Nothing to do
 Started: 15:51:12.374898
Duration: 11271.36 ms
 Changes:

将此配置用于盐:

jfrog-artifactory-oss.noarch:
  cmd.run:
    - name: yum install -y /srv/salt/prod/path/conf/jfrog-artifactory-oss-5.3.2.rpm

第一次运行,但第二次使用这种格式运行它会返回如下错误:

          stderr:
              Error: Nothing to do
          stdout:
              Loaded plugins: fastestmirror
              Examining /srv/salt/prod/path/conf/jfrog-artifactory-oss-5.3.2.rpm: jfrog-artifactory-oss-5.3.2-50047.noarch
              /srv/salt/prod/path/conf/jfrog-artifactory-oss-5.3.2.rpm: does not update installed package.

现在,不要让事情变得混乱.. 如果我安装了 artifactory,然后我恢复到使用 pkg.installed 方法安装它的第一种方法,事情会按预期工作,返回一条成功消息说'所有指定的软件包都已安装'。

通常,这种误报是由于未在 salt state 文件中使用正确的包名称引起的,因此运行 yum list installed 会返回 jfrog-artifactory-oss.noarch,以确保我在 salt state 中使用了正确的命名。

无论是否更新软件包,我都希望能够成功完成这项工作;无需使用提供的盐公式使我们的设置过于复杂。

任何帮助/建议将不胜感激。

【问题讨论】:

  • 我认为您应该使用- sources(复数形式)作为pkg.installed 的参数。包名也可能是jfrog-artifactory-oss,没有.noarch。最后一部分是包的架构,如果我没记错的话,它不是包名称的一部分。
  • 因此,当使用- sources 时,我收到一条错误消息:“来源”参数格式无效。请参阅 minion log .. 检查 minion log 时出现相同的错误。即使将名称更改为jfrog-artifactory-oss
  • 使用 yum 安装 rpm 后,pkg.installed 方法返回预期的结果似乎没有多大意义。但是,在第一次尝试安装时使用 pkg.installed 方法根本不起作用。
  • 我在正确安装 java jdk 时也遇到了这个问题。好奇是否可能是由于没有真正的盐大师造成的。可能需要启动一个 master 并以这种方式进行一些测试。

标签: jenkins artifactory salt-stack


【解决方案1】:

Artifactory RPM 可以使用yum 存储库和rpm 直接安装。我个人建议使用yum 方式,因为它使以后的更新更容易。

回答您对使用 masterless 设置的担忧 - 这两个选项在 masterless 以及 master-minion 设置中都具有完整功能。

还有一个旁注。默认情况下,pkg.installed 将尝试使用您的操作系统本机的包管理器(yum/rpm 在 RedHat/CentOS 的情况下)。大多数情况下,安装包时应该使用它,而不是直接调用yumrpm

使用 yum

我们应该做的第一件事是获取有关yum 存储库的.repo 文件洞信息。不幸的是,documentation 中提到的那个指向带有 pro 版本的 Artifactory 的存储库。由于我们对 OSS 感兴趣 - 我们应该使用 different one

要设置它,我们将首先使用以下内容烹制 .repo 文件:

[bintray--jfrog-artifactory-rpms]
name=bintray--jfrog-artifactory-rpms
baseurl=http://jfrog.bintray.com/artifactory-rpms
gpgcheck=0
repo_gpgcheck=0
enabled=1

现在我们应该使用 salt 来配置 yum 以使用这个 .repo 文件并从这个存储库安装 Artifactory。假设 yum 配置文件位于 files/jfrog-artifactory.repo 下的 salt tree 中,Salt 配置将如下所示:

/etc/yum.repos.d/artifactory.repo:
  file.managed:
    - source: salt://files/jfrog-artifactory.repo

jfrog-artifactory-oss:
  pkg.installed:
     - require:
       - file: /etc/yum.repos.d/artifactory.repo
     - fromrepo: bintray--jfrog-artifactory-rpms

-fromrepo 选项将确保使用特定的 yum 存储库安装软件包,以防万一它在其他存储库中可用。

使用 RPM

也可以将 Artifactory RPM 直接下载到您的 Salt 配置并从那里安装。为此,我使用了以下 RPM 文件:https://bintray.com/jfrog/artifactory-rpms/download_file?file_path=jfrog-artifactory-oss-5.3.2.rpm。假设文件已下载到 Salt 树的 files/jfrog-artifactory-oss-5.3.2.rpm,安装此包的状态如下所示:

jfrog-package:
  pkg.installed:
    - sources:
      - jfrog-artifactory-oss: salt://files/jfrog-artifactory-oss-5.3.2.rpm

请注意,-sources 部分是键值对列表,其中 key 是包的名称,value 是 RPM 文件的路径。顶级jfrog-package只是一个标签

【讨论】:

  • 这正是我所需要的。我在您第一次建议时误用了- sources。感谢您的帮助!
猜你喜欢
  • 2019-11-02
  • 1970-01-01
  • 2017-10-23
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多