Init.pp as below.

# Class: alfresco
#
# This module manages alfresco
#
# Parameters:
#
# Actions:
#
# Requires:
#
# Sample Usage:
#
# [Remember: No empty lines between comments and class definition]
class alfresco(
    $user = "alfresco",    
    $database_name = "alfresco",
    $database_driver = "org.postgresql.Driver",
    $database_driver_jar = "postgresql-9.1-902.jdbc4.jar",
    $database_driver_source = 
"puppet:///modules/alfresco/db/postgresql-9.1-902.jdbc4.jar",
    $database_url = "jdbc:postgresql://localhost/alfresco",
    $database_user = "alfresco",
    $database_pass = "alfresco",
    $number = 7,
    $version = "4.2.c",
    $build = "04576",
    $alfresco_host = $fqdn,
    $alfresco_protocol = "http",
    $alfresco_port = "8080",
    $alfresco_contextroot = "alfresco",
    $share_host = $fqdn,
    $share_protocol = "http",
    $share_port = "8080",
    $share_contextroot = "share",
    $webapp_base = "/srv",
    $memory = "1024m",
    $imagemagick_version = "6.5.6",
    $smtp_host = "localhost",
    $smtp_port = "25",
    $smtp_username= "anonymous",
    $smtp_password= '',
    $smtp_encoding="UTF-8",
    $smtp_from_default="alfresco@${domain}",
    $smtp_auth="false",
    $mail_enabled="true",
    $mail_inbound_enabled="true",
    $mail_port="1025",
    $mail_domain=$domain,
    $mail_unknown_user="anonymous",
    $mail_allowed_senders=".*",
    $imap_enabled = "false",
    $imap_port = "1143",
    $imap_host = $fqdn,
    $authentication_chain="alfrescoNtlm1:alfrescoNtlm",
    $custom_settings=[]
) {
    
# configuration    
    $zip = "alfresco-community-${version}.zip"
    $download_url = 
"http://dl.alfresco.com/release/community/build-${build}/${zip}";
    $alfresco_dir = "${webapp_base}/${user}"
    $alfresco_home = "${alfresco_dir}/alfresco-home"
    
    $share_webapp_context = $share_contextroot ? {
    '/' => 'share',    
    '' => 'share',
    default  => "${share_contextroot}"
    }
    
    $share_webapp_war = $share_contextroot ? {
        '' => "share.war",
        '/' => "share.war",
        default => "${share_contextroot}.war"    
    }
    
    $alfresco_webapp_context = $alfresco_contextroot ? {
      '/' => 'alfresco',    
      '' => 'alfresco',
      default  => "${alfresco_contextroot}"
    }
    
    $alfresco_webapp_war = $alfresco_contextroot ? {
        '' => "alfresco.war",
        '/' => "alfresco.war",
        default => "${alfresco_contextroot}.war"    
    }
    
# required packages
    if (!defined(Package['unzip'])) {
        package { "unzip":
            ensure => present,
        }    
    }
    
    #package { "python-software-properties":
    #    ensure => present,
    #}
    
    #exec { "apt-update-swftools":
    #    command     => "/usr/bin/aptitude update",
    #    refreshonly => true,
    #}

    exec { "yum-repository-swftools":
        command => "/usr/bin/yum install swftools",
        #notify  => Exec["apt-update-swftools"],
        #require => Package["python-software-properties"],
    }

     exec { "yum-repository-imagemagick":
        command => "/usr/bin/yum install ImageMagick",
        #notify  => Exec["apt-update-swftools"],
        #require => Package["python-software-properties"],
    }

    package { "ImageMagick":
        ensure => present,
    }
    
    package { "swftools":
        ensure => present,
        #require => Exec["apt-update-swftools"],
    }
    
    package { "libreoffice":
        ensure => present,
    }
    
# download and extract alfresco
    file { $alfresco_home:
        ensure => directory,
        mode => 0755,
        owner => $user,
        group => $user,
        require => Tomcat::Webapp::User[$user],
    }

    exec { "download-alfresco":
        command => "/usr/bin/wget -O /tmp/${zip} ${download_url}",
        creates => "/tmp/${zip}",
        timeout => 1200,    
    }
    
    file { "/tmp/${zip}":
        ensure => file,
        require => Exec["download-alfresco"],
    }
    
    exec { "extract-alfresco" :
        command => "/usr/bin/unzip ${zip} -d /tmp/alfresco-${version}",
        creates => 
"/tmp/alfresco-${version}/web-server/webapps/alfresco.war",
        require => [
            File["/tmp/${zip}"],
            Package["unzip"]
        ],
        notify => [
            Exec['move-alfresco-war'],
            Exec['move-share-war']
        ],
        cwd => "/tmp",
        user => "root"     
    }
    
    exec { "move-alfresco-war":
        command => "/bin/mv 
/tmp/alfresco-${version}/web-server/webapps/alfresco.war 
${alfresco_dir}/tomcat/webapps/${alfresco_webapp_war}",
        refreshonly => true,
        user => "root",
        require => [
            Exec["extract-alfresco"],
            Tomcat::Webapp::Tomcat[$user]
        ]
    }
    
    file { "alfresco-war":
        ensure => file,
        path => "${alfresco_dir}/tomcat/webapps/${alfresco_webapp_war}",
        owner => $user,
        group => $user,
        mode => 0644,
        require => Exec["move-alfresco-war"], 
    }
    
    exec { "move-share-war":
        command => "/bin/mv 
/tmp/alfresco-${version}/web-server/webapps/share.war 
${alfresco_dir}/tomcat/webapps/${share_webapp_war}",
        refreshonly => true,
        user => "root",
        require => [
            Exec["extract-alfresco"],
            Tomcat::Webapp::Tomcat[$user]
        ]
    }

    file { "share-war":
        ensure => file,
        path => "${alfresco_dir}/tomcat/webapps/${share_webapp_war}",
        owner => $user,
        group => $user,
        mode => 0644,
        require => Exec["move-share-war"], 
    }
    
    exec { "move-alfresco-licences":
        command => "/bin/mv /tmp/alfresco-${version}/licenses 
${alfresco_dir}/tomcat/",
        creates => "${alfresco_dir}/tomcat/licenses",
        require => [
            Exec["extract-alfresco"],
            Tomcat::Webapp::Tomcat[$user]
        ]
    }
    
# the database driver jar
    file { 'alfresco-db-driver':
        path => "${alfresco_dir}/tomcat/lib/${database_driver_jar}", 
        source => $database_driver_source,
        ensure => file,
        owner => $user,
        group => $user,
        require => Tomcat::Webapp::Tomcat[$user],
    }    
    
# the configuration files
    file { "alfresco-global.properties":
        path => 
"${alfresco_dir}/tomcat/shared/classes/alfresco-global.properties",
        content => template("alfresco/alfresco-global.properties.erb"),
        require => Tomcat::Webapp::Tomcat[$user],
        notify => Tomcat::Webapp::Service[$user],
    }
    
    file { "${alfresco_dir}/tomcat/shared/classes/alfresco":
        ensure => directory,
        owner => $user,
        group => $user,
        mode => 0755,
        require => Tomcat::Webapp::Tomcat[$user],
    }

    file { "${alfresco_dir}/tomcat/shared/classes/alfresco/web-extension":
        ensure => directory,
        owner => $user,
        group => $user,
        mode => 0755,
        require => File["${alfresco_dir}/tomcat/shared/classes/alfresco"],
        notify => Tomcat::Webapp::Service[$user],
    }

    file { "share-config-custom.xml":
        path => 
"${alfresco_dir}/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml",
        content => template("alfresco/share-config-custom.xml.erb"),
        require => 
File["${alfresco_dir}/tomcat/shared/classes/alfresco/web-extension"],
    }
    
# the webapp
    tomcat::webapp { $user:
        username => $user,
        webapp_base => $webapp_base,
        number => $number,
        max_number_open_files => "8192",        
        java_opts => "-XX:MaxPermSize=512m -Xms${memory} -Xmx${memory} 
-Dalfresco.home=${alfresco_home} -Dcom.sun.management.jmxremote",
        description => "Alfresco ECM",
        service_require => [
            File['alfresco-war'],
            File['share-war'],
            File['alfresco-db-driver'],
            File['alfresco-global.properties'],
            File['share-config-custom.xml'],
            File[$alfresco_home]
        ],
        require => Class["tomcat"],
    }

}

-- 
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/-/WhzWltCuDysJ.
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