インスタンスでOracle CLIコマンドを使ってみよう

はじめに

 前の記事では、HGAインスタンスとOracle Object StoragercloneというOSSで連携する方法を紹介しました。この方法を用いれば、インスタンスの実質的なストレージ容量の拡充が行えたり、インスタンス間の共有ファイルサーバのようなものが作ることができるようになります。

 今度はHGAインスタンス上からOCIの仮想マシンやオブジェクトストレージの制御・管制を行ってみたいと思いませんか?インスタンスに Oracle CLI というツールを導入すればこれらはできることなんです!ものは試しということで、今回はHGAインスタンスにOracle CLIを導入しオブジェクトストレージのバケット作成をコマンドライン上から行ってみましょう

前提

この記事は下記の条件を満たした方を対象としております。

  • HGAでインスタンスにログインできること(インスタンスタイプは何でも大丈夫です)
  • Oracle Cloud Infrastructure(以下OCI)画面からインスタンスやバケットの作成が行えること(この記事の範囲の操作ができれば十分です)

HGAインスタンス側: Oracle CLIをインストール

インスタンスへの接続

 新規にターミナルを立ち上げ下記コマンドにてインスタンスに接続してください。
下図のような画面になれば接続完了です。

ssh user@localhost -p 20122 -i .\.ssh\mykey.txt
localhostの紐づけ

Oracle CLIのインストール

 HGAインスタンスにOracle CLIをインストールします。Oracle CLIについて簡単に説明しますと、OCIで仮想マシンやストレージを作成するとき、普通はブラウザから管理画面にアクセスして操作する必要があるのですが、これらをコマンドで行えるようにするためのツールです。詳しくは上のリンクから公式ヘルプを参照していただきたいのですが、仮想マシンの作成やボリュームのマウントなどできることは結構多いです。最初は「別にブラウザ上でやればよくない?」と思うかもしれませんが、慣れてくると思うほか便利できっと戻れなくなりますよ(CUIに慣れた時にしばしばGUI操作に抱く感覚に似てます)。需要ありそうならうちも手をつけなきゃ・・・

 だいぶ脱線しました。それでは以下のコマンドでダウンロードとインストールです:

sudo apt install -y curl
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
ダウンロード中

 2020/11/30現在、apt installではなくcurlでインストールシェル付きのソースをダウンロードして、install.shからインストールを行う必要があります。不便に思われるかもしれませんが、要は、上のコマンドを実行すればダウンロードを行いインストールを開始してくれるのであまり心配する必要はありません。

 しかし、インストール中、いくつか確認と(必要であれば)入力をする必要があるのでそれについてこれから説明していきます。まず、上のコマンドを実行すると、下図のような内容を尋ねられますが、全部Enterキー押下で問題ありません。スクリプトや実行コマンドの配置先を尋ねていますが、特別に配置したい場所がない限りはEnter押下でデフォルトの場所に作成してもらった方が無難です。

パスやオプションに関する質問(全部Enterキー押下で大丈夫です)

 ところが、最後の方に問われる(Y/n)回答式の質問ではyキーを押してEnterを押すようにしましょう(パスを通すか聞いています)。

ここだけyキー押下必要
インストール完了と思いきや・・・?

 以上でインストールが完了しました!と、言いたいところなのですが、上の画像の赤く囲った箇所を見てみるとシェルの再起動を促しています。パスを通した際はこういう処置が必要なんですよね(筆者は忘れがちです・・・)。親切なことにコマンドまで載せてくれているのでそのまま実行しちゃいましょう:

exec -l $SHELL

OCI側:セットアップのための情報収集

 とりあえずインストールとパスを通す程度の最低限の設定が終わりました!今度は、あなたのOCIアカウント内のストレージをCLIで操作することを許可するために、認証に関する各種設定を行う必要があります。残念ながらメルアドやパスワードで認証できるようなものではないのです。

 率直に言うと、OCIの認証周りの情報は、階層構造にしているためかかなり複雑であるよう筆者に感じます。ユーザOCIDテナンシOCID、(できれば)コンパートメントOCIDあたりの用語とは今のうちに親しくしておきましょう(筆者はだめそうです・・・)。

 ひとまず以下の2つの情報をOCI管理画面から集めてメモ帳などに貼り付けましょう。順を追って説明するので安心してくださいね。

ユーザOCID

 下図のようにOCI管理画面ログインのページの右上のアイコン部分をクリックし、開いたメニューのユーザ名(デフォルトではメールアドレスのはずです)をクリックします。すると、ユーザ情報画面が開くので真ん中左寄りにある「OCID」の「コピー」をクリックしてメモ帳などに貼り付けましょう。

ユーザOCID

テナンシOCID

  下図のようにOCI管理画面ログインのページの右上のアイコン部分をクリックし、今度は、開いたメニューの「テナンシ:~」をクリックします。 するとテナンシの詳細画面が現れるのでユーザOCIDと同じ位置にある「コピー」をクリックし、メモ帳にペーストしておきます。

 ちなみにテナンシ(tenancy)とは、「借用」を名詞とのことです。そういえばテナントってありますよね!

テナンシOCID

ここまで収集したら、再びインスタンスに戻って認証設定を行います!

HGAインスタンス側:設定ファイルの生成

 インスタンスに入ったら、まずは下記コマンドでOracle CLI用の設定ファイルを生成します。

oci setup config

すると以下のような内容が順次問われていくので情報を書いていきます。

Enter a location for your config [/home/user/.oci/config]: ①
Enter a user OCID: ②
Enter a tenancy OCID: ③
Enter a region (e.g. ap-chiyoda-1, ap-chuncheon-1, ap-hyderabad-1, ap-melbourne-1, ap-mumbai-1, ap-osaka-1, ap-seoul-1, ap-sydney-1, ap-tokyo-1, ca-montreal-1, ca-toronto-1, eu-amsterdam-1, eu-frankfurt-1, eu-zurich-1, me-dubai-1, me-jeddah-1, sa-saopaulo-1, uk-cardiff-1, uk-gov-cardiff-1, uk-gov-london-1, uk-london-1, us-ashburn-1, us-gov-ashburn-1, us-gov-chicago-1, us-gov-phoenix-1, us-langley-1, us-luke-1, us-phoenix-1, us-sanjose-1): ④
Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: ⑤
Enter a directory for your keys to be created [/home/user/.oci]: ⑥
Enter a name for your key [oci_api_key]: ⑦
Public key written to: /home/user/.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase): ⑧
Private key written to: /home/user/.oci/oci_api_key.pem
Fingerprint: f5:bc:4f:b8:f3:d9:c0:34:1a:c3:c3:48:3e:4b:9c:3b
Config written to /home/user/.oci/config


    If you haven't already uploaded your API Signing public key through the
    console, follow the instructions on the page linked below in the section
    'How to upload the public key':

        https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2```
  • ①:Enterキー押下。設定ファイルの場所にデフォルト以外の希望があるか聞いています。
  • ②:ユーザOCIDをメモ帳などから貼り付けます
  • ③:テナンシOCIDをメモ帳などから貼り付けます
  • ④:リージョンを尋ねています。ap-tokyo-1で問題ないと思います。
  • ⑤:「y」を入力後Enterキーを押します。後で使用するキーを生成するか聞いています。
  • ⑥: Enterキー押下。 鍵の生成場所がデフォルトだと困る場合以外はEnterです。
  • ⑦: Enterキー押下。 鍵に名前を付けてかわいがりたい場合は希望の鍵名を入力です。
  • ⑧: パスワード生成希望しない場合にはEnterキー押下。 希望パスワードを尋ねています。筆者は忘れる自信があるので迷わずEnter押しました。

 以上で認証用の設定ファイルの作成が完了しました!あと一つ大きな作業が控えているので一旦休憩することをおすすめします。

APIキーの登録

 認証に関する最後の作業はAPIキーの登録です。前節の設定時に生成された鍵をOCI管理画面上から登録します。下記のコマンドで得られた出力を全てコピーしてください(BEGINーーENDも含みます).

cat /home/user/.oci/oci_api_key_public.pem 
鍵の内容

 これをOCI管理画面上から登録する必要があります。まず下図のようにユーザ情報画面左下の「APIキー」をクリックします。

ユーザ情報画面

すると「公開キーの追加」というボタンが出るのでこれを押下すると、鍵登録用のウィンドウが立ちあがります。「公開キーの貼付け」の部分にチェックを入れ、先ほどコピーした内容を貼り付けましょう。貼り付けたら「追加」ボタンを押します。

キー貼付け画面

貼付けが終わったら、下の方の「フィンガープリント」部分を確認し、日付などから無事登録されているか確認します(GMTなので+9時間が日本時間となります)。

フィンガープリント

 お疲れさまでした!これにて本当に認証に関する設定は完了です!次は動作検証をしていきます。

動作検証:Object Storageのバケットを作ろう

Object Storage Namespaceを取得しよう

 では、動作検証をしていきます。コマンドのみを使ってObject Storageのバケットを作成してみます。Oracle CLIでObject Storageを制御するには、「オブジェクトストレージネームスペース」というものを別途把握しておく必要があります。これだけ認証のがんじがらめにされるとかえって楽しくなりませんか?筆者はつらかったです。

 ではオブジェクトストレージネームスペースを取得しましょう。OCI管理画面の左上のメニューから「管理」→「テナンシ詳細」をクリックします(下図)。

オブジェクトストレージネームスペースの確認1

すると、下図のように、「オブジェクト・ストレージ・ネームスペース」という項があるのでここをコピーしてメモ帳などに貼り付けておりましょう。


オブジェクトストレージネームスペースの確認2

(今度こそ)動作検証

 今度こそ本当に動作確認です!次のコマンドを①と②を埋めた上で実行すると「OS_HGA_TEST_BUCKET 」という名前でバケットが生成されます(もちろんお好きなバケット名にしてください)。

oci os bucket create -ns ①--name OS_HGA_TEST_BUCKET -c ② --public-access-type NoPublicAccess
  • ①:オブジェクトストレージネームスペース(前小節でとってきたものです)
  • ②:テナンシOCID(久しぶりの登場ですね!)

下記のような出力が出れば成功です。

コマンド動作確認

実際にバケットが作成されたかどうかOCI管理画面からも確認してみましょう(下図)。

バケット作成成功!

ちゃんとできていますね!

[HGAoffcial]

[dot]

[/dot]

この記事をシェアする