Cómo crear la configuración de Sudoer para instantáneas

Al usar instantáneas LVM, se necesitan las siguientes entradas en el archivo / etc / sudoers. Ejecute "visudo" para editar el archivo / etc / sudoers y agregue estas entradas para permitir la mysql usuario para ejecutar los comandos requeridos sin que se le solicite una contraseña y sin requerir un shell de inicio de sesión:

mysql = NOPASSWD: / bin / mount, NOPASSWD: / bin / umount, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate, NOPASSWD: / usr / sbin / lvremove Valores predeterminados: % mysql! requiretty Valores predeterminados: mysql! requiretty

Recuerde sustituir la ruta adecuada a todas las lvmtools según el sistema operativo, ya que puede ser diferente según la distribución de Linux que esté utilizando.

Puede ajustar su archivo de sudoers en caso de que su empresa tenga políticas más estrictas, tomemos un ejemplo:

Digamos que en el servidor MySQL, diamond.jewel.com, existen 3 grupos de volúmenes VolGroup00, vg1 y vg2 y volúmenes lógicos LogVol00, lv1 y lv2 uno en cada uno. Tenemos el directorio de datos mysql en Logvol00 con la base de datos innodb en lv1 y los registros innodb en lv2:
 

Sistema de archivos 1K-bloques Usado Disponible Uso% Montado en
/ dev / mapper / VolGroup00-LogVol00
7459216 3040728 4033464 43% /
/ dev / sda1 101086 10895 84972 12% / arranque
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


El contenido de /etc/my.cnf es el siguiente

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


La configuración del archivo sudoer debe tener las siguientes líneas para el ejemplo anterior y si solo tiene un grupo de volumen, solo debe tener una línea.

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 *


NOTA: Indique la ruta correcta a los comandos lvm y df.

Si está utilizando el sistema de archivos xfs, debe especificar

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 *

Recuerde también agregar las siguientes líneas para que no se requiera un shell de inicio de sesión para el mysql usuario para ejecutar el comando sudo:

Valores predeterminados:% mysql! Requiretty Valores predeterminados: mysql! Requiretty