75 lines
2.8 KiB
Puppet
75 lines
2.8 KiB
Puppet
class sunetdrive::multinode_db(){
|
|
$is_multinode = true;
|
|
$environment = sunetdrive::get_environment()
|
|
$allcustomers = hiera_hash('multinode_mapping')
|
|
$customers = $allcustomers.keys
|
|
|
|
$customers.each |$customer| {
|
|
file { "/etc/mariadb/backups/${customer}":
|
|
ensure => directory,
|
|
}
|
|
file { "/etc/mariadb/init/04-nextcloud.${customer}.sql":
|
|
ensure => present,
|
|
content => "CREATE SCHEMA nextcloud_${customer};\nCREATE USER 'nextcloud_${customer}'@'%' IDENTIFIED BY '${hiera("${customer}_mysql_user_password")}';\nGRANT ALL PRIVILEGES ON nextcloud_${customer}.* TO 'nextcloud_${customer}'@'%' IDENTIFIED BY '${hiera("${customer}_mysql_user_password")}';\n",
|
|
mode => '0744',
|
|
}
|
|
}
|
|
if $facts["networking"]["fqdn"] =~ /^multinode-db1\.drive\.(test\.){1}sunet\.se$/ {
|
|
$statistics_secret = safe_hiera('statistics_secret')
|
|
notify { 'hostmessage':
|
|
message => 'We are on multinode-db1. Set up statistics environment.',
|
|
}
|
|
$custdata=$customers.reduce({}) |$memo, $value| {
|
|
$memo + {$value => lookup($value)}
|
|
}
|
|
$rclone_url = 'https://downloads.rclone.org/rclone-current-linux-amd64.deb'
|
|
$local_path = '/tmp/rclone-current-linux-amd64.deb'
|
|
exec { 'rclone_deb':
|
|
command => "/usr/bin/wget -q ${rclone_url} -O ${local_path}",
|
|
creates => $local_path,
|
|
}
|
|
package { 'rclone':
|
|
ensure => installed,
|
|
provider => dpkg,
|
|
source => $local_path,
|
|
require => Exec['rclone_deb'],
|
|
}
|
|
file { '/root/.rclone.conf':
|
|
ensure => file,
|
|
content => template('sunetdrive/mariadb_backup/rclone.conf.erb'),
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0600',
|
|
}
|
|
file { '/root/tasks/listusersbydep.sh':
|
|
ensure => file,
|
|
content => template('sunetdrive/mariadb/listusersdep.sh.erb'),
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0700',
|
|
}
|
|
file { '/root/tasks/genusersondepartmentlists.sh':
|
|
ensure => file,
|
|
content => template('sunetdrive/mariadb/genuserdeplists.sh.erb'),
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0700',
|
|
}
|
|
file {'/opt/mariadb/statistics/custdata.json':
|
|
ensure => file,
|
|
content => template('sunetdrive/mariadb/custconfig.json.erb'),
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0600',
|
|
}
|
|
sunet::scriptherder::cronjob { 'genuserdeplists':
|
|
cmd => '/root/tasks/genusersondepartmentlists.sh',
|
|
hour => '2',
|
|
minute => '5',
|
|
ok_criteria => ['exit_status=0','max_age=30h'],
|
|
warn_criteria => ['exit_status=1', 'max_age=60h'],
|
|
}
|
|
}
|
|
}
|
|
|