Comment créer une configuration Sudoer pour les instantanés

Lorsque vous utilisez des instantanés LVM, les entrées suivantes sont nécessaires dans le fichier / etc / sudoers. Veuillez exécuter «visudo» pour éditer le fichier / etc / sudoers et ajouter ces entrées pour autoriser le mysql l'utilisateur pour exécuter les commandes requises sans être invité à entrer un mot de passe et sans nécessiter de shell de connexion:

mysql = NOPASSWD: / bin / mount, NOPASSWD: / bin / umount, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate, NOPASSWD: / usr / sbin / lvremove Valeurs par défaut: % mysql! requireetty Valeurs par défaut: mysql! requireetty

N'oubliez pas de remplacer le chemin approprié vers tous les lvmtools en fonction du système d'exploitation car cela peut être différent selon la distribution de Linux que vous utilisez.

Vous pouvez affiner votre fichier sudoers au cas où votre entreprise aurait des politiques plus strictes, prenons un exemple:

Disons que sur le serveur MySQL, diamond.jewel.com, il existe 3 groupes de volumes VolGroup00, vg1 & vg2 et les volumes logiques LogVol00, lv1 & lv2 un dans chacun. Nous avons le datadir mysql dans Logvol00 avec la base de données innodb en lv1 et les journaux innodb en lv2:
 

Système de fichiers 1K blocs Utilisé Utilisation disponible% Monté sur
/ dev / mapper / VolGroup00-LogVol00
7459216 3040728 4033464 43% /
/ dev / sda1 101086 10895 84972 12% / démarrage
tmpfs 127668 0 127668 0% / dev / shm
/ dev / mapper / vg1-lv1 126931 11832 108546 10% / l1
/ dev / mapper / vg2-lv2 126931 11833 108545 10% / l2


Le contenu de /etc/my.cnf est le suivant

innodb_data_home_dir = / l1 / ibdata innodb_data_file_path = ibdata1: 10M: autoextend innodb_log_group_home_dir = / l2 / iblogs


La configuration du fichier sudoer doit avoir les lignes suivantes pour l'exemple ci-dessus et si vous n'avez qu'un seul groupe de volumes, vous n'avez qu'une seule ligne.

mysql diamond.jewel.com = NOPASSWD: / bin / mount / dev / VolGroup00 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / VolGroup00 / LogVol00, NOPASSWD: / usr / sbin / lvremove -f / dev / VolGroup00 / zrm * mysql diamond.jewel. com = NOPASSWD: / bin / mount / dev / vg1 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD : / usr / sbin / lvcreate -L * -s -n zrm * / dev / vg1 / lv1, NOPASSWD: / usr / sbin / lvremove -f / dev / vg1 / zrm * mysql diamond.jewel.com = NOPASSWD: / bin / mount / dev / vg2 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / vg2 / lv2, NOPASSWD: / usr / sbin / lvremove -f / dev / vg2 / zrm *


REMARQUE: indiquez le chemin correct vers les commandes lvm et df.

Si vous utilisez le système de fichiers xfs, vous devez spécifier

mysql diamond.jewel.com = NOPASSWD: / bin / mount -o -nouuid / dev / VolGroup00 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD : / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / VolGroup00 / LogVol00, NOPASSWD: / usr / sbin / lvremove -f / dev / VolGroup00 / zrm *

N'oubliez pas d'ajouter les lignes suivantes afin qu'un shell de connexion ne soit pas nécessaire pour le mysql utilisateur pour exécuter la commande sudo:

Valeurs par défaut:% mysql! Requireetty Valeurs par défaut: mysql! Requireetty