# Ansible dynamic variable

**URL:** <https://forum.ansible.com/t/ansible-dynamic-variable/24937>\
**Category:** Ansible Project\
**Created:** [July 9, 2017, 10:50pm UTC](https://forum.ansible.com/t/ansible-dynamic-variable/24937 "2017-07-09T22:50:15Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kethzer\_Docteur](https://avatars.discourse-cdn.com/v4/letter/k/c6cbf5/32.png) [@Kethzer\_Docteur](https://forum.ansible.com/u/Kethzer_Docteur)\
**Post date:** [July 9, 2017, 10:50pm UTC](https://forum.ansible.com/t/ansible-dynamic-variable/24937/1 "2017-07-09T22:50:15Z")

</div>

```auto
Im trying to have ansible Update variable value base on OS distribution, but Im faling when I insert the rules in a template.
Any idea how to solve this?

---
- hosts: fansible,cansible
  vars:
    nagios_freebsd_load: -w 75,70,65 -c 90,85,80
    nagios_centos_load: -w 15,10,5 -c 30,25,20
    nagios_server_load: vars['nagios_{{ ansible_distribution|lower }}_load']
  tasks:
    - name: Print server load variable 
      debug: msg="{{ nagios_server_load }}"
    - name: Print server load variable 
      debug: var="{{ nagios_server_load }}"
    - name: Copying file
      template:
        src: ~/ansitrial/load.conf
        dest: /tmp/load.conf

cat ~/ansitrial/load.conf 
{{ nagios_server_load }}

TASK [Print server load variable] *******************************************************************************************************************************************
ok: [fansible] => {
    "msg": "vars['nagios_freebsd_load']"
}
ok: [cansible] => {
    "msg": "vars['nagios_centos_load']"
}

TASK [Print server load variable] *******************************************************************************************************************************************
ok: [fansible] => {
    "vars['nagios_freebsd_load']": "-w 75,70,65 -c 90,85,80"
}
ok: [cansible] => {
    "vars['nagios_centos_load']": "-w 15,10,5 -c 30,25,20"
}

TASK [Copying file] *********************************************************************************************************************************************************
changed: [cansible]
changed: [fansible]

PLAY RECAP ******************************************************************************************************************************************************************
cansible : ok=4 changed=1 unreachable=0 failed=0   
fansible : ok=4 changed=1 unreachable=0 failed=0

remote@fansible:~ % cat /tmp/load.conf 
vars['nagios_freebsd_load']

[remote@cansible ~]$ cat /tmp/load.conf 
vars['nagios_centos_load']

```

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [July 10, 2017, 6:08pm UTC](https://forum.ansible.com/t/ansible-dynamic-variable/24937/2 "2017-07-10T18:08:51Z")

</div>

To make it work use  
nagios\_server\_load: "{{ vars['nagios\_' ~ ansible\_distribution|lower ~ '\_load'] }}"
