tvl*_*tvl 7 fedora ansible lxd dnf
我想用Ansible启用Fedora Copr存储库.更具体地说,我想转换此命令:
dnf copr enable ganto/lxd
Run Code Online (Sandbox Code Playgroud)
使用Ansible command
模块我克服了这个问题但是打破了任务的幂等性(如果再次运行,角色不应该进行任何更改)(changed_when: false
不是一个选项).
- name: Enable Fedora Copr for LXD
command: "dnf copr enable -y ganto/lxd"
Run Code Online (Sandbox Code Playgroud)
另外,我试过这个:
- name: Install LXD
dnf:
name: "{{ item }}"
state: latest
enablerepo: "xxx"
with_items:
- lxd
- lxd-client
Run Code Online (Sandbox Code Playgroud)
我在哪里测试选项的许多变化enablerepo
而没有任何成功.
这可能是使用dnf Ansible模块(或其他)吗?
您可以使用creates
使您的命令幂等;如果.repo
文件已经存在,那么任务将不会运行:
- name: Enable Fedora Copr for LXD
command:
cmd: dnf copr enable -y ganto/lxd
creates: /etc/yum.repos.d/_copr_ganto-lxd.repo
Run Code Online (Sandbox Code Playgroud)
(你必须enabled=1
手动检查)
$ cat /etc/yum.repos.d/_copr_ganto-lxd.repo
[ganto-lxd]
name=Copr repo for lxd owned by ganto
baseurl=https://copr-be.cloud.fedoraproject.org/results/ganto/lxd/fedora-$releasever-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/ganto/lxd/pubkey.gpg
repo_gpgcheck=0
enabled=1
Run Code Online (Sandbox Code Playgroud)
现在可以感谢https://docs.ansible.com/ansible/latest/collections/community/general/copr_module.html
原始片段使用command
- name: Enable Fedora Copr for LXD
command: "dnf copr enable -y ganto/lxd"
Run Code Online (Sandbox Code Playgroud)
可以改为
- name: Enable Fedora Copr for LXD
community.general.copr:
name: ganto/lxd
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1464 次 |
最近记录: |