I didn't realized about the parameterized roles. I'll give that go! But 
that also cleared up on what role dependencies was suppose to be for.

What I am try to do though is to load up a different config file instead so 
that instead of me trying to do 

var_files
   - config_file
role:
- { role: webservers, servername: www.site1.com, documentroot: 
/var/www/site1 }
- { role: webservers, servername: www.siteB.com <http://www.siteb.com/>, 
documentroot: /var/www2/siteB }

I can do something like 

var_files
   - config_file
role:
- { role: webservers, [ Config file 1] }
- { role: webservers, [ Config file 2] }

Though I guess maybe the var_files should be in the roles itself perhaps? I 
could try to make my role take in either individual vars or if a var_files 
is defined, to use that instead?

On Thursday, November 28, 2013 5:09:06 AM UTC-8, Fred Badel wrote:
>
> Hi,
>
> You can use parameterized roles …
> I use the following to create several DB using one role (roughly):
>
> roles/create_db/tasks/main.yml:
>
> - name: create {{ db_name }}
>   mysql_db: name={{ db_name }} encoding=utf8 login_user=root state=present 
> login_password={{ mysql_root_password }}
>
> then it is called as follow in the playbook:
>
> - hosts: db_server
>   roles:
>       - { role: create_db, db_name: DB_1 }
>       - { role: create_db, db_name: DB_2 }
>       - { role: create_db, db_name: DB_3 }
>
>
> Typically, for an apache vhost configuration, you could pass the value of 
> “servername" and “documentroot” to the webserver role like this
>
> role:
> - { role: webservers, servername: www.site1.com, documentroot: 
> /var/www/site1 }
> - { role: webservers, servername: www.siteB.com, documentroot: 
> /var/www2/siteB }
>
> - note 1:
> you should be using {{ my_var }} instead of $my_var
>
> -note 2:
> you are mentioning role dependencies, which is meant to configure… 
> dependencies between roles (ie the role webservers requires the role 
> common) and I am not sure that it is related to you question 
> http://www.ansibleworks.com/docs/playbooks_roles.html#role-dependencies 
>
> HTH
>
> Fred
>
> On Nov 28, 2013, at 13:37 , Shih Oon Liong 
> <[email protected]<javascript:>> 
> wrote:
>
> Hi,
>
> I am kinda confused on what is the right syntax to try out this. Running a 
> role multiple times in a single playbok but a different var_files each time.
>
> I have a web server role for a LAMP stack that will also install the 
> Apache vhost site. My idea was that I can run this role on the same server 
> if I was installing multiple sites - Ansible would just skip the software 
> installations but just install the vhost configs.
>
> This works fine if I run the playbook multiple times manually. What I want 
> to do is to do this multiple times in one single playbook. My assumption is 
> that I should be using Role Dependencies (amirite?).
>
> My current playbook *roughly*
>
> ---
> # Deployment for web servers
> # 
> - hosts: $hosts
>   user: $user
>   sudo: true
>   name: Install Apache and PHP.
>   vars_files:
>     - $config_path
>     
>   roles:
>     - common
>     - webservers
>
>
> As you can see, I heavily use vars_files since I find configs to be in a 
> separate file much easier to manage. 
>
> What I am confused is how can I use role dependencies but load up a 
> different var_files each time round? The example in the documentation seems 
> to imply just individual variable replacements but my webservers role has 
> several variables that need to be set for a site install which will make it 
> unwieldy.
>
> Any help is much appreciated. Thanks!
>
>
>
>
> Invoke Labs – A business building company that equips new digital ventures 
> for long term success.
> Twitter <http://www.twitter.com/InvokeLabs> | 
> Facebook<http://www.facebook.com/InvokeLabs>
>  | LinkedIn <http://www.linkedin.com/company/invoke-labs> | 
> Blog<http://www.invokemedia.com/blog/>
>  | 
>
> *Check out the latest products from Invoke Labs 
> <http://www.invokelabs.com/>: Pendo Rent 
> <http://www.pendorent.com/> and myBestHelper <http://mybesthelper.com/>.*
>
> -- 
> 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] <javascript:>.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
-- 
Invoke Labs – A business building company that equips new digital ventures 
for long term success.
Twitter <http://www.twitter.com/InvokeLabs> | 
Facebook<http://www.facebook.com/InvokeLabs>
 | LinkedIn <http://www.linkedin.com/company/invoke-labs> | 
Blog<http://www.invokemedia.com/blog/>
 | 

*Check out the latest products from Invoke Labs 
<http://www.invokelabs.com/>: Pendo Rent 
<http://www.pendorent.com/> and myBestHelper <http://mybesthelper.com/>.*

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to