Hi

I am developing a module to create a simple nas for my work and I am using 
the concat module to assemble /etc/exports and /etc/samba/smb.conf.

I developed my module on my puppet development server and concat worked 
like a charm, however when I rolled it out to my live servers if kept on 
failing with the following error:

err: Failed to apply catalog: Could not find dependent 
Exec[concat_/etc/exports] for 
File[/_etc_exports/fragments/2_exports_ART_DATA] at 
/etc/puppet/environment/testing/modules/concat/manifests/fragment.pp:48

So to be clear, this works perfectly on my development server, but not on 
my live servers. It appears as if it is some kind of dependency issue, 
either in the code or with something missing somewhere. I have checked all 
the posts I can find and I haven't found anything close to my problem.

I have tried removing all the code to do with exports and then the problem 
moves on to the smb.conf file. 

I'm running RHEL5.8 (unfortunately I can't upgrade to 6 or use any other 
distro) and the latest version of concat from github.
The code is below (I've removed some bits not associated with this problem 
to make it smaller):

class nas ($base_path = "/data0") {

    realize ( Package["samba3x"] )
    service {"smb":
        enable => true,
        ensure => true,
    }
    service{"nfs":
        enable => true,
        ensure => true,
    }

    concat{"/etc/samba/smb.conf":
        require => Package["samba3x"],
    }
    concat{"/etc/exports":
        require => Service["nfs"],
    }

    concat::fragment{"smb.conf_header":
        target => "/etc/samba/smb.conf",
        order => 1,
        content => template("nas/smb.conf.erb"),
        owner => root,
        group => root,
        mode => 644,
    }

    concat::fragment{"exports_header":
        target => "/etc/exports",
        order => 1,
        content => "#Do not edit, this file is managed by Puppet\n",
        owner => root,
        group => root,
        mode => 644,
    }

    define fileshare($share=$name,
                        $share_path = "$nas::base_path/$share",
                        $nfs_clients = "*.mycompany.co.uk",
                        $nfs_options = "no_root_squash,rw,sync",
                        $cifs_comment = "Share $share",
                        $cifs_browseable = yes,
                        $cifs_writable = yes,
                        $linux_acls = undef,
        ) {

        concat::fragment{"exports_$share":
            target => "/etc/exports",
            order => 2,
            content => template("nas/exports.erb"),
        }

        concat::fragment{"smb.conf_$share":
            target => "/etc/samba/smb.conf",
            order => 2,
            content => template("nas/smb_share.erb"),
        }

        file{$share_path:
            ensure => directory,
            owner => root,
            group => root,
        }
    }
}

Cheers

Mark

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/NXS9xn-udz4J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to