EC2接続時に運用・保守に必要な情報が表示されるよう設定
■目的
・障害対応など運用保守を迅速に行うため
SSH接続時にインスタンスを特定出来る情報を出力したい
またその際、注意が必要なミドルウェアが実装されているかもあわせて把握したい
(例: 変更監視が動いているかどうかを事前に把握する)
→ 余計なアラートを挙げない、もしくは前もって周知出来る
■参考
・EC2インスタンスのbashプロンプトに便利情報を表示する
http://qiita.com/y13i/items/2d2c5b6f79e3aefd5de8
→ 同僚のブログに触発されて、本件試してみました。
■前提
・AWS CLIが使える環境であること
・配置先は「/etc/profile.d/」配下、もしくは「~./bashrc」に追記
■実装例
# vim /etc/profile.d/motd.sh
------------
#!/bin/sh
# インスタンス情報取得
instance_id=$(curl -s 169.254.169.254/latest/meta-data/instance-id)
availability_zone=$(curl -s 169.254.169.254/latest/meta-data/placement/availability-zone)
region=${availability_zone%?}
public_ipv4=$(curl -s 169.254.169.254/latest/meta-data/public-ipv4)
tags_name=$(aws ec2 describe-instances --region $region --instance-ids $instance_id --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value]' --output text)
echo "------------------------------------------------------------------------------------"
# ミドルウェア実装状況確認
if rpm -qa | grep -i ds_agent; then
echo -e " \e[1m\e[33mこのホストにはds_agentが入っています。\e[m\n"
else
echo -e " \e[1m\e[33m ds_agent isn't installed \e[m\n"
fi
echo "Instance-id: $instance_id"
echo "public-ip: $public_ipv4"
echo "Tags-Key: $tags_name"
echo "------------------------------------------------------------------------------------"
■確認
・下記のようにSSH接続時、オペレーションに必要な情報を確認できました。
% ssh mitzi_dev
Last login: Fri Apr 29 23:07:11 2016 from ***.***.***.***
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
90 package(s) needed for security, out of 262 available
Run "sudo yum update" to apply all updates.
Amazon Linux version 2016.03 is available.
------------------------------------------------------------------------------------
ds_agent isn't installed
Instance-id: i-********
public-ip: 54.***.***.***
Tags-Key: develop
------------------------------------------------------------------------------------
[ec2-user@mitzi_develop ~]$
以上になります。