スナップショットのSudoer構成を作成する方法

LVMスナップショットを使用する場合、/ etc / sudoersファイルに次のエントリが必要です。 「visudo」を実行して/ etc / sudoersファイルを編集し、これらのエントリを追加して、 mysqlの ユーザーは、パスワードの入力を求められず、ログインシェルを必要とせずに、必要なコマンドを実行できます。

mysql = NOPASSWD:/ bin / mount、NOPASSWD:/ bin / umount、NOPASSWD:/ bin / df、NOPASSWD:/ usr / sbin / lvdisplay、NOPASSWD:/ usr / sbin / lvcreate、NOPASSWD:/ usr / sbin / lvremoveデフォルト: %mysql!requirettyデフォルト:mysql!requiretty

使用しているLinuxのディストリビューションによって異なる場合があるため、オペレーティングシステムに応じて、すべてのlvmtoolsへの適切なパスに置き換えることを忘れないでください。

会社のポリシーがより厳格な場合は、sudoersファイルを微調整できます。例を見てみましょう。

MySQLサーバーであるdiamond.jewel.comに、VolGroup3、vg00、vg1の2つのボリュームグループと、LogVol00、lv1、lv2の論理ボリュームがそれぞれ00つずつ存在するとします。 Logvol1にmysqldatadirがあり、lv2にinnodbデータベースがあり、lvXNUMXにinnodbログがあります。
 

ファイルシステム1K-ブロック使用可能使用可能使用率マウント済み
/ 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


/etc/my.cnfの内容は以下のとおりです

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


上記の例では、sudoerファイルの構成に次の行が必要です。ボリュームグループがXNUMXつしかない場合は、XNUMX行で十分です。

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 * mysqldiamond.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 *


注:lvmコマンドとdfへの正しいパスを指定してください。

xfsファイルシステムを使用している場合は、指定する必要があります

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 *

また、ログインシェルが必要ないように、次の行を追加することを忘れないでください。 mysqlの sudoコマンドを実行するユーザー:

デフォルト:%mysql!requirettyデフォルト:mysql!requiretty