I'm new to puppet and am still wrapping my head around it, so I'm sure
this is a newbie question.

Say I have a large number of mysql databases I want to host on a
collection of database servers.  I have a master database somewhere
that says dbserv-1 hosts db-1, db-2, and db-3, and dbserv-2 hosts
db-4, db-5, and db-6.  I want puppet to set up the initial empty
databases for me.

I've made some progress.  I am using an external classifier script.
When it sees the hostname dbserv-1, it knows the machine is a dbserv,
so it outputs the mysql-server class.  It also outputs a variable
"databases" which contains the dbs for that server: [ "db-1", "db-2",
"db-3" ].  I have a define which creates a database, and I pass it
that array as the title, so each database gets created if it does not
already exist.  This all works fine.

However, when I create the database, I also want to create a user with
a given password with access to it.  My master database says what they
should be: db-1/dbuser-1/dbpass-1, db-2/dbuser-2/dbpass-2, etc.  So I
need to pass to my database-creating define a tuple: database,
username, password.  I see how I can pass named arguments to a define,
but I do not see how to do that in a useful way when the data is in
arrays from a classifier script.

Example: My database-creating define looks like this:

define mysql::database($ensure) {
    case $ensure {
        present: { "createdb":
          exec { command to create db $name }
        }
    }
}

Inside my mysql-master class, I invoke this define:

class mysql-master {
   # stuff to set up msqld goes here

  mysql::database { $databases:
    ensure => present
  }
}

This all works.  But how do I pass to mysql::database information
about the username and password to create in a way that is correlated
with the right database name?

Thanks,

Barry

--~--~---------~--~----~------------~-------~--~----~
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