Can I modify Ansible 'remote_tmp' on a per task basis?

I am running some tasks with delegate_to. When those tasks run, they use the same remote_tmp directory setup from the ansible.cfg. However, due to permissions and directory size issues, I need to change the remote_tmp directory for tasks that I am using delegate_to for.

Example:

  • name: Create Temp Dir

delegate_to: localhost

file:

path: “{{ my_temp_dir }}”

state: directory

I am using Ansible 2.3.2.

If you are using a variable like “my_temp_dir”, then you can overwrite it before each task using something like:

  • set_fact:
    my_temp_dir: “new_value”

as a separated task.

However, if the variable is provided at runtime as an extra var, some additional considerations should be done regarding value precedence.

Roberto,

Sorry, I think worded this question wrong.
Ansible’s ‘remote_tmp’ directory that can be modified in the ‘ansible.cfg’
is what I need to be able to modify on a per task basis…preferable within the task file.

I know it can be set per host in the host file with Ansible versions >=2.4.
Right now, I have to work with Ansible 2.3.2. I can’t find a variable or an environment variable
to modify the ‘remote_tmp’ dir at a task level.

So I would want something like this - which I haven’t found a way in 2.3.2 yet:

  • name: Create Temp Dir

delegate_to: localhost

file:

path: “{{ my_temp_dir }}”

state: directory
vars:
remote_tmp: “{{ new_remote_tmp_dir }}”

Thanks again!

If you are using a variable like “my_temp_dir”, then you can overwrite it before each task using something like:

  • set_fact:
    my_temp_dir: “new_value”

as a separated task.

However, if the variable is provided at runtime as an extra var, some additional considerations should be done regarding value precedence.

You can, just need to set the var to ansible_remote_tmp, see the var entry for it https://docs.ansible.com/ansible/latest/collections/ansible/builtin/sh_shell.html#parameter-remote_tmp.