debops.resources default variables

Role configuration

resources__enabled

Enable or disable management of custom resources.

resources__enabled: True
resources__src

Absolute path to the directory on Ansible Controller where custom resources can be found. You need to create this directory manually.

By default, path is relative to the Ansible inventory.

resources__src: '{{ inventory_dir | realpath + "/../resources/" }}'
resources__time_format

Time format to be used for the Ansible ansible.builtin.file module. This is used for example when the access_time is specified. It is set here to ISO 8601 because the Ansible default format is hardly human readable (without separators like - and :). Example: 2023-05-23T23:42:42

resources__time_format: '%Y-%m-%dT%H:%M:%S'

Manage parent directories

This section allows to configure the behavior for non existing parent directories for destination file paths.

This applies to the following sections:

resources__parent_dirs_create

Should the parent directories be created by the role? Not creating it will cause an Ansible run time error when the directory does not exist. The global setting can be overwritten for individual items using item.parent_dirs_create.

resources__parent_dirs_create: True
resources__parent_dirs_recurse

Recursively set the specified file attributes of parent directories when creating them. The global setting can be overwritten for individual items using item.parent_dirs_recurse.

resources__parent_dirs_recurse: True
resources__parent_dirs_owner

Unix system user who owns the parent directory. See also resources__parent_dirs_recurse. The global setting can be overwritten for individual items using item.parent_dirs_owner.

resources__parent_dirs_owner: '{{ omit }}'
resources__parent_dirs_group

Unix system group of the parent directory. See also resources__parent_dirs_recurse. The global setting can be overwritten for individual items using item.parent_dirs_group.

resources__parent_dirs_group: '{{ omit }}'
resources__parent_dirs_mode

Unix permissions of the parent directory. See also resources__parent_dirs_recurse. The global setting can be overwritten for individual items using item.parent_dirs_mode.

resources__parent_dirs_mode: '{{ omit }}'

Manage custom templates

These variables define how the role will manage custom templates on remote hosts. See resources__templates for more details.

resources__templates

Directory which contains templates that should be generated on all hosts in the Ansible inventory.

resources__templates: [ '{{ resources__src + "templates/by-group/all" }}' ]
resources__group_templates

List of paths containing the directories of all the groups the current host is in, based on the content of group_names. See Ansible - Playbooks Variables.

For example if the host debian1 is member of group-name1 and group-name2 debops.resources will then search all template files inside the directories placed here: ansible/resources/templates/by-group/. Resulting in: [ "ansible/resources/templates/by-group/group-name1", "ansible/resources/templates/by-group/group-name2" ].

Read the documentation about resources__templates for more details on templating with debops.resources.

resources__group_templates: '{{ group_names | map("regex_replace", "^(.*)$", resources__src + "templates/by-group/\1") | list }}'
resources__host_templates

Directory which contains templates that should be generated on specific hosts in the Ansible inventory.

resources__host_templates: [ '{{ resources__src + "templates/by-host/" + inventory_hostname }}' ]

Manage custom paths

These lists allow you to manage file and directory paths on remote hosts using Ansible ansible.builtin.file module. By default role treats specified paths as directory names which should be present on the remote host. You can use all parameters supported by the Ansible ansible.builtin.file module.

See resources__paths for more details.

resources__paths

Paths managed on all hosts in Ansible inventory.

resources__paths: []
resources__group_paths

Paths managed on hosts in a specific group in Ansible inventory.

resources__group_paths: []
resources__host_paths

Paths managed on specific hosts in Ansible inventory.

resources__host_paths: []

Manage git repositories

These lists allow you to manage git repositories on remote hosts using the Ansible ansible.builtin.git module. See resources__repositories for more details.

resources__repositories

Manage git repositories on all hosts in the Ansible inventory.

resources__repositories: []
resources__group_repositories

Manage git repositories on hosts in a specific Ansible inventory group.

resources__group_repositories: []
resources__host_repositories

Manage git repositories on specific hosts in the Ansible inventory.

resources__host_repositories: []

Manage custom remote resources

These lists allow you to specify remote resources to download to the hosts using the Ansible ansible.builtin.get_url module. You can download files over HTTP, HTTPS, FTP and use all options supported by this module.

See resources__urls for more details.

resources__urls

Manage online resources on all hosts in Ansible inventory.

resources__urls: []
resources__group_urls

Manage online resources on hosts in a specific group in Ansible inventory.

resources__group_urls: []
resources__host_urls

Manage online resources on specific hosts in Ansible inventory.

resources__host_urls: []

Manage custom archives

These lists allow you to unpack archives stored on Ansible Controller to remote hosts using the Ansible ansible.builtin.unarchive module. You can use all of the parameters supported by this module.

See resources__archives for more details.

resources__archives

Manage archives on all hosts in Ansible inventory.

resources__archives: []
resources__group_archives

Manage archives on hosts in specific group in Ansible inventory.

resources__group_archives: []
resources__host_archives

Manage archives on specific hosts in Ansible inventory.

resources__host_archives: []

Manage custom files

These lists allow you to manage file contents on remote hosts, either by copying files from the Ansible Controller, or providing the contents directly in Ansible inventory. You can use all parameters supported by the Ansible ansible.builtin.copy module.

See resources__files for more details.

resources__files

Manage file contents on all hosts in Ansible inventory.

resources__files: []
resources__group_files

Manage file contents on hosts in a specific group in Ansible inventory.

resources__group_files: []
resources__host_files

Manage file contents on specific hosts in Ansible inventory.

resources__host_files: []

Manage pip and virtual environments

These lists allow you to manage Python library dependencies. See Python Virtual Environment management documentation for more details.

resources__pip

Manage Python library dependencies on all hosts in Ansible inventory.

resources__pip: []
resources__group_pip

Manage Python library dependencies on hosts in a specific group in Ansible inventory.

resources__group_pip: []
resources__host_pip

Manage Python library dependencies on specific hosts in Ansible inventory.

resources__host_pip: []

Manage file capabilities

These lists allow you to manipulate file privileges using the Linux capabilities(7) system. You can use all parameters supported by the Ansible community.general.capabilities module.

See resources__capabilities for more details.

resources__file_capabilities

Manage file capabilities on all hosts in Ansible inventory.

resources__file_capabilities: []
resources__group_file_capabilities

Manage file capabilities on hosts in a specific group in Ansible inventory.

resources__group_file_capabilities: []
resources__host_file_capabilities

Manage file capabilities on specific hosts in Ansible inventory.

resources__host_file_capabilities: []
resources__combined_file_capabilities

Variable which combines all other file capabilities variables and is used in the role tasks.

resources__combined_file_capabilities: '{{ resources__file_capabilities
                                           + resources__group_file_capabilities
                                           + resources__host_file_capabilities }}'

Manage custom delayed paths

These lists allow you to manage file and directory paths on remote hosts using the Ansible ansible.builtin.file module. The lists can be used exactly the same as resources__(?:group_|host_)?paths from the Manage custom paths section. The only difference is that the custom delayed paths are handled after all non delayed resources. This allows to create symbolic links to files provided by resources__(?:group_|host_)?files for example.

See resources__paths for more details.

resources__delayed_paths

Paths managed on all hosts in Ansible inventory.

resources__delayed_paths: []
resources__group_delayed_paths

Paths managed on hosts in a specific group in Ansible inventory.

resources__group_delayed_paths: []
resources__host_delayed_paths

Paths managed on specific hosts in Ansible inventory.

resources__host_delayed_paths: []

Custom shell commands

The variables below let you define shell commands (or even small shell scripts) to execute on the remote hosts as the root UNIX account. You need to ensure idempotency by yourself. This is not a replacement for a normal Ansible role.

See resources__commands for more details.

resources__commands

List of shell commands which should be executed on all hosts in the Ansible inventory.

resources__commands: []
resources__group_commands

List of shell commands which should be executed on hosts in a specific Ansible inventory group.

resources__group_commands: []
resources__host_commands

List of shell commands which should be executed on specific hosts in the Ansible inventory.

resources__host_commands: []
resources__combined_commands

Variable which combines all other shell command variables and is used in the role tasks.

resources__combined_commands: '{{ resources__commands
                                  + resources__group_commands
                                  + resources__host_commands }}'

String replacement management

The variables below let you define string replacement in files.

resources__replacements

List of replacements which should be executed on all hosts in the Ansible inventory.

resources__replacements: []
resources__group_replacements

List of replacements which should be executed on hosts in a specific Ansible inventory group.

resources__group_replacements: []
resources__host_replacements

List of replacements which should be executed on specific hosts in the Ansible inventory.

resources__host_replacements: []
resources__combined_replacements

Variable which combines all other line replacements variables and is used in the role tasks.

resources__combined_replacements: '{{ resources__replacements
                                      + resources__group_replacements
                                      + resources__host_replacements }}'