Use yum: module but exclude a certain package

I have code like:

This task will upgrade/install the rpm.s if application is stopped

- name: Continue if application is not running
  block:
    - name: upgrade all packages on the server
      yum:
        name: "*"
        state: latest
        disablerepo: "*"
        enablerepo: "rhui*"

but I want exclude
389-ds-* packages

will this below work?

This task will upgrade/install the rpm.s if application is stopped

- name: Continue if application is not running
  block:
    - name: upgrade all packages on the server
      yum:
        name: "*"
        exclude:
          - 389-ds*
        state: latest
        disablerepo: "*"
        enablerepo: "rhui*"
  • name: Continue if application is not running
    block:
    - name: upgrade all packages on the server
    yum:
    name: ""
    exclude:
    - 389-ds

    state: latest
    disablerepo: ā€œ"
    enablerepo: "rhui
    ā€

That would work, though might be with a minor tweak. The yum module documentation displays the following:

exclude: kernel*,foo*

So, in your case, I’d apply it as following:

 - name: Continue if application is not running
  block:
    - name: upgrade all packages on the server
      yum:
        name: "*"
        exclude: 389-ds*
        state: latest
        disablerepo: "*"
        enablerepo: "rhui*"

As a sidenote, the Ansible documentation always advices to use the Fully Qualified Collection Name (FQCN) of modules.