Настраиваю виртуалки. Есть простая ansible-задачка для установки пакета FreeIPA клиента:
- name: Install package
dnf:
name:
- freeipa-client
В документации Ansible написано, что для модуля dnf, если не задано значение параметра state
, то выполнится действие такое, как-будто было бы передано значение present
. Ожидаю, что поведение будет следующее: если пакета на машине нет, то он установится, если есть — то ничего не произойдет. Сегодня заметил, что для одной из машин задача выдала состояние changed, хотя я был на 100% уверен что FreeIPA там уже есть.
Посмотрел по логам dnf и увидел следующее:
2022-11-15T11:17:40+0300 DDEBUG timer: sack setup: 2441 ms
2022-11-15T11:17:40+0300 INFO Package ipa-client-4.9.8-6.0.1.module+el8.6.0+20571+0c339766.x86_64 is already installed.
2022-11-15T11:17:40+0300 DDEBUG timer: depsolve: 206 ms
2022-11-15T11:17:42+0300 DEBUG Using rpmkeys executable at /usr/bin/rpmkeys to verify signatures
2022-11-15T11:17:43+0300 INFO Running transaction check
2022-11-15T11:17:43+0300 INFO Transaction check succeeded.
2022-11-15T11:17:43+0300 INFO Running transaction test
2022-11-15T11:17:43+0300 INFO Transaction test succeeded.
2022-11-15T11:17:43+0300 DDEBUG timer: transaction test: 393 ms
2022-11-15T11:17:43+0300 INFO Running transaction
2022-11-15T11:17:44+0300 DDEBUG RPM transaction start.
2022-11-15T11:17:52+0300 DDEBUG RPM transaction over.
2022-11-15T11:17:52+0300 DDEBUG timer: verify transaction: 376 ms
2022-11-15T11:17:52+0300 DDEBUG timer: transaction: 8660 ms
2022-11-15T11:17:52+0300 DEBUG Completion plugin: Generating completion cache...
2022-11-15T11:17:53+0300 DEBUG Upgraded: authselect-1.2.5-1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: authselect-compat-1.2.5-1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: authselect-libs-1.2.5-1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: ipa-client-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: ipa-client-common-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: ipa-common-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: libipa_hbac-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libldb-2.5.2-2.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsmbclient-4.16.4-2.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsss_certmap-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsss_idmap-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsss_nss_idmap-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsss_simpleifp-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libtdb-1.4.6-1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libwbclient-4.16.4-2.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-ipaclient-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-ipalib-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-libipa_hbac-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-sss-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-sssdconfig-2.7.3-4.0.1.el8.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: samba-client-libs-4.16.4-2.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: samba-common-4.16.4-2.0.1.el8.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: samba-common-libs-4.16.4-2.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-ad-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-client-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-common-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-common-pac-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-dbus-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-ipa-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-kcm-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-krb5-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-krb5-common-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-ldap-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-proxy-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-tools-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Installed: sssd-idp-2.7.3-4.0.1.el8.x86_64
То есть сначала dnf говорит, что требуемый пакет уже установлен, а потом начинает его обновлять. Это точно нормальное поведение? Если нет, то что я делаю не так? Если да, то чем state: present
отличается от state: latest
и можно ли как-то сделать так, чтобы если пакет уже установлен, то ничего не происходило?
ОС: Oracle Linux 8, ansible-core 2.13.4