ansible.builtin.path_join filter – Join one or more path components

Note

This filter plugin is part of ansible-core and included in all Ansible installations. In most cases, you can use the short plugin name path_join. However, we recommend you use the Fully Qualified Collection Name (FQCN) ansible.builtin.path_join for easy linking to the plugin documentation and to avoid conflicting with other collections that may have the same filter plugin name.

New in ansible-base 2.10

Synopsis

  • Returns a path obtained by joining one or more path components.

  • If a path component is an absolute path, then all previous components are ignored and joining continues from the absolute path. See examples for details.

Input

This describes the input of the filter, the value before | ansible.builtin.path_join.

Parameter

Comments

Input

list / elements=string / required

A path, or a list of paths.

Examples

# If path == 'foo/bar' and file == 'baz.txt', the result is '/etc/foo/bar/subdir/baz.txt'
{{ ('/etc', path, 'subdir', file) | path_join }}

# equivalent to '/etc/subdir/{{filename}}'
wheremyfile: "{{ ['/etc', 'subdir', filename] | path_join }}"

# trustme => '/etc/apt/trusted.d/mykey.gpg'
trustme: "{{ ['/etc', 'apt', 'trusted.d', 'mykey.gpg'] | path_join }}"

# If one of the paths is absolute, then path_join ignores all previous path components
# If backup_dir == '/tmp' and backup_file == '/sample/baz.txt', the result is '/sample/baz.txt'
# backup_path => "/sample/baz.txt"
backup_path: "{{ ('/etc', backup_dir, backup_file) | path_join }}"

Return Value

Key

Description

Return value

string

The concatenated path.

Returned: success

Authors

  • Anthony Bourguignon (@Toniob)

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.