想ひ出2: WordPressがたまにイカレるのでjenkinsでphp-fpm restart

反省と備忘録

おはようございます。moqrinです。

AWSのec2インスタンス上で、
たまにWordpressのphp-fpmがやたらCPUを喰ったりすることがあります。
でも、だいたいphp-fpmのrestartをかけると元に戻ります。

が、毎回手動でやるのは面倒くさいのでXXXが起こったら、
jenkinsおじさんで勝手にphp-restartしてくれるようにしました。
(そもそも何故そういう事象になるのかを調査して修正を加えろよ、と言いたいですよね?
仰る通りです!猛省します!)

そこに至るまで下記のようにコケてフガフガしました。。

1 通常利用しているzshにのみpyenvのパスを通してあったので、
bashにpyenvのパスを通してあげないとaws-cliが使えなかった。。

# .bashrcに追記
export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"

2 普通にaws-cliでインスタンスのipとか表示させたときに、
“xxx.xx.xxx.xx”みたいなダブルクォーテーションがあったので、
ssh hoge@$varialbe するときにログインできなかった。。
(いや、当たり前なんですけどね!)

3 sshで新しくELBに追加されたサーバーにログインするときに失敗しやがる。。
ホストキーを確認されるからね。。

以上を踏まえてこんな感じになりました。
ついでにSlackにお知らせも入れました。

source ~/.bashrc

publicIpAddresses=(`aws ec2 describe-instances --filter \
"Name=tag:Name,Values=HOGEGE" | jq ".Reservations[].Instances[].PublicIpAddress"\
| sed -e "s/\"//g"`)

for i in ${publicIpAddresses[@]}
do
  # invalid hostcheck
  ssh -o StrictHostKeyChecking=no develop@${i}\
  sudo systemctl restart php-fpm

  # slackCallApi
  curl -X POST \
  -H 'Content-type: application/json' \
  --data '{"text": "php-fpm has been restarted. ", "channel": "#moqrin3",\
 "link_names": 1, "username": "jenkins", "icon_emoji": ":jenkins:"}' \
  https://hooks.slack.com/services/XXXXXXXXXXX
done

参考

使えるとちょっと便利なSSHのTIPS 2012/04/04
AWS CLIを使ってEC2インスタンスの情報を取得する 2014/10/04

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

%d人のブロガーが「いいね」をつけました。