OCI CLIでバックアップ設定をしてみた

こんにちは。Oracle Cloud Infrastructure(OCI)特集 編集部です。

今回はバックアップの設定をCLI上からしてみようと思います。

以下の手順で設定をします。

【作業の流れ】

  1. 事前に必要なものをインストールする
  2. CLIアクセスに必要なOCIDを控える
  3. CLIの設定(APIキーを作成含む)
  4. CLIからアクセスの確認をする
  5. バックアップのコマンドを実行する

前提

【設定するにあたって事前にインストールするもの】

  • Pythonのインストール
    OCI CLIはPythonベースで作成されているため。
    下記サイトよりダウンロードを行い接続元端末にインストールします。
    https://www.python.org/downloads/windows/
    ※現時点(2019年6月時点)での公式ドキュメントではWindows を利用している場合は、Python3 ではなくPython2の利用を推奨しています。
     (Python3ではOCI CLIインストール時に複数のエラーが発生する可能性が高いため)
  • OCI CLIのインストール
    下記サイトを参考にし、接続元端末にインストールします。
    https://docs.oracle.com/cd/E97706_01/Content/API/SDKDocs/cliinstall.htm
  • Bashが使える環境のセットアップ
    OCI CLI はターミナル・コンソールから実行しますが、今回はそのコンソールとしてBashターミナルを利用するため、セットアップを行います。
    好みに応じたターミナルを用意してください。
    ※今回はGit Bashを利用しました。
    下記サイトよりダウンロードを行い接続元端末にインストールします。
    https://gitforwindows.org/ttps://gitforwindows.org/

CLIアクセスの準備

CLIでOCIにアクセスするためには、ユーザー、テナント、コンパートメントの OCID (Oracle Cloud ID) が必要になります。
OCIDとは

必要なOCIDをWebコンソールから確認していきます。

 

左上のメニューから「アイデンティティ」⇒「ユーザー」⇒CLIアクセスしたいユーザーを選択します。
詳細画面からOCIDを確認し、コピーしたOCIDをメモ帳などに貼りつけます。

テナント、コンパートメントのOCIDも同様にメモ帳に貼りつけておきます。

CLIの設定

設定ファイルとAPIキーの生成

任意のBashターミナルを起動します。
今回はWindows PowerShellを「管理者として実行」オプションで開きます。

以下のコマンドを実行し、CLIのコンフィグレーションスクリプトを起動します。

oci setup config

対話形式で質問がされるため、以下の通り入力していきます。

  • Enter a location for your config [D:\Users\<ユーザー名>\.oci\config]: 入力なしでENTERキーを押す
  • Enter a user OCID: ユーザーのOCIDを入力

 ※CLIアクセスの準備でコピーしたOCIDを入力してください。

  • Enter a tenancy OCID: テナントのOCIDを入力

 ※CLIアクセスの準備でコピーしたOCIDを入力してください。

  • Enter a region (e.g. eu-frankfurt-1, us-ashburn-1, us-phoenix-1): – アクセスしたいリージョンを例に従って入力
  • Do you want to generate a new RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: – Y

 ※既に作成されたAPIキーがある場合は、「N」と入力してください。

  • Enter a directory for your keys to be created [C:\Users\<ユーザー名>\.oci]: – 入力なしでENTERキーを押す
  • Enter a name for your key [oci_api_key]: – 入力なしでENTERキーを押す
  • Enter a passphrase for your private key (empty for no passphrase): – 任意のパスフレーズを入力

スクリプトが問題なく完了された場合は、「C:\Users\opc\oci」ディレクトリに「config」ファイルと公開鍵、秘密鍵が作成されます。

※上記ディレクトリはデフォルト設定の場合です。自身で他のディレクトリに設定した場合は、そちらをご確認ください。

APIキーのアップロード

OCIコンソールにログインし、左上のメニューから「アイデンティティ」⇒「ユーザー」⇒対象のユーザーを選択します。

ユーザー詳細画面下部にある「公開キーの追加」をクリックします。

先程作成した公開鍵を、テキストエディタで開きます。中身を全てコピーし、そのまま貼りつけ、「追加」をクリックします。

APIキー一覧に追加されたことを確認します。

CLIからアクセスの確認をする

公開鍵の登録まで完了すると、CLIでアクセスが可能になります。
きちんとアクセスできるか確認を行います。

任意のターミナル・コンソールを起動します。

以下のコマンドを入力します。

oci compute image list -c <コンパートメントのOCID>

以下のような結果が返ってくれば、OCIへのアクセスに成功しています。

バックアップのコマンドを実行する

任意のターミナル・コンソールを起動します。
※今回はGitBashで作業しました。

バックアップを取得するボリュームが、ブートボリュームかブロックボリュームかによってコマンドが違います。

ブートボリュームのバックアップ

以下のコマンドを実行します。

oci bv boot-volume-backup create [オプション]

オプション

  • --boot-volume-id [text] ※必須
    バックアップを取得するボリュームのOCID
  • --defined-tags [complex type]
    このリソースの定義済みタグ
  • --display-name [text]
    ボリュームバックアップの名前
  • --freeform-tags [complex type]
    このリソースの自由形式タグ
    各タグは、定義済みの名前、タイプ、またはネームスペースのない単純なキーと値のペア
  • --type [FULL|INCREMENTAL]
    フルバックアップ(FULL)または増分バックアップ(INCREMENTAL)
    ※特に指定しない場合は増分バックアップで作成
  • --wait-for-state [CREATING|AVAILABLE|TERMINATING|TERMINATED|FAULTY|REQUEST_RECEIVED]
    定義されたライフサイクル状態を持つリソースを作成、変更、または削除
  • --max-wait-seconds [integer]
    リソースが--wait-for-stateで定義されたライフサイクル状態に達するのを待つ最大時間
  • --wait-interval-seconds [integer]
    --wait-for-stateで定義されたライフサイクル状態にリソースが到達したかどうかを確認しに行く時間
    ※デフォルトは30秒
  • --from-json [text]
    file:// path-to / file構文を使用して、ファイルからこのコマンドへの入力をJSON文書として提供

Webコンソールから確認すると、バックアップが作成できています。

ブロックボリュームのバックアップ

以下のコマンドを入力します。

 oci bv backup create [OPTIONS] 

オプション

  • --volume-id [text] ※必須
    バックアップを取得するボリュームのOCID
  • --defined-tags [complex type]
    このリソースの定義済みタグ
  • --display-name [text]
    ボリュームバックアップの名前
  • --freeform-tags [complex type]
    このリソースの自由形式タグ
    各タグは、定義済みの名前、タイプ、またはネームスペースのない単純なキーと値のペア
  • --type [FULL|INCREMENTAL]
    フルバックアップ(FULL)または増分バックアップ(INCREMENTAL)
    ※特に指定しない場合は増分バックアップで作成
  • --wait-for-state [CREATING|AVAILABLE|TERMINATING|TERMINATED|FAULTY|REQUEST_RECEIVED]
    定義されたライフサイクル状態を持つリソースを作成、変更、または削除
  • --max-wait-seconds [integer]
    リソースが--wait-for-stateで定義されたライフサイクル状態に達するのを待つ最大時間
  • --wait-interval-seconds [integer]
    --wait-for-stateで定義されたライフサイクル状態にリソースが到達したかどうかを確認しに行く時間
    ※デフォルトは30秒
  • --from-json [text]
    file:// path-to / file構文を使用して、ファイルからこのコマンドへの入力をJSON文書として提供

Webコンソールから確認すると、バックアップが作成できています。

GUIからの操作ではなく、CLIから操作することによって、設定時間の短縮が可能になりました。