On Thursday, March 27, 2014 9:31:40 PM UTC-5, Adam Clark wrote:
>
> Hi all,
> I am writing a module to manage MySQL/MariaDB with Galera extensions and
> have run into a problem I don't seem to be able to figure out.
>
> Error: Could not apply complete catalog: Found 1 dependency cycle:
> (File[/etc/mysql/conf.d/wsrep.cnf] => Service[mysqld] =>
> Class[Mysql::Server] => Class[Mysql::Config] => File[/etc/mysql/conf.d] =>
> File[/etc/mysql/conf.d/wsrep.cnf])
> Cycle graph written to /var/lib/puppet/state/graphs/cycles.dot.
>
> A cut down version of my puppet file is:
> class galera::server (
> #<snip>
> ) inherits mysql {
>
> #<snip>
>
> class { 'mysql::server':
> config_hash => $config_hash,
> package_name => $server_package_name,
> service_name => $service_name,
> }
>
> #<snip>
>
> file { '/etc/mysql/conf.d/wsrep.cnf' :
> ensure => present,
> mode => '0644',
> owner => 'root',
> group => $root_group,
> content => template('galera/wsrep.cnf.erb'),
> #require => File['/etc/mysql/conf.d/'],
> notify => Service['mysqld']
> }
> }
>
> I am using the current puppetlabs-mysql (v0.9.0) from puppet forge.
> https://github.com/puppetlabs/puppetlabs-mysql/tree/master/manifests
>
> I need the file to go in after the /etc/mysql/conf.d/ resource is
> complete, but before the service is started.
>
> The /etc/mysql/conf.d/ resource is listed in mysql::config as:
> class mysql::config(
> # <snip>
> $purge_conf_dir = $mysql::purge_conf_dir,
> ) inherits mysql {
>
>
> file { '/etc/mysql/conf.d':
> ensure => directory,
> mode => '0755',
> recurse => $purge_conf_dir,
> purge => $purge_conf_dir,
> }
> }
>
> class mysql(
> #<snip>
> $purge_conf_dir = $mysql::params::purge_conf_dir,
> #<snip>
> ) {
> #<snip>
> }
>
> class mysql::params {
> # <snip>
> $purge_conf_dir = false
> #<snip>
> }
>
> Does it have something to do with the recurse/purge metaparameters? The
> defaults seem to be set as false.
>
> Full puppet file attached and dot file from --graph.
>
> Any light into this would be great.
>
The mysql module you are trying to use appears to be broken, even before
considering relationships with external resources. Notice how it orders
Service['mysqld'] *before* File['/etc/mysql/conf.d'] -- that's not your
doing, but it's probably wrong, and it's definitely causing your problem.
John
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/8a74b6b4-0c3b-434e-bc04-c6ad92bc493d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.