# # # class wmdeit_nextcloud( $instanceid, $passwordsalt, $secret, $trusted_domains =[] , $main_domain, $ext_url = "https://$main_domain", $install_dir = "/var/www/nextcloud", $distfile = "nextcloud-19.0.1.zip", $sourcefile = "https://download.nextcloud.com/server/releases/nextcloud-19.0.1.zip", $redis_password = undef, $db_port = undef, $db_user = "nextcloud", $db_password = undef, $db_host = "localhost", $db_name = "nextcloud", $db_type = "mysql", $db_prefix = "oc_", $data_dir = "$install_dir/data", $nc_user = "www-data", $nc_group = "www-data", $php_version = "7.4", $php_manage_repos = true, $create_config = false ) { class { 'apache': mpm_module => 'prefork', } class { 'apache::mod::php': php_version=>$php_version } class { '::php::globals': php_version => $php_version, config_root => "/etc/php/$php_version", }-> class { '::php': manage_repos => $php_manage_repos, fpm => false, extensions => { zip => {}, mbstring => {}, gd => {}, curl => {}, pgsql => {}, mysql => {}, ldap => {}, intl => {}, imagick => {}, redis => {}, apcu => {}, bcmath => {}, gmp => {}, }, settings => { 'PHP/memory_limit' => '512M', } } archive { "/tmp/$distfile": ensure => present, source => $sourcefile, extract_path => "/var/www", extract => true, cleanup => true, checksum => $checksum, checksum_type => $checksum_type, creates => "$install_dir", require => Class["apache"] } -> apache::vhost { $main_domain: serveraliases => $trusted_domains, port => '80', docroot => $install_dir, docroot_owner => 'www-data', docroot_group => 'www-data', } -> exec { 'ncperms': command => "/bin/chown -R www-data:www-data $install_dir", subscribe => Archive["/tmp/$distfile"], refreshonly => true, require => Class["apache"] } if $create_config { file { "$install_dir/config/config.php": require => Exec['ncperms'], ensure => file, content => template("wmdeit_nextcloud/config.php.erb") } } exec {"/bin/mkdir -p $data_dir": require => Exec['ncperms'], creates => $data_dir } -> file {$data_dir: ensure => directory, owner => $nc_user, group => $nc_group } -> file {"$data_dir/.ocdata": ensure => file, owner => $nc_user, group => $nc_group } -> file {"/etc/php/$php_version/apache2/php.ini": ensure => file, content => template("wmdeit_nextcloud/php.ini.erb") } cron {'nc_cron': ensure => present, user => 'www-data', command => '/usr/bin/php /var/www/html/cron.php', minute => '*/15', } class {'redis': bind => '127.0.0.1', masterauth => $redis_password } include java package {"elasticsearch": ensure => installed } # class { 'elasticsearch': # status => 'enabled', # version => '7.8.0', # ensure => absent # } # elasticsearch::instance { 'es-01': } #class {"wmdeit_nextcloud::solr": #} } class wmdeit_nextcloud::solr { ### # solr package {["openjdk-11-jdk","lsof"]: ensure => installed } file {"/opt": ensure => directory } -> archive { "/tmp/solr-8.6.0.tgz": ensure => present, source => "https://downloads.apache.org/lucene/solr/8.6.0/solr-8.6.0.tgz", extract_path => "/opt/", extract => true, cleanup => false, checksum => $checksum, checksum_type => $checksum_type, creates => "/opt/solr-8.6.0", } -> file { '/opt/solr': ensure => link, target => "/opt/solr-8.6.0", } -> group{"solr": ensure => present } -> user{"solr": ensure => present }-> file { '/opt/solr/server/logs': ensure => directory, owner => 'solr', group => 'solr', }-> exec{ '/opt/solr/bin/solr start': user => 'solr', } }