※本記事は 2021/11/6 時点のものです
はじめに
OCIのWebコンソール画面からOCI上に作成したサーバに対し、
OSコマンドを実行することができるたいですね。
今回はこちらを行ってみます。
マニュアル:
インスタンスでのコマンドの実行
https://docs.oracle.com/ja-jp/iaas/Content/Compute/Tasks/runningcommands.htm
今のところサポートされているOSは下記のようです。
・Oracle Autonomous Linux
・Oracle Linux
・CentOS
・Windows Server
OCI WebコンソールからOSコマンドを実行したけど、動かないパターン
サーバ構築直後にOSコマンド実行を行ってもエラーになるようです…。
少し設定が必要みたいですね。
よって、その設定を行っていきます。
![OCI WebコンソールからOSコマンドを実行したけど、動かないパターン](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0010-1024x477.png)
動的グループの作成
OSコマンド実行のためにはサーバ側への権限設定が必要となる模様で、
まずはOSコマンド実行を行うサーバ(コンピュートインスタンス)の OCIDを取得します。
OCIのWebコンソール画面より、
メニュー「≡」⇒「コンピュート」⇒「インスタンス」を選択します。
![メニュー「≡」⇒「コンピュート」⇒「インスタンス」を選択](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1010-1024x568.png)
コマンドを実行したいコンピュートインスタンス名(ここでは tsocts01)をクリックします。
![コマンドを実行したいインスタンス名(ここでは tsocts01)をクリック](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1020-1024x392.png)
コンピュートインスタンスの詳細画面が表示されます。
「コピー」をクリックして OCID を取得しています。(後で使います)
![「コピー」をクリックして OCID を取得](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-2060-1024x481.png)
続いて、動的グループを作成します。
OCIのWebコンソール画面より、
メニュー「≡」⇒「アイデンティティとセキュリティ」⇒「動的グループ」を選択します。
![メニュー「≡」⇒「アイデンティティとセキュリティ」⇒「動的グループ」を選択](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0120-1024x555.png)
動的グループの画面が表示されます。
「動的グループの作成」をクリックします。
![「動的グループの作成」をクリック](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0130-1024x391.png)
「名前」と「説明」を例として下記のように入力します。
項目名 | 設定値 |
---|---|
名前 | dynamic-group-test01-runcmd |
説明 | コマンド実行用 動的グループ |
一致ルールのところには下記のように入力します。
※’ocid1.instance.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc3olqq’
は先程コピーしたOCIDです。
一致ルール | Any {instance.id = ‘ocid1.instance.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc3olqq’} |
その後で「作成」をクリックします。
![動的グループの作成で「作成」をクリック](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0150-1024x797.png)
動的グループの画面が表示されます。
![動的グループの画面](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0160-1024x689.png)
ポリシーの作成
続いて、先ほど作成した動的グループ用のポリシーの作成を行います。
OCIのWebコンソール画面より、
メニュー「≡」⇒「アイデンティティとセキュリティ」⇒「ポリシー」を選択します。
![メニュー「≡」⇒「アイデンティティとセキュリティ」⇒「ポリシー」を選択](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0170-1024x564.png)
ポリシーの画面が開きます。
「ポリシーの作成」をクリックします。
![「ポリシーの作成」をクリック](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0180-1024x385.png)
「名前」と「説明」を例として下記のように入力します。
項目名 | 設定値 |
---|---|
名前 | policy-test01-runcmd |
説明 | コマンド実行用ポリシー |
ポリシービルダーのメニュ―選択肢からは該当するものがよくわからなかった…ので、
「手動エディタの表示」をオンにして下記を入力します。
※”dynamic-group-test01-runcmd”は前の手順で作成した動的グループです。
”test”はコンピュートインスタンスも存在しているコンパートメント名です。
ポリシー・ビルダー | Allow dynamic-group dynamic-group-test01-runcmd to use instance-agent-command-execution-family in compartment test |
その後、「作成」をクリックします。
![ポリシー作成の画面で「作成」をクリック](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0200-1024x781.png)
作成されたポリシーの画面が表示されます。
![作成されたポリシーの画面](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-0210-1024x669.png)
OCI WebコンソールからOSコマンドを実行
最初の手順で行ったように、コンピュートインスタンスの画面を開きます。
そして画面下側にスクロールしてみます。
![コンピュートのインスタンスの画面](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1030-1024x626.png)
左側の「実行コマンド」をクリックし、
中央の「コマンド作成」をクリックします。
![「実行コマンド」⇒「コマンド作成」をクリック](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1040-1024x443.png)
「名前」と「タイムアウトを秒単位で指定」は一旦そのままにして、
「スクリプト」に実行するコマンドを入力します。
ここでは日時を表示するコマンドである”date”を入力します。
その後「コマンド作成」をクリックします。
![「コマンド作成」をクリック](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1050-1024x664.png)
画面が戻って新たな実行コマンドが追加されたことがわかります。
![実行コマンド画面に戻る](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1060-1024x664.png)
しばらく待って、実行ステータスが「成功」になりました。
※この時は成功と表示されるまで約20分かかりました。理由は後ほど。
![実行ステータスが「成功」になる](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1070-1024x664.png)
右側の「︙」をクリックし、「コマンドの詳細の表示」をクリックします。
![右側の「︙」をクリックし、「コマンドの詳細の表示」をクリック](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1080-1024x447.png)
「出力」の所に日時が表示されており、
“date”コマンドの結果が返っていることが分かります。
![dateコマンドの結果が返っている](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1090-1024x809.png)
OCI WebコンソールからOSコマンドを実行(もう1回)
先ほどの実行は約20分程度かかっていまして、
ちょっと待つ時間が長いなーと思ったのでもう1回実行してみます。
今度は”uname -n”(ホスト名を表示するのみ)コマンドです。
![今度は"uname -n"(ホスト名を表示するのみ)コマンド](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1100-1024x809.png)
今度は4分程度で結果が返ってきました。
!["uname -n"コマンドの実行が返ってくる](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1110-1024x442.png)
“uname -n”コマンドの実行結果ですので、想定通りホスト名の”tsocts01″が返ってきていました。
!["uname -n"コマンドの実行結果](https://o-labo.info/wp-content/uploads/2021/11/b004-running-os-command-from-oci-web-console-1120-1024x796.png)
それでもちょっと時間はかかりますね。
ちなみに最初の実行が20分程度かかっていたのは、動的グループの反映で時間がかかっていたようです。
マニュアルに下記の記載がありました。
インスタンスを作成してから動的グループに追加する場合、インスタンスがコマンドのポーリングを開始するまでに最大30分かかります。
最初から早めに実行させたいなら、サービス再起動とかすればよかった模様です。
※詳しくはマニュアルへ
さいごに
OCI webコンソール画面からOSのコマンドを実行する際には
・前もって権限設定が必要
・OSコマンドを実行しても即座に応答が来るわけではない
というところに注意が必要です。
インタラクティブに色々とコマンドを実行して確認したい場合は、
実際にサーバに接続したり、クラウドシェルからコンソール接続とか行ったほうがよいかもですが、
ちょっとした情報取得・操作をする際には便利に使えそうですね。