问题
在独立的 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):
尝试解决
- 即使
suse-gis-repo
注释掉的最后两行(即gpgchk
&gpgkey
),上述问题仍然存在。 zypper ar -G <URI>
确保不检查 gpgkey,但在盐状态下没有选项。- 尝试了解决此问题的
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
------------
问题
有没有办法通过状态或执行模块自主地接受密钥(始终信任)?
执行模块是否能够通过该
module.run
函数在独立的 minions 上运行?如果它们能够在独立的 minions 上运行,那么确保所需模块存在的最佳方法是什么?
在一个状态下使用的方法是否是解决
module.run
上述问题的有缺陷的方法,如果是,为什么?