2

问题

在独立的 minionsalt.states.pkgrepo.managed上,用于添加非标准软件仓库。正在发生的问题是,当以下sudo zypper update运行时,系统没有(自动)接受密钥,从而阻止更新或安装任何包,因此下一个状态失败。

重申使用的确切状态mysuse.sls

suse-gis-repo:
  pkgrepo.managed:
    - name: Application_Geo
    - humanname: Applications related to the earth (GIS, Mapping, geodesy, GPS, astronomy) (openSUSE_Leap_42.1)
    - baseurl: http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/
    - gpgcheck: 1
    - gpgkey: http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1//repodata/repomd.xml.key

问题是状态的下一阶段何时运行:

packages_uptodate:
  pkg.uptodate:
    - refresh: True

由于需要手动干预而失败,如下所示:

New repository or package signing key received:

Repository:       Application_Geo
Key Name:         Application:Geo OBS Project <Application:Geo@build.opensuse.org>
Key Fingerprint:  195E2111 06BC205D 2A9C2222 CC7F0748 9591C39B
Key Created:      Thu 16 Jul 2015 08:01:27 PM CEST
Key Expires:      Sat 23 Sep 2017 08:01:27 PM CEST
Rpm Name:         gpg-pubkey-9591c39b-55a7f177


Do you want to reject the key, trust temporarily, or trust always? [r/t/a/? shows all options] (r):

尝试解决

  1. 即使suse-gis-repo注释掉的最后两行(即gpgchk& gpgkey),上述问题仍然存在。
  2. zypper ar -G <URI>确保不检查 gpgkey,但在盐状态下没有选项。
  3. 尝试了解决此问题的salt.states.pkgrepo.managed一种尝试,而不是尝试使用相应的执行模块zypper.mod_repo

#3 中描述的示例如下:

package_autoaccept_key:
  module.run:
    - name: zypper.mod_repo
    - kwargs: {
          repo: 'Application_Geo',
          baseurl: 'http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/',
          enabled: 'True',
          refresh: 'True',
          gpgcheck: 'True',
          gpgautoimport: 'True'
      }

出现错误:

local:
----------
    ID: package_autoaccept_key
    Function: module.run
    Name: zypper.mod_repo
    Result: False
    Comment: Module function zypper.mod_repo is not available
    Started: 02:18:34.108787
    Duration: 543.087 ms
    Changes:

Summary for local
------------
Succeeded: 0
Failed:    1
------------

问题

  1. 有没有办法通过状态或执行模块自主地接受密钥(始终信任)?

  2. 执行模块是否能够通过该module.run函数在独立的 minions 上运行?

  3. 如果它们能够在独立的 minions 上运行,那么确保所需模块存在的最佳方法是什么?

  4. 在一个状态下使用的方法是否是解决module.run上述问题的有缺陷的方法,如果是,为什么?

4

0 回答 0