BacklogZero®

Ansible in a Minute · Ansible Core ·

Use default omit to skip an optional module argument

Short answer

Use default(omit) so Ansible omits a module argument when the variable is undefined instead of sending a value.

Subscribe for updates

Get an email whenever we publish new guides and blog posts. Unsubscribe anytime.

By subscribing you agree we may email you about Ansible in a Minute and related Level Up Labs updates. We store your address in the same lead sheet as our contact form.

Request

touch files with optional mode using default(omit)

Example

A quick heads-up: Every environment is different. Review and test this example before you run it on systems you care about.

YAML
---
- name: Touch files with an optional mode
  hosts: all
  gather_facts: false
  tasks:
    - name: Touch files with an optional mode
      ansible.builtin.file:
        dest: "{{ item.path }}"
        state: touch
        mode: "{{ item.mode | default(omit) }}"
      loop:
        - path: /tmp/foo
        - path: /tmp/bar
        - path: /tmp/baz
          mode: "0444"

How it works

default(omit) removes the module argument when the value is undefined. Ansible does not send mode for /tmp/foo or /tmp/bar, so the system umask applies. Only /tmp/baz receives mode 0444.

When to use it

  • Optional module arguments that should fall back to system defaults
  • Loop items that set a field only on some entries

Requirements

  • Ansible: >=2.14

Validation

  • Syntax validated
  • Not execution-tested
  • Last verified 2026-09-16

Notes

default(5) substitutes a value. default(omit) omits the argument. Do not chain filters after omit in a way that turns it back into a normal value.

Reference

Built for every Ansible use case in every organization

BacklogZero can generate this kind of automation in your environment, just like it did here.

Get BacklogZero today

Related guides

Back to Ansible in a Minute

Use default omit to skip an optional module argument · Level Up Labs