Hi James, If I didn't limit, would it run the tasks for *each* lbservers for *each*webserver, or would it properly know that dc1's webservers should only interact with dc1's load balancer?
I am trying to make it so that I could run a playbook for a specific datacenter, or I could run it for all at the same time (like a code deploy). The sticking point seems to be that the lbserver in dc1 should only know about the webservers in dc1. On Friday, December 6, 2013 12:38:47 PM UTC-5, James Martin wrote: > > Joel, > > It would be: > > - hosts: lbservers > > In theory, the --limit dc1 would limit the playbook to the lbservers > in dc1. Just make sure you don't forget to limit! > > - James > > On Fri, Dec 6, 2013 at 12:32 PM, <[email protected] <javascript:>> > wrote: > > Hi James, > > > > First, thanks for the response. > > > > Would the example you provided still work when the .yml files declare > there > > hosts as: > >> > >> - hosts: lbservers > > > > > > Or would it have to be changed to say: > >> > >> - hosts: dc1_lbservers > > > > > > We have specific tasks that would need to be run on the lbservers vs the > web > > servers. > > > > Thanks, > > > > -Joel > > > > > > On Friday, December 6, 2013 12:19:51 PM UTC-5, James Martin wrote: > >> > >> Joel, > >> > >> This is untested, but might work (depending on what your playbooks are > >> doing). Try using multiple groups and parent groups with children. > >> > >> Assuming your playbooks ran against the webservers or lbserver goup: > >> > >> if you wanted updated only dc1 : > >> > >> ansible-playbook myplabook.yml --limit dc1 > >> > >> if you wanted to run against both datacenters: > >> > >> ansible-playbook myplaybook.yml > >> > >> > >> hosts file: > >> > >> [dc1:children] > >> dc1_webservers > >> dc1_lbservers > >> > >> [dc1_webservers] > >> 1.1.1.20 > >> 1.1.1.30 > >> > >> [dc1_lbservers] > >> 1.1.1.10 > >> > >> [dc2:children] > >> dc2_webservers > >> dc2_lbservers > >> > >> [dc1_webservers] > >> 1.1.2.20 > >> 1.1.2.30 > >> > >> [dc1_lbservers] > >> 1.1.2.10 > >> > >> [webservers:children] > >> dc1_webservers > >> dc2_webservers > >> > >> [lbservers:children] > >> dc1_lbservers > >> dc2_lbservers > >> > >> > >> - James > >> > >> On Fri, Dec 6, 2013 at 12:17 AM, <[email protected]> wrote: > >> > Hello, > >> > > >> > We currently have three datacenters, and they're all three basically > the > >> > same with some very minor differences. Up until now, what I've done > is > >> > created a playbook for each, and a hosts file for each datacenter. > This > >> > was > >> > primarily because the ethernet interfaces slightly differed and we > >> > didn't > >> > want to have to remember to provide forgettable variables on the > command > >> > line. > >> > > >> > Now, we're finally migrating our systems where all datacenters will > be > >> > exactly the same, so we can use the same playbook. To keep it > simple, > >> > lets > >> > say that each datacenter has one load balancer, and two web servers. > >> > > >> > DC1 > >> > > >> > [webservers] > >> > 1.1.1.20 > >> > 1.1.1.30 > >> > > >> > [lbservers] > >> > 1.1.1.10 > >> > > >> > > >> > DC2 > >> > > >> > [webservers] > >> > 1.1.2.20 > >> > 1.1.2.30 > >> > > >> > [lbservers] > >> > 1.1.2.10 > >> > > >> > > >> > DC3 > >> > > >> > [webservers] > >> > 1.1.3.20 > >> > 1.1.3.30 > >> > > >> > [lbservers] > >> > 1.1.3.10 > >> > > >> > > >> > > >> > Typically, in our previous setup where each datacenter had its own > hosts > >> > file and playbook, we'd do the following to deploy all the > installation > >> > tasks: > >> >> > >> >> ansible-playbook -i /ansible/dc1/hosts.txt > >> >> /ansible/dc1/all_full_deploy.yml > >> > > >> > > >> > Since our datacenters will basically be the same, and the playbook > can > >> > now > >> > be the same, I understand that I could use just one playbook, and > change > >> > out > >> > the hosts file and it'll work to isolate deployments to that > datacenter. > >> > The > >> > issue, and why I'm writing this is that I'd also be able to, for > >> > example, > >> > deploy our website to all [webservers] regardless of which datacenter > >> > it's > >> > in—and it has to perform a few tasks on the respective load balancer > >> > when it > >> > does it (taking it out and adding it back). > >> > > >> > So, what is the recommended way to have a multi-datacenter hosts file > so > >> > that we can work with a single datacenter, or all of them ideally > using > >> > the > >> > same hosts file and the same playbook? > >> > > >> > Thank you guys in advance for any advice you can provide. > >> > > >> > Sincerely, > >> > Joel Strellner > >> > > >> > -- > >> > 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. > > > > -- > > 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. > -- 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.
