On Mon, Sep 21, 2009 at 11:27 AM, David Schmitt <da...@dasz.at> wrote:

>
> Chris Blumentritt wrote:
> >
> >
> > On Mon, Sep 21, 2009 at 10:03 AM, David Schmitt <da...@dasz.at
> > <mailto:da...@dasz.at>> wrote:
> >
> >
> >     Chris Blumentritt wrote:
> >      >     node web1{
> >      >            $secondary_ip = xxx
> >      >
> >      >            network::ip { $secondary_ip: }
> >      >            apache::site { blah: ip => $secondary_ip }
> >      >     }
> >      >
> >      >
> >      > How can I access the $secondary_ip variable from a class?  I have
> the
> >      > app_server class make the same site on more than one server and I
> >     do not
> >      > think I can more than once in the node.  Besides, defining the
> >     same site
> >      > more than one time seems bad.
> >
> >
> >     The variables propagate through the included classes. That way you
> can
> >     use $secodary_ip everywhere.
> >
> >
> > I thought that would be the case but it does not seem to be working.  I
> > dropped some notices to print the ip address in the log of the puppet
> > master and it is not printing anything.  I had to take it a step further
> > where I set another variable = to the secondary ip address so that I
> > could use the same erb file for multiple projects.  So I have it looking
> > like this
> >
> > node "app1" {
> >   $secondary_ip = "x.x.x.x"
> > }
> >
> > class my_project::project_env {
> >   create_project { $project_fqdn:
> >     name                              => $project_name,
> >     project_network_interface => $secondary_ip
> >   }
> > }
> >
> > snip from erb:
> >
> > <VirtualHost <%= project_network_interface -%>:80>
> >
> > My apache conf ends up with this:
> >
> > <VirtualHost :80>
>
>
> Looks very good, but you also need to include my_project::project_env
> after defining the secondary_ip in the node.
>
I have a separate class that includes the my_project::project_env for all of
my app servers.  I can verify that it is working since the apache conf file
for site is there.  I have been banging my head on a wall with this one.  I
have been dropping notice functions all over the place to figure out what is
going on.

In my create_project define I have added the following notices:

notice("secondary ip address is ${secondary_ip}")
notice("project network interface is ${project_network_interface}")

and get the following output on the server:

notice: Scope(S_project[my_project-env]): secondary ip address is x.x.x.x
notice: Scope(S_project[my_project-env]): project network interface is

I guess I am running into a scope issue or something.  I have also tried to
move the assignment of project_network_interface in front of the "call" to
the create_project define.

Does the behavior I am seeing make sense?  I don't know what I can do
different.

Chris


>
> Regards, DavidS
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to