在我的salt状态文件中,我有几次出现的模式,包括定义远程存储库和导入gpg密钥文件定义,例如。
import_packman_gpg_key:
cmd.run:
- name: rpm --import http://packman.inode.at/gpg-pubkey-1abd1afb.asc
- unless: rpm -q gpg-pubkey-1abd1afb-54176598
packman-essentials:
pkgrepo.managed:
- baseurl: http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials/
- humanname: Packman (Essentials)
- refresh: 1
require:
- cmd: import_packman_gpg_keygpg-pubkey-1abd1afb-54176598
我想把它们抽象为一个不同的状态,例如
packman-essentials:
repo_with_key.managed:
- gpg_key_id: 1abd1afb-54176598
- gpg_key_src: http://packman.inode.at/gpg-pubkey-1abd1afb.asc
- repo_url: http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials/
- repo_name: Packman (Essentials)
它将依次扩展到上面的初始声明。我查看了自定义salt状态(请参阅https://docs.saltstack.com/en/latest/ref/states/writing.html#example-state-module),但我只找到了有关如何使用Python创建一个的参考资料。我正在寻找一个仅基于状态定义的方法,因为为我的特定问题编写代码看起来有点过分。
如何创建一个自定义状态,该状态重用我用来管理软件包存储库的模板?
答案 0 :(得分:1)
以下是some heavily used by me constructs
的简单宏示例但是在您的示例中,为什么要cmd.run
导入密钥?
pkgrepo.managed
似乎支持gpgkey
选项下载密钥