X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fdatabases%2Fmariadb_replication.nix;h=68e6f7fdd809590e503d35d7e4793539b9d695a2;hb=bd0cb07b13aecd16a0782492655843a1b699611d;hp=ae54265a7191fb320022ebe33f1a50f082d957a5;hpb=5868f9c64f0a2e9c03f6abee35ed0f0f09d30fe4;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/databases/mariadb_replication.nix b/modules/private/databases/mariadb_replication.nix index ae54265..68e6f7f 100644 --- a/modules/private/databases/mariadb_replication.nix +++ b/modules/private/databases/mariadb_replication.nix @@ -81,9 +81,8 @@ in }; users.groups.mysql.gid = config.ids.gids.mysql; - secrets.keys = lib.flatten (lib.mapAttrsToList (name: hcfg: [ - { - dest = "mysql_replication/${name}/slave_init_commands"; + secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (name: hcfg: [ + (lib.nameValuePair "mysql_replication/${name}/slave_init_commands" { user = "mysql"; group = "mysql"; permissions = "0400"; @@ -91,9 +90,8 @@ in CHANGE MASTER TO master_host="${hcfg.host}", master_port=${hcfg.port}, master_user="${hcfg.user}", master_password="${hcfg.password}", master_ssl=1, master_use_gtid=slave_pos; START SLAVE; ''; - } - { - dest = "mysql_replication/${name}/mysqldump_remote"; + }) + (lib.nameValuePair "mysql_replication/${name}/mysqldump_remote" { permissions = "0400"; user = "root"; group = "root"; @@ -102,9 +100,8 @@ in user = ${hcfg.user} password = ${hcfg.password} ''; - } - { - dest = "mysql_replication/${name}/mysqldump"; + }) + (lib.nameValuePair "mysql_replication/${name}/mysqldump" { permissions = "0400"; user = "root"; group = "root"; @@ -113,9 +110,8 @@ in user = ${hcfg.dumpUser} password = ${hcfg.dumpPassword} ''; - } - { - dest = "mysql_replication/${name}/client"; + }) + (lib.nameValuePair "mysql_replication/${name}/client" { permissions = "0400"; user = "mysql"; group = "mysql"; @@ -124,8 +120,8 @@ in user = ${hcfg.dumpUser} password = ${hcfg.dumpPassword} ''; - } - ]) cfg.hosts); + }) + ]) cfg.hosts)); services.cron = { enable = true; @@ -140,11 +136,12 @@ in filename=${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).sql ${hcfg.package}/bin/mysqldump \ - --defaults-file=${config.secrets.location}/mysql_replication/${name}/mysqldump \ + --defaults-file=${config.secrets.fullPaths."mysql_replication/${name}/mysqldump"} \ -S /run/mysqld_${name}/mysqld.sock \ --gtid \ --master-data \ --flush-privileges \ + --ignore-database=netdata \ --all-databases > $filename ${pkgs.gzip}/bin/gzip $filename ''; @@ -191,15 +188,17 @@ in preStart = '' if ! test -e ${dataDir}/mysql; then - ${hcfg.package}/bin/mysqldump \ - --defaults-file=${config.secrets.location}/mysql_replication/${name}/mysqldump_remote \ - -h ${hcfg.host} \ - -P ${hcfg.port} \ - --ssl \ - --gtid \ - --flush-privileges \ - --master-data \ - --all-databases > ${dataDir}/initial.sql + if ! test -e ${dataDir}/initial.sql; then + ${hcfg.package}/bin/mysqldump \ + --defaults-file=${config.secrets.fullPaths."mysql_replication/${name}/mysqldump_remote"} \ + -h ${hcfg.host} \ + -P ${hcfg.port} \ + --ssl \ + --gtid \ + --flush-privileges \ + --master-data \ + --all-databases > ${dataDir}/initial.sql + fi ${hcfg.package}/bin/mysql_install_db \ --defaults-file=/etc/mysql/${name}_my.cnf \ @@ -223,6 +222,7 @@ in let sql_before = pkgs.writeText "mysql-initial-before" '' DROP DATABASE test; + INSTALL SONAME 'auth_pam'; ''; setupScript = pkgs.writeScript "mysql-setup" '' #!${pkgs.runtimeShell} -e @@ -231,7 +231,7 @@ in cat \ ${sql_before} \ ${dataDir}/initial.sql \ - ${config.secrets.location}/mysql_replication/${name}/slave_init_commands \ + ${config.secrets.fullPaths."mysql_replication/${name}/slave_init_commands"} \ | ${hcfg.package}/bin/mysql \ --defaults-file=/etc/mysql/${name}_my.cnf \ -S /run/mysqld_${name}/mysqld.sock \