Session Managerでセッション開始時の自動実行コマンド(shell profiles)を指定する方法と、その利用例を整理します。
はじめに
こんにちは、@bioerrorlogです。
AWS Systems Manager(SSM)のSession ManagerでEC2インスタンスに接続すると、カレントディレクトリが/usr/bin
だったり、デフォルトのshellがbashでなくBourne shellだったりと、少し不便なことがあります。
これら接続時のデフォルト設定を変更するために、セッション開始時の自動実行コマンド(shell profiles)を指定する方法を整理します。
環境
EC2インスタンス: Amazon Linux 2
SSM agent version: 3.0.655.0
Session Managerの自動実行コマンドを設定する
自動実行コマンド(shell profiles)の設定方法
最初に、自動実行コマンドの設定方法を確認します。
まず、Systems Managerのマネジメントコンソールから、"セッションマネージャー"を選択します。
次に、"設定"タブを選択し、"編集"ボタンをクリックします。
下の方にスクロールし、"Linux shell profile"の欄に任意のコマンドを入力します(Windowsインスタンスの場合は、その下の"Windows shell profile"の欄に入力します)。
これで、上記の欄に記入されたコマンドがセッション開始時に実行されます。
それでは、以下に利用例を挙げていきます。
利用例) デフォルトshellをbashにする
Session Manager接続時には、デフォルトのshellがbashでなくBourne shellになっています。
以下のように接続画面でsh-4.2$
と表示されているのがそれです。
sh-4.2$
これをデフォルトでbashにするには、"Linux shell profile"にbash
コマンドを設定しておきます。
bash
これで、以下のようにセッション開始時からbashが指定された状態になります。
[ssm-user@ip-172-31-14-102 bin]$
利用例) カレントディレクトリを変更する
セッション開始時のカレントディレクトリは、デフォルトで/usr/bin
になっています。
sh-4.2$ pwd /usr/bin
これをあらかじめ変更させておくには、"Linux shell profile"でcd
コマンドを設定しておきます。
例えばユーザーディレクトリをデフォルトのカレントディレクトリとするには、以下のようにコマンドを設定しておきます。
cd ~
これで、ユーザーディレクトリに移動した状態から作業を始めることが出来ます。
sh-4.2$ pwd /home/ssm-user
利用例) ログインユーザーを変更する
Session Managerでは、デフォルトでユーザーssm-user
として接続されています。
sh-4.2$ whoami ssm-user
このログインユーザをあらかじめ変更させるには、"Linux shell profile"でsu
コマンドを設定します。
例えばrootとしてログインしたいのであれば、以下のように設定しておきます。
sudo su -
これで、rootユーザーとして作業を始めることが出来ます。
[root@ip-172-31-14-102 ~]# whoami root
これら以外にも任意のコマンドを組み合わせて、接続時の状態を自由に設定することが出来ます。
おわりに
今回は、Session Managerで自動実行コマンド(shell profiles)を設定する方法をその利用例を整理しました。
Session Managerは接続時の状態に何かと不便なことがあるので、これを利用すれば少しでもフラストレーションを緩和することが出来ます。
どなたかの参考になれば幸いです。
[関連記事]
www.bioerrorlog.work