catch-img

OCI CLIを利用したインスタンス起動方法

本記事はbashスクリプトを作成したことある方、他の言語に触れたことがある方に向けた記事です。
用語の意味等の解説は細かく行いませんので、ご了承ください。
コンソール上でインスタンスの起動を行うのは手間がかかる場合や、インスタンス起動を自動化に組み込みたい場合に利用できる
OCI CLIを利用したインスタンスの起動方法をご紹介します。
コンソール上からポチポチと起動するのではなく、スクリプトを活用してインスタンスを起動することで業務の効率化や自動化を行いましょう!

目次

    1. スクリプト内容
    2. スクリプト解説
    3. 実行確認

1.OCI CLIについて

OCI CLIOracle Cloud Infrastructure Command Line Interface)とは、Oracle Cloudの各種サービスをコマンドラインから操作できる公式ツールです。
インスタンス一覧取得、インスタンスの起動・停止など、コンソールで行う操作をスクリプトや自動化処理に組み込むことができます。
下記Oracle公式ドキュメントより抜粋です。
CLIの使用

※記載している手順、証跡は20262月時点のものになります。
今後、OCIコンソールのアップデートにより、記載している手順、及び画面証跡と実際の作業手順が一致しない場合がございます。予めご了承ください。

2.インスタンスを起動するスクリプト

今回は下記環境で動作するスクリプトについてご説明いたします。
前提条件
oci cliのコマンドが実行できる
jqコマンドが実行できる
・起動対象のインスタンスのコンパートメントは固定
・対象インスタンスの表示名が一意
処理内容
・引数で受け取った対象のインスタンスを起動する

1. スクリプトの内容

下記、引数で受け取った対象のインスタンスを起動するスクリプトです。

2. スクリプトの解説

スクリプトの内容を解説いたします。

compartment_ocid="ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx“
→起動するインスタンスがあるコンパートメントのOCIDを指定します。

for name in "$@"; do
done
→引数分ループ処理を実行します。

$@
スクリプトに渡されたすべての引数を個別の文字列として展開します。
例)スクリプトにインスタンス1,インスタンス2,インスタンス3が渡された場合、$@ はインスタンス1 インスタンス2 インスタンス3 として扱われます。

For 変数 in リスト ;do done
リスト内の要素を順番に変数へ代入し、そのたびに do done の処理を実行します。
例)リストとして $@(引数リスト)を指定しているため、スクリプトに渡された引数の数だけループ処理が繰り返されます。スクリプトにインスタンス1,インスタンス2,インスタンス3が渡された場合は3回ループします。

get_instanceocid=$(oci compute instance list -c $compartment_ocid --display-name $name | jq '.data[]."id“’)

→ここではOCI CLIで指定されたコンパートメント内のインスタンス一覧を取得し、その結果からインスタンスのOCIDのみ抽出して変数に格納をしています。

oci compute instance list [OPTIONS]

→指定されたコンパートメント内のインスタンスを一覧表示します。
--display-name
を指定すると、表示名と一致するインスタンスのみを返します。
<必須パラメータ>
-c [text]:コンパートメントのOCID
<オプションパラメータ>
--display-name [text]:インスタンス名。指定された表示名と完全に一致するリソースのみを返すフィルター。

list — OCI CLI Command Reference 3.68.1 documentation
| jq ‘.data[].“id“’
→取得したJSONデータから、インスタンスのOCIDだけを抽出します。
oci compute instance action --action START --instance-id$instance_ocid > /dev/null 2>&1
→ここでは、OCI CLIを使って指定したインスタンスに対してアクションを実行します。今回はSTARTを指定してインスタンスを起動し、出力はすべて破棄します。

oci compute instance action [OPTIONS]
→指定したインスタンスに対してアクションを実行します。
<必須パラメータ>
--action [text]:インスタンスで実行するアクション。指定できる値は、下記
                     STOP
        START
                     SOFTRESET
                     RESET
                     SOFTSTOP
                     SENDDIAGNOSTICINTERRUPT
                     DIAGNOSTICREBOOT
                     REBOOTMIGRATE

--instance-id [text]:対象インスタンスのOCID
action OCI CLI Command Reference 3.68.1 documentation

> /dev/null 2>&1
→標準出力と標準エラーを破棄します。


3.実行確認

TEST_compartmentに2つの停止中インスタンス(TEST_InstanceTEST2_Instance)があります。この環境で実際に2つのインスタンスを起動できるか確認してみます


実行方法は「bash スクリプト名 インスタンス名」です。
今回のケースでは下記で実行します。
bash Blog.sh TEST_Instance TEST2_Instance
実行すると下記が返ってきました。

コンソール上で確認すると停止中だった2つのインスタンスが起動していました。

続いて2つの停止中のインスタンスのうちTEST2_Instanceのみ起動できるか確認してみます。

実行方法は「bash スクリプト名 インスタンス名」です。
今回のケースでは下記で実行します。
bash Blog.sh TEST2_Instance

実行すると下記が返ってきました。

コンソール上で確認するとTEST2_Instanceのみが起動していました。

3. まとめ

今回は OCI CLI を利用したインスタンスの起動方法をご紹介しました。

本記事ではインスタンスの「起動」を題材にしましたが、スクリプト内の --action を変更することで、インスタンスの停止や再起動といった操作にも容易に応用できます。
また、今回は単純にインスタンスの OCID を取得して起動する例でしたが、事前にインスタンスのライフサイクル状態を確認し、停止状態の場合のみ起動する、といった運用を考慮したスクリプトへ発展させることも可能です。
OCI CLI はシンプルなコマンドでインスタンス操作を自動化できるため、定常運用やメンテナンス作業の効率化に非常に有効です。ぜひ日々の運用に取り入れてみてください。

こちらの発言は全て個人的意見です。内容につきましては、十分注意し投稿しておりますが、誤りがあれば直接ご指導頂けますとありがたいです。

PR

CNSでは、Oracle Cloud InfrastructureOCI)を活用したSIサービス「 U-Way 」を提供しています。

OCI東京リージョン開設時期から蓄積してきた知見と、Oracle製品・オンプレミス環境での実績を生かし、インフラ基盤やクラウドアプリケーション、データ分析基盤のクラウド化を、企画から構築・運用まで一貫して支援します。
OCI
導入支援、運用支援、短納期・低コストで利用を開始できる「 U-Way Lite OCI Model 」や、OracleERPサービスの導入支援 「U-Way Oracle NetSuite 導入支援サービス」などもご提供しています。

OCIの活用にご興味のある方は、ぜひお気軽にお問い合わせください。

参考

l  OCI Secure Desktops ドキュメント

l  OCI Vault ドキュメント

l  Windows のサービス概要およびネットワーク ポート要件

l  OCI Secure Desktops: How to Prepare OSD Windows Image Which Can Join Windows AD

l  OCI Secure Desktops: How to Customize a Secure Desktop Image to Join Active Directory Domain

l  OCI Secure Desktops: How to Customize a Secure Desktop Image

l  OCI Secure Desktops: How to Use a Pre-Authenticated Request (PAR) to create a Secure Desktops pool using Windows

▶ お問い合わせフォームはこちら:

https://reg34.smp.ne.jp/regist/is?SMPFORM=ofte-lerand-a156f4b7d094ddf7db06c166e8de81dd

ページトップへ戻る