AWS OpsWorks のデバグ

AWS OpsWorks のデバグ:

チラ裏。AWS OpsWorks を使ってインスタンスへの chef (または puppet) 適用を自動で行うことができる。できるのは良いのだが、失敗した時に理由を追うのに困るのでログ場所、および簡単な再実行方法をメモ。


cloud-init のログおよび再実行

いきなり蛇足: OpsWorks だけでなく、cloud-init (UserData) を使って起動時になにか処理をしている場合、cloud-init のログも見るべし。

/var/log/cloud-init.log 
cloud-init の再実行ついては以前 cloud-init のスクリプトを reboot せずに再実行するには に書いた。


OpsWorks のログおよび再実行

OpsWorks のログは、終われば AWS コンソールから見れるが、進行中はすぐに反映されないので、インスタンスに ssh してログを tail -F で追う。

AWS OpsWorks Stacks のライフサイクルイベント のそれぞれでログがバラける。

  • setup
  • configure
  • deploy


Chef のログ

(Puppetは試してない)

先頭行に Command: setup with のように setup か configure か deploy かなどが書いてあるので、どのログがどのイベントに対するログなのかはそこをみればわかる(かもしれない)

$ head -1 /var/lib/aws/opsworks/chef/yyyy-MM-dd-hh-mm-ss-..log 
[2019-01-15T19:55:07+09:00] INFO: AWS OpsWorks instance xxx-xxx-xxx-xxx, Agent version 4033-20181126114950, Command: setup with id xxx-xxx-xxx-xxx 


OpsWorks Agent のログ

OpsWorks Agent が実行した chef コマンドのログなどはこちら

/var/log/aws/opsworks/opsworks-agent.process_command.log 
このログを chef-client で grep すると、chef-client を手動実行するためのコマンドが取れるので、うまく attribs.json などを見つければ、それで何度も試行錯誤できるようになる。例えばこんなの。

env HOME=/root sudo /opt/aws/opsworks/current/bin/chef_command_wrapper.sh -s /opt/chef/bin/chef-client -j /var/chef/runs/xxx-xxx-xxx-xxx/attribs.json -c /var/chef/runs/xxx-xxx-xxx-xxx/client.rb -L /var/chef/runs/xxx-xxx-xxx-xxx/chef.log 


参考

以下のページがとても参考になりました。Thanks.

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)