【Ubuntu】Nginxの「nginx -s reload」をVISUDOでパスワード無しにする方法&一括変更Tera Termのマクロの紹介
doudonn 更新日:
nginxのreloadが面倒くさい!
多数のサーバーで負荷分散していたら思うことだろう。
いろいろやり方はありますが、とりあえずパスワード無しから始めたい。
1、VISUDOへの記載
doudonn ALL=NOPASSWD: /usr/sbin/nginx -s reload
「/usr/sbin/nginx」がNginxの場所なので、まずはそこを指定。
その次にコマンドを指定します。
そのコマンドを指定しなかった場合はNginx関係は全部パスワード無しになります。
一応はリロードのみにしておこう。
2、一括で変更(リロード)するには
自分はTera Termのマクロが楽。
SSHでログインするマクロはあるので、
それを全部合体して、それぞれ自動でコマンドを入力・実行を追加するだけ。
踏み台サーバーへログインしたら全部のサーバーにログインして実行、と。
<こんな感じのマクロになる>
HOSTADDR = 'xxx.xxx.xxx.xxx'
USERNAME = 'doudonn'
PORTNO = '10022'
KEY_FILE = 'E:\ssh接続\id_rsa'
INI_FILE = 'E:\ssh接続\TERATERM.INI'
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNO
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE
strconcat COMMAND ' /F='
strconcat COMMAND INI_FILE
connect COMMAND
unlink
HOSTADDR = 'xxx.xxx.xxx.xxx'
USERNAME = 'doudonn'
PORTNO = '10022'
KEY_FILE = 'E:\ssh接続\id_rsa'
INI_FILE = 'E:\ssh接続\TERATERM.INI'
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNO
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE
connect COMMAND
wait USERNAME
varCmd = 'sudo nginx -s reload'
sendln varCmd
~
これをサーバー分繰り返す
~
end
「unlink」でウインドウを区切って、次々とサーバーへログインしていきます。
ログイン後はコマンドの自動入力。
パスワードの自動入力もできるので、このやり方ならVISUDOのやつは不要ではある。
シェルを作るより、この方がサーバーがごちゃごちゃせず良いと思う。
Tera Termのマクロは何でもできて便利なので是非作ってみてください。