I had a kind of similar thing I did yesterday, I wanted the ability to use 
a variable in the role parameters, all the examples online always show 
static values being based to the role, and show roles being done in one 
line syntax.

You can specify a role in a longer (not one line) form that allows it.

Playbook

---
- name: Test Role Vars
  hosts: localhost
  user: root
  vars:
    role: testrole
    var1: 1
    var2: 2
  roles:
    - role: "{{ role }}"
      roleVar1: "{{ var1 }}"
      roleVar2: "{{ var2 }}"


Then have a role

---
- debug: var=roleVar1
- debug: var=roleVar2


Then output

PLAY [Test Role Vars] 
********************************************************* 

GATHERING FACTS 
*************************************************************** 
ok: [localhost]

TASK: [testrole | debug var=roleVar1] 
***************************************** 
ok: [localhost] => {
    "roleVar1": "1"
}

TASK: [testrole | debug var=roleVar2] 
***************************************** 
ok: [localhost] => {
    "roleVar2": "2"
}

PLAY RECAP 
******************************************************************** 
localhost                  : ok=3    changed=0    unreachable=0    failed=0 
 



Enjoy :)

Thanks!
Michael

On Wednesday, October 15, 2014 1:14:58 AM UTC-5, Denis J. Cirulis wrote:
>
> Hello,
>
> let's suppose I have multiple groups of virtual guests, all are split to 
> different environments and are running 2 kinds of applications but with 
> different configurations.
> In /etc/environment there env variables APPENV and APPNAME which contain 
> belonging to env like 
> APPENV=test,APPENV=stage,APPENV=dev,APPNAME=app1,APPNAME=app2 and so on.
> There is one common role 'common' where all the provisioning and initial 
> configuration tasks and files are stored (this works good). 
> I want to populate roles list in top main.yml playbook with  registering 
> these env variables as Ansible vars and use it in 
>
> roles:
>    - { common }
>    - { $appenv_$appname }
>
> Is it normal or I do have to think of something different ?
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/bb15c8ad-14e4-4ea0-bfe3-75f297525fa2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to