Checking for a string and value

Hi All,

Request your help, I need to find whether the string numa_balancing is set to disabled in the file /etc/default/grub where the string in contained in the string GRUB_CMDLINE_LINUX_DEFAULT any help on this is much appreciated.

cat /etc/default/grub|grep GRUB_CMDLINE_LINUX_DEFAULT
GRUB_CMDLINE_LINUX_DEFAULT=“root=/dev/hda1 disk=/dev/hda resume=swap console=ttyS0,115200n8 multipath=off net.ifnames=0 NON_PERSISTENT_DEVICE_NAMES=1 quiet elevator=noop intel_idle.max_cstate=1 processor.max_cstate=1 numa_balancing=disable”

From,
Vino.B

There are many ways to do that, here is one

  - slurp:
      src: /etc/default/grub
    register: r

  - debug: msg="Found it"
    when: r.content | b64decode | regex_search('^GRUB_CMDLINE_LINUX_DEFAULT=.*numa_balancing=disable')

Hi Kai,

Thank you very much, but the above solution always states tune eve when the search criteria is changed eg. in the above code if you change the =disable" to =“disbaleX” it should fail, but the output states as successful

when: r.content | b64decode | regex_search(‘^GRUB_CMDLINE_LINUX_DEFAULT=.*numa_balancing=disableX’)

From,
Vino.B

I made a little test and can't confirm this

$ cat grub
GRUB_CMDLINE_LINUX_DEFAULT="root=/dev/hda1 disk=/dev/hda resume=swap console=ttyS0,115200n8 multipath=off net.ifnames=0 NON_PERSISTENT_DEVICE_NAMES=1 quiet elevator=noop intel_idle.max_cstate=1 processor.max_cstate=1 numa_balancing=disable"

cat test.yml

Hi Kai,

Below is the playbook does not execute the debug part , can you help me what is wrong in the below play book.

  Below is the playbook does not execute the debug part , can you help me
what is wrong in the below play book.

---
- hosts: target
  remote_user: ansible
  become: true
  become_method: sudo
  tasks:
   - slurp:
      src: /etc/default/grub
     register: r
   - name: Check whether AutoNuma is disabled
     debug: msg="Found it"
     when:
r.content|b64decode|regex_search('^GRUB_CMDLINE_LINUX_DEFAULT=.*numa_balancing=disableX')

OUTPUT:

<snip />

TASK [Check whether AutoNuma is disabled]
******************************************************************************************************************************
skipping: [10.162.54.34]

The file does not have disableX in it so it will not run the task.
If you are looking for the opposite behaviour you need to add "not"

when: not (r.content|b64decode|regex_search('^GRUB_CMDLINE_LINUX_DEFAULT=.*numa_balancing=disableX'))

Hi Kai,

Thank you very much