使用Salt-Stack成功安装Artifactory RPM

时间:2017-06-16 16:14:09

标签: jenkins artifactory salt-stack

我正在使用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

我知道两种类似用例的盐配方,但是,这些对于我们的需求而言过于复杂。我试图为他们发布这两个网址,但是没有足够的盐栈声誉允许我这样做。

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

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:

将此配置用于salt:

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.

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

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

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

非常感谢任何帮助/建议。

1 个答案:

答案 0 :(得分:2)

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

要回答您关于使用无主设置的问题 - 这两个选项在无主以及 master-minion 设置中都可以正常运行。

还有一个侧面说明。默认情况下,pkg.installed将尝试使用本机的软件包管理器(如果是RedHat / CentOS,则为yum / rpm)。在大多数情况下,在安装软件包时,您应该使用它,而不是直接调用yumrpm

使用yum

我们应该做的第一件事是获取有关.repo存储库的yum文件保存信息。不幸的是,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树中,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只是一个标签