Inline/Dynamic variable in Ansible playbook
I have an ansible playbook that setups my system and I have some aliases that I like to set, like alias apt-get='sudo apt-get'
and alias yum='sudo yum'
.
Yes, I could create a block for Ubuntu and another for RedHat, but sometimes it's nice to have one module that has dynamic variable
- name: setup bash aliases
blockinfile:
path: "{{ ansible_user_dir }}/.bash_aliases"
create: yes
block: |
{{ "alias apt-get='sudo apt-get'" if ansible_distribution == 'Ubuntu' else "alias yum='sudo yum'" if ansible_distribution == 'Red Hat Enterprise Linux' }}
alias joe='joe -nobackups'
It goes something like:
my_var: "{{ 'value_1' if VAR == 'param_1' else 'value_2' if VAR == 'param_2' else 'value_3' }}"