Files
Wiki/Ansible/README.md

1.2 KiB

Ansible

Adhoc commands

Generic

ansible <hosts/groups pattern> -l <limit pattern> -m <module> -a "<module args>" -u <login user> --become --ask-become-pass

Example

ansible all -l localhost -m systemd -a "name=nginx state=restarted" -u test --become --ask-become-pass

Usecases

Filter numbers from a list of strings

sample.result_list is a list of lists containing stdout output. We want to filter some numbers from this output. To do this we first filter the correct lines by using the json_query filter. If you need to match a specific substring, you could use select("match", "<regex>") in combination with the json_query. Next we map the regex_search filter on all lines to extract the data we need. As the map filter is a Python generator object, we need to convert it to a list.

---

- hosts: localhost

  vars:
    sample:
      result_list:
      - stdout_lines:
        - 'line0'
        - 'line12 (2319)'
      - stdout_lines:
        - 'line2'
        - 'line12 (2320)'

  tasks:
  - debug:
      msg: '{{ sample.results | json_query("[*].stdout_lines[1]") | map("regex_search" ,"(?<=\()\d*") | list }}'