2023-02-27 09:14:26 +00:00
class sunetdrive: : multinode_db( ) {
$ is_multinode = true ;
$e nvironment = sunetdrive: : get_environment( )
$a llcustomers = hiera_hash( 'multinode_mapping' )
$c ustomers = $a llcustomers. keys
2023-02-27 09:19:34 +00:00
$c ustomers. each | $c ustomer| {
2023-02-27 09:14:26 +00:00
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' ,
}
}
2024-08-29 09:02:30 +00:00
if $fac ts[ "networking" ] [ "fqdn" ] = ~ / ^ multinode- db1\ . drive\ . ( test\ . ) {1} sunet\ . se$/ {
2024-09-03 08:06:05 +00:00
$ statistics_secret = safe_hiera( 'statistics_secret' )
2024-08-29 09:02:30 +00:00
notify { 'hostmessage' :
2024-10-09 12:25:34 +00:00
message = > 'We are on multinode-db1. Set up statistics environment.' ,
2024-08-30 06:57:17 +00:00
}
2024-08-30 06:57:17 +00:00
$c ustdata= $c ustomers. reduce( {} ) | $ memo, $ value| {
$ memo + {$value => lookup($value)}
}
2024-08-29 09:02:30 +00:00
$ 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' ,
}
2024-08-29 11:46:23 +00:00
file { '/root/tasks/listusersbydep.sh' :
ensure = > file ,
content = > template( 'sunetdrive/mariadb/listusersdep.sh.erb' ) ,
owner = > 'root' ,
group = > 'root' ,
mode = > '0700' ,
}
2024-08-30 06:57:17 +00:00
file { '/root/tasks/genusersondepartmentlists.sh' :
ensure = > file ,
content = > template( 'sunetdrive/mariadb/genuserdeplists.sh.erb' ) ,
owner = > 'root' ,
group = > 'root' ,
mode = > '0700' ,
}
2024-09-09 14:18:00 +00:00
file { '/opt/mariadb/statistics/custdata.json' :
ensure = > file ,
content = > template( 'sunetdrive/mariadb/custconfig.json.erb' ) ,
owner = > 'root' ,
group = > 'root' ,
mode = > '0600' ,
}
2024-09-03 12:33:46 +00:00
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' ] ,
}
2024-08-29 09:02:30 +00:00
}
2023-02-27 09:14:26 +00:00
}
2024-11-13 08:34:57 +00:00