带循环的易解析apt-key模块



我正在配置一个需要添加多个GPG密钥的系统。我正在尝试简化流程并遵循DRY原则。

我有从vars列表安装的apt包,如下所示:

- name: Install packages
apt: name={{ apt_packages }}

我的vars.yml如下所示:

apt_packages:
- tilix
- terraform
- ansible
- opera

这是因为apt模块接受逗号分隔的输入并相应地进行解析。

因此,当使用apt_key模块时,我试图实现类似的过程,但我似乎无法使其工作。以下是我做过的几次尝试:

- name Add keys
apt_key:
url: url="{{ items }}"
loop: "{{ gpg_keys }}"
state: present

- name: Add GPG Keys
apt_key:
url: url="{{ gpg_keys }}"
state: present

两者都会抛出不同的错误。

有可能使用apt-key模块来做这样的事情吗?很明显,我试图避免为我想要添加的每个键都有一个单独的调用方,因为会有很多键,而且我希望稍后能够通过在vars.yml中添加列表来添加额外的键。

您的任务中出现了一些小错误
正确的方法是:

- name: Add keys
apt_key:
url: "{{ item }}"
state: present
loop: "{{ gpg_keys }}"
  • 您已经有了密钥url,所以准备url=是不正确的
  • loop是任务的参数,而不是apt_key模块的参数,因此它需要缩进到apt_key的级别(与url不同,后者是模型的参数(

旁注:

  • 您还需要确保gpg_keys包含一个类似于apt_packages的列表
  • aptname参数接受一个列表,正如您在vars.yml中正确定义的那样,没有逗号分隔的字符串。(你已经做对了(

文档:

  • apt
  • apt_key

相关内容

  • 没有找到相关文章

最新更新