我有许多不同的Centos7服务器正在运行。我喜欢使用ansible立即更新它们。
由于我的一台服务器启用了额外的存储库,我不想更新。我已经在剧本中添加了禁用此回购的选项。这按预期工作。
但是,在我的其他服务器上,我没有安装并启用此repo。在我的ansible playbook中使用disablerepo时,我收到一个错误:找不到存储库。
如何在ansible-playbook中解决这个问题?如果安装了repo,是否可以添加条件;然后disablerepo;否则什么都不做?
是否可以忽略这些错误?
ansible-剧本:
---
- hosts: [all]
tasks:
- name: update all packages to lastest version
yum:
name: '*'
state: latest
disablerepo: sernet-samba-4.2
答案 0 :(得分:0)
您可以像注释中的link一样放置ignore_errors: yes
,也可以放置when,只有在安装了某些软件包后,才能确保必须先将它们注册到变量中,我在想类似的东西:
- name: check if installed
shell: rpm -qa sernet-samba-4.2
register: is_installed
- name: update all packages to lastest version
yum:
name: '*'
state: latest
disablerepo: sernet-samba-4.2
when: is_installed.rc == 1
警告:未经测试。