Hello All,
 I am trying to puppetize a multi-mysql installation. Our mysql
consultant suggested that we use the pre-compiled binary installations
from mysql.com.
 So a multi-instance mysql installation would look like
/data01/multi_mysql/mysql_A/
/data01/multi_mysql/mysql_B/
/data01/multi_mysql/mysql_C/

First of all, my puppet definition below tries to do the untar first,
and doesn't try to create the file system. I don't think I have my
require order correct. How can I fix that.

Second of all, when I try to run the second mysql_B installation,
puppet borks and says:
puppetd[23415]: Could not retrieve configuration: Duplicate
definition: File[/data01/multi_mysql] is already defined in file /etc/
puppet/manifests/definitions/dba/mysql_instance.pp at line 76; cannot
redefine at /etc/puppet/manifests/definitions/dba/mysql_instance.pp:76

 I believe puppet is getting hung up on the "idempotency" (Not sure if
I am using this word correctly)
Puppet is seeing the file definition when the function is called to
install the second instance, and is saying that the definition is
previously defined. Does anyone know how to get around this. My
instance installation class is:
define mysql_install_definition (
 $data_dir, $mysql_instance, $mysql_distro
) {
 $wget = "wget -q"
 $build_area = "/usr/local/puppet"

   #data_dir should be there before this gets started
   #file { "/$data_dir":
   #        mode    => 775, owner   => "mysql", group   => "sysadmin",
   #     }

   file { "/$data_dir/multi_mysql":
            mode    => 775, owner   => "mysql", group   => "sysadmin",
            require => File [ "/$data_dir" ],
        }

   file { "/$data_dir/multi_mysql/$mysql_instance":
            mode    => 775, owner   => "mysql", group   => "sysadmin",
            require => File [ "/$data_dir/multi_mysql" ],
        }

   file { "/$data_dir/log":
            mode    => 775, owner   => "mysql", group   =>
"sysadmin",
            require => File [ "/$data_dir" ],
        }

   file { "/$data_dir/log/$mysql_instance":
            mode    => 775, owner   => "mysql", group   =>
"sysadmin",
            require => File [ "/$data_dir/log" ],
        }

   exec { "wget -q ftp://$server_local/depot/precompiled/$mysql_distro":
                    cwd      => "$build_area/KITS",
                    creates  => "$build_area/KITS/${mysql_distro}",
                    require  => [File [ "$build_area/KITS" ], File [ "/
$data_dir/multi_mysql/$mysql_instance" ]],
        }

    tarextract { "$buld_area/KITS/$mysql_distro":
                    source     => "$build_area/KITS/$mysql_distro",
                    directory  => "/$data_dir/multi_mysql/
$mysql_instance",
                    newfile    => "INSTALL-BINARY",
                    uid        => "mysql",
                    gid        => "sysadmin",
                    compression   => "gzip",
               }
}#end of mysql_install define

Thanks to all the puppet masters for any help with this.
-Tom

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