EC2インスタンスにssh接続して作業する際、デフォルトだとこんな感じで、
[ec2-user@ip-10-10-11-123 ~]$ sl
どのインスタンスにログインしているか分かりづらいですよね。でもhostnameを変えるのは色々副作用もあるし、なんだか微妙です。
そこで!
set_prompt.sh
instance_id=$(curl -s 169.254.169.254/latest/meta-data/instance-id) az=$(curl -s 169.254.169.254/latest/meta-data/placement/availability-zone) region=${az%?} tagged_name=$(aws ec2 describe-instances --region $region --instance-ids $instance_id --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value]' --output text) if [ $? -eq 0 ]; then export PS1="[u@h ([e[1m]$instance_id[e[m], [e[1m]$tagged_name[e[m]) W]$ " else export PS1="[u@h ([e[1m]$instance_id[e[m]) W]$ " fi
こんなスクリプトを /etc/profile.d/
以下に置くなり、 ~/.bashrc
に追記するなりしてみましょう。
[ec2-user@ip-10-10-11-123 (i-1234567890abcdef1, oreno_instance) ~]$ sl
インスタンスのIDと、Name
タグに設定している値が表示されました。これなら分かりやすいですね!
余談
sl
はAmazon Linuxの標準リポジトリにもあります。必ずインストールしましょう。
[ec2-user@ip-10-10-11-123 (i-1234567890abcdef1, oreno_instance) ~]$ sudo yum install sl Loaded plugins: priorities, update-motd, upgrade-helper amzn-main/latest | 2.1 kB 00:00 amzn-updates/latest | 2.3 kB 00:00 amzn-updates/latest/updateinfo | 307 kB 00:00 amzn-updates/latest/primary_db | 375 kB 00:00 8 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package sl.x86_64 0:5.02-1.6.amzn1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================================================ Installing: sl x86_64 5.02-1.6.amzn1 amzn-main 13 k Transaction Summary ================================================================================================================================================================ Install 1 Package Total download size: 13 k Installed size: 15 k Is this ok [y/d/N]: