Como criar a configuração do Sudoer para instantâneos

Ao usar instantâneos do LVM, as seguintes entradas são necessárias no arquivo / etc / sudoers. Execute “visudo” para editar o arquivo / etc / sudoers e adicione essas entradas para permitir que mysql o usuário execute os comandos necessários sem a solicitação de uma senha e sem a necessidade de um shell de login:

mysql = NOPASSWD: / bin / mount, NOPASSWD: / bin / umount, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate, NOPASSWD: / usr / sbin / lvremove Padrões: % mysql! requiretty Padrões: mysql! requiretty

Lembre-se de substituir o caminho apropriado para todos os lvmtools dependendo do sistema operacional, pois isso pode ser diferente dependendo de qual distribuição do Linux você está usando.

Você pode ajustar seu arquivo sudoers caso sua empresa tenha políticas mais rígidas, vamos dar um exemplo:

Digamos que no servidor MySQL, diamond.jewel.com, existam 3 grupos de volume VolGroup00, vg1 e vg2 e volumes lógicos LogVol00, lv1 e lv2, um em cada. Temos o datadir mysql no Logvol00 com o banco de dados innodb no lv1 e logs do innodb no lv2:
 

Blocos de 1K do sistema de arquivos usados ​​Uso disponível% montado em
/ dev / mapper / VolGroup00-LogVol00
7459216 3040728 4033464 43% /
/ dev / sda1 101086 10895 84972 12% / boot
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


O conteúdo de /etc/my.cnf é o seguinte

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


A configuração do arquivo sudoer deve ter as seguintes linhas para o exemplo acima e, se você tiver apenas um grupo de volume, precisará ter apenas uma linha.

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: Forneça o caminho correto para os comandos lvm e df.

Se você estiver usando o sistema de arquivos xfs, você deve 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 *

Lembre-se também de adicionar as seguintes linhas para que um shell de login não seja necessário para o mysql usuário para executar o comando sudo:

Padrões:% mysql! Requiretty Padrões: mysql! Requiretty