※本記事は 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コマンド実行を行ってもエラーになるようです…。
少し設定が必要みたいですね。
よって、その設定を行っていきます。
動的グループの作成
OSコマンド実行のためにはサーバ側への権限設定が必要となる模様で、
まずはOSコマンド実行を行うサーバ(コンピュートインスタンス)の OCIDを取得します。
OCIのWebコンソール画面より、
メニュー「≡」⇒「コンピュート」⇒「インスタンス」を選択します。
コマンドを実行したいコンピュートインスタンス名(ここでは tsocts01)をクリックします。
コンピュートインスタンスの詳細画面が表示されます。
「コピー」をクリックして OCID を取得しています。(後で使います)
続いて、動的グループを作成します。
OCIのWebコンソール画面より、
メニュー「≡」⇒「アイデンティティとセキュリティ」⇒「動的グループ」を選択します。
動的グループの画面が表示されます。
「動的グループの作成」をクリックします。
「名前」と「説明」を例として下記のように入力します。
項目名 | 設定値 |
---|---|
名前 | dynamic-group-test01-runcmd |
説明 | コマンド実行用 動的グループ |
一致ルールのところには下記のように入力します。
※’ocid1.instance.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc3olqq’
は先程コピーしたOCIDです。
一致ルール | Any {instance.id = ‘ocid1.instance.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc3olqq’} |
その後で「作成」をクリックします。
動的グループの画面が表示されます。
ポリシーの作成
続いて、先ほど作成した動的グループ用のポリシーの作成を行います。
OCIのWebコンソール画面より、
メニュー「≡」⇒「アイデンティティとセキュリティ」⇒「ポリシー」を選択します。
ポリシーの画面が開きます。
「ポリシーの作成」をクリックします。
「名前」と「説明」を例として下記のように入力します。
項目名 | 設定値 |
---|---|
名前 | 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 |
その後、「作成」をクリックします。
作成されたポリシーの画面が表示されます。
OCI WebコンソールからOSコマンドを実行
最初の手順で行ったように、コンピュートインスタンスの画面を開きます。
そして画面下側にスクロールしてみます。
左側の「実行コマンド」をクリックし、
中央の「コマンド作成」をクリックします。
「名前」と「タイムアウトを秒単位で指定」は一旦そのままにして、
「スクリプト」に実行するコマンドを入力します。
ここでは日時を表示するコマンドである”date”を入力します。
その後「コマンド作成」をクリックします。
画面が戻って新たな実行コマンドが追加されたことがわかります。
しばらく待って、実行ステータスが「成功」になりました。
※この時は成功と表示されるまで約20分かかりました。理由は後ほど。
右側の「︙」をクリックし、「コマンドの詳細の表示」をクリックします。
「出力」の所に日時が表示されており、
“date”コマンドの結果が返っていることが分かります。
OCI WebコンソールからOSコマンドを実行(もう1回)
先ほどの実行は約20分程度かかっていまして、
ちょっと待つ時間が長いなーと思ったのでもう1回実行してみます。
今度は”uname -n”(ホスト名を表示するのみ)コマンドです。
今度は4分程度で結果が返ってきました。
“uname -n”コマンドの実行結果ですので、想定通りホスト名の”tsocts01″が返ってきていました。
それでもちょっと時間はかかりますね。
ちなみに最初の実行が20分程度かかっていたのは、動的グループの反映で時間がかかっていたようです。
マニュアルに下記の記載がありました。
インスタンスを作成してから動的グループに追加する場合、インスタンスがコマンドのポーリングを開始するまでに最大30分かかります。
最初から早めに実行させたいなら、サービス再起動とかすればよかった模様です。
※詳しくはマニュアルへ
さいごに
OCI webコンソール画面からOSのコマンドを実行する際には
・前もって権限設定が必要
・OSコマンドを実行しても即座に応答が来るわけではない
というところに注意が必要です。
インタラクティブに色々とコマンドを実行して確認したい場合は、
実際にサーバに接続したり、クラウドシェルからコンソール接続とか行ったほうがよいかもですが、
ちょっとした情報取得・操作をする際には便利に使えそうですね。