I am trying to manage ip address aliases and I cannot come up with a good strategy. I have three webhead servers that are balanced via a hardware load balancer. I have a define that will be setting up website config on each server and one piece I need to sort out is configuring ip addresses on the server and then configuring the apache virtual host with the corresponding ip address for the host. A sort of visual way to see what I am doing class site_name { ... } --> define setup_site { ...} The site_name class setups variables and the define does all the work based on the variables. I would like to setup a ip addresses that will be balanced for each site. And then do all of that with multiple sites. I fear the way to go about this is to set the ip address at the node and then use the fact ipaddress_ethx:y but this means I will have to have an interface to site mapping somewhere. I would rather just keep it all in puppet somehow. Any guidance is appreciated. Chris --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
On Mon, Aug 17, 2009 at 07:03:16PM -0500, Chris Blumentritt wrote:> I am trying to manage ip address aliases and I cannot come up with a good > strategy. I have three webhead servers that are balanced via a hardware > load balancer. I have a define that will be setting up website config on > each server and one piece I need to sort out is configuring ip addresses on > the server and then configuring the apache virtual host with the > corresponding ip address for the host. A sort of visual way to see what I > am doing > > class site_name { ... } --> define setup_site { ...} > > The site_name class setups variables and the define does all the work based > on the variables. I would like to setup a ip addresses that will be > balanced for each site. And then do all of that with multiple sites. > > I fear the way to go about this is to set the ip address at the node and > then use the fact ipaddress_ethx:y but this means I will have to have an > interface to site mapping somewhere. I would rather just keep it all in > puppet somehow. > > Any guidance is appreciated.AFAICT, you''re going to need some way of determining, based on the information you get from facts, which server gets which IP address. You could do this with an external node classifier, or some algorithm (custom functions could help here). Don''t know if anyone can provide better ideas than that, but hopefully this gives you somewhere to start. Cheers, -- Eric Gerlach, Network Administrator Federation of Students University of Waterloo p: (519) 888-4567 x36329 e: egerlach@feds.uwaterloo.ca --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Chris Blumentritt wrote:> I am trying to manage ip address aliases and I cannot come up with a > good strategy. I have three webhead servers that are balanced via a > hardware load balancer. I have a define that will be setting up website > config on each server and one piece I need to sort out is configuring ip > addresses on the server and then configuring the apache virtual host > with the corresponding ip address for the host. A sort of visual way to > see what I am doing > > class site_name { ... } --> define setup_site { ...} > > The site_name class setups variables and the define does all the work > based on the variables. I would like to setup a ip addresses that will > be balanced for each site. And then do all of that with multiple sites. > > I fear the way to go about this is to set the ip address at the node and > then use the fact ipaddress_ethx:y but this means I will have to have an > interface to site mapping somewhere. I would rather just keep it all in > puppet somehow.It seems that what you want is the old ''interface'' resource type that existed earlier in Puppet. Unfortunately, it rotted and became broken, and since no-one stepped forward to fix it, Luke dropped it a while ago. I don''t have a complete solution, but if you happen to run a RedHat based Linux distro (RHEL, CentOS, Fedora), I have written a definition that can configure network interfaces. You can find it in my module nsc-puppet-utils at <http://www.nsc.liu.se/~bellman/nsc-puppet-utils.git>. (You need to run ''git clone'' on that URL to download it.) There are a bunch of other things there, but what you want is the ''rh_interface'' definition in manifests/init.pp, and the accompanying template file ''rh-ifcfg.erb''. The documentation is a bit lacking, but you would use it something like this: rh_interface { "eth0": ipaddress => "10.20.30.40/24"; "eth1:3": ipaddress => "192.168.1.2", netmask => "255.255.0.0"; "eth2": bootproto => "dhcp"; } The netmask can be specified either as part of the ipaddress parameter, or as its own parameter, and you can use either a dotted quad or a number of bits. And if you are running some other OS, then maybe that definition can serve as inspiration to write your own for your situation. Hope this is of some help. /Bellman --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Thomas Bellman wrote:> Chris Blumentritt wrote: > > >> I am trying to manage ip address aliases and I cannot come up with a >> good strategy. I have three webhead servers that are balanced via a >> hardware load balancer. I have a define that will be setting up website >> config on each server and one piece I need to sort out is configuring ip >> addresses on the server and then configuring the apache virtual host >> with the corresponding ip address for the host. A sort of visual way to >> see what I am doing >> >> class site_name { ... } --> define setup_site { ...} >> >> The site_name class setups variables and the define does all the work >> based on the variables. I would like to setup a ip addresses that will >> be balanced for each site. And then do all of that with multiple sites. >> >> I fear the way to go about this is to set the ip address at the node and >> then use the fact ipaddress_ethx:y but this means I will have to have an >> interface to site mapping somewhere. I would rather just keep it all in >> puppet somehow. >> > > It seems that what you want is the old ''interface'' resource type that > existed earlier in Puppet. Unfortunately, it rotted and became broken, > and since no-one stepped forward to fix it, Luke dropped it a while ago. > > I don''t have a complete solution, but if you happen to run a RedHat > based Linux distro (RHEL, CentOS, Fedora), I have written a definition > that can configure network interfaces. You can find it in my module > nsc-puppet-utils at <http://www.nsc.liu.se/~bellman/nsc-puppet-utils.git>. > (You need to run ''git clone'' on that URL to download it.) There are > a bunch of other things there, but what you want is the ''rh_interface'' > definition in manifests/init.pp, and the accompanying template file > ''rh-ifcfg.erb''. The documentation is a bit lacking, but you would use > it something like this: > > rh_interface { > "eth0": > ipaddress => "10.20.30.40/24"; > "eth1:3": > ipaddress => "192.168.1.2", netmask => "255.255.0.0"; > "eth2": > bootproto => "dhcp"; > } > > The netmask can be specified either as part of the ipaddress parameter, > or as its own parameter, and you can use either a dotted quad or a > number of bits. > > And if you are running some other OS, then maybe that definition can > serve as inspiration to write your own for your situation. > > Hope this is of some help. > >If you are using an debian based distro you may want to have a look at augeas and augeas resources. Before creating the rule play around with augtool. Issue in augtool print /file/etc/network/interfaces so that you can see the tree ;) Also there might be something in augeas to help you with rhel,centos,fedora but I haven''t used any distro in this family for some time. Silviu --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---