クラウド・シェルの使用

この項では、クラウド・シェルを使用する方法について説明します。

クラウド・シェルの開始

クラウド・シェルには2つの方法でアクセスできます:

  • OCIコンソールを使用します
  • ドキュメント全体の多くのコマンドラインおよびコード・サンプルに表示される「試してみる」ボタンを使用します
ノート

クラウド・シェルは、ユーザーOCIDを使用してホーム・ディレクトリを作成します。テナンシに複数のアカウントがある場合(たとえば、フェデレーテッド・ユーザー・アカウントと非フェデレーテッド・ユーザー・アカウントがある場合)、アカウントごとにそれぞれ一意のクラウド・シェル・ホーム・ディレクトリが取得されます。

コンソールを使用してクラウド・シェルにアクセスするには:

  1. コンソールにログインします。
  2. コンソール・ヘッダーの「クラウド・シェル/コード・エディタ」アイコンをクリックし、ドロップダウン・メニューから「クラウド・シェル」を選択します。クラウド・シェルで実行中のOCI CLIでは、クラウド・シェルの起動時に、コンソールの「リージョン」選択メニューで選択されているリージョンに対してコマンドが実行されることに注意してください。

クラウド・シェル起動メニュー

これにより、コンソール下部のドロワーにクラウド・シェルが表示されます:

クラウド・シェル・ドロワーの例

「クラウド・シェル」ウィンドウの右上隅にあるアイコンを使用すると、クラウド・シェル・セッションを最小化、最大化、再起動および閉じることができます。

キーボードを使用してCloud Shellからフォーカスを移動するには、[Ctrl]を押しながら[Esc]を押します。

ノート

クリップボード操作の場合、Windowsユーザーは[Ctrl]+[C]または[Ctrl]+[Insert]を使用してコピーし、[Shift]+[Insert]または[Ctrl]+[V]を使用して貼り付けることができます。Mac OSユーザーの場合は、[Cmd]+[C]を使用してコピーし、[Cmd]+[V]を使用して貼り付けます。

「試してみる」ボタンを使用してクラウド・シェルにアクセスするには:

OCIドキュメントの多くのコードおよびコマンド・サンプルに「試してみる」ボタンが含まれます。このボタンにより、サンプルがクリップボードにコピーされ、クラウド・シェル・セッションが開き、サンプルを試してみることができます。

クラウド・シェルには事前認証済のOCI CLIが用意されているため、使用を開始する前に必要な設定はありません。

次のコマンドで試してください:

oci os ns get
oci iam compartment list

クラウド・シェルからのOKEクラスタとの相互作用

クラスタへのクラウド・シェル・アクセスの設定の手順に従います:

  1. クラウド・シェルで使用するOKE kubeconfigファイルを設定します:
    1. クラスタを選択します。
    2. 「クラスタへのアクセス」ボタンをクリックします。
    3. 「クラウド・シェル・アクセス」をクリックします。
    4. 「クラウド・シェルの起動」をクリックして「クラウド・シェル」ウィンドウを表示します。
    5. 「クラウド・シェル」ウィンドウで、Oracle Cloud Infrastructure CLIコマンドを実行してkubeconfigファイルを設定し、kubectlからアクセスできる場所に保存します。例:

      $ oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.phx.aaaaaaaaae... --file $HOME/.kube/config  --region us-phoenix-1 --token-version 2.0.0
  2. 「クラウド・シェル」ウィンドウで次のコマンドを入力して、kubectlが使用可能であり、「クラウド・シェル」ウィンドウからクラスタに接続できることを確認します:

    $ kubectl get nodes

ファイルの転送

次の制限付きで、クラウド・シェルとの間でファイルを転送できます:
  • 「ファイルの転送」ダイアログで転送できるファイルは一度に1つのみですが、ドラッグ・アンド・ドロップを使用すれば、転送するファイルを複数選択できます。
  • ディレクトリは転送できません。
  • 最大ファイル・サイズは4GBです。
  • 転送されたファイルでは、ファイル権限は保持されません。
  • ファイル名は記録されます。ファイル名には、個人情報(PII)を使用しないでください。
ドラッグ・アンド・ドロップでクラウド・シェルにファイルをアップロードするには:
  1. 「クラウド・シェル」ウィンドウにファイルを1つ以上ドラッグします。

メニューを使用してクラウド・シェルにファイルをアップロードするには:

  1. 「クラウド・シェル」ウィンドウの左上にある「クラウド・シェル」メニューをクリックし、「アップロード」を選択します。「ファイルのアップロード」ダイアログが表示されます。
  2. ファイルをドラッグ・アンド・ドロップするか、「コンピュータから選択」をクリックします。
    ノート

    「ファイルの転送」ダイアログで選択して転送できるのは、一度に1つのファイルのみです。
  3. 「アップロード」ボタンをクリックします。
  4. 「ファイルの転送」ダイアログが表示されます。
    1. 処理中のファイル転送が進捗バーで表示されます
    2. ファイルの進捗バーの横にある「X」をクリックすると、処理中のファイル転送を取り消すことができます
    3. 完了したファイル転送には、緑色のチェック・マークが表示されます
    4. 「ファイルの転送」ダイアログを非表示にするには、「非表示」をクリックします
    5. 「クラウド・シェル」メニューから「ファイルの転送」を選択すると、「ファイルの転送」ダイアログをいつでも表示できます

クラウド・シェルからファイルをダウンロードするには:

  1. 「クラウド・シェル」ウィンドウの左上にある「クラウド・シェル」メニューをクリックし、「ダウンロード」を選択します。「ファイルのダウンロード」ダイアログが表示されます:
  2. ホーム・ディレクトリにある、ダウンロード対象のファイルの名前を入力します。
    ノート

    ファイルをダウンロードできるのは、ホーム・ディレクトリからのみです。
  3. 「ダウンロード」ボタンをクリックします。
  4. 「ファイルの転送」ダイアログが表示されます。
    1. 処理中のファイル転送が進捗バーで表示されます
    2. ファイルの進捗バーの横にある「X」をクリックすると、処理中のファイル転送を取り消すことができます
    3. 完了したファイル転送には、緑色のチェック・マークが表示されます
    4. 「ファイルの転送」ダイアログを非表示にするには、「非表示」をクリックします
    5. 「クラウド・シェル」メニューから「ファイルの転送」を選択すると、「ファイルの転送」ダイアログをいつでも表示できます

クラウド・シェルのOCI CLI構成のカスタマイズ

クラウド・シェルには、事前認証済のOCI CLIが付属しています。新規クラウド・シェルを開いたとき、このCLIはユーザーに対してリフレッシュおよびプロビジョニングされます。OCI構成の場所とトークンは、/etc/ociのユーザーのホーム・ディレクトリの外部にあります。例:


            example_user@cloudshell:~ (us-ashburn-1)$ ll /etc/oci
            total 20K
            drwxrwx---. 1 root oci 44 Oct 12 00:07 ./
            drwxr-xr-x. 1 root root 4.0K Oct 12 00:07 ../
            -rw-------. 1 jonathan_s oci 1.9K Jan 1 1970 config
            -rw-------. 1 jonathan_s oci 1.3K Jan 1 1970 delegation_token
            example_user@cloudshell:~ (us-ashburn-1)$

構成ファイルの場所、OCI CLI認証タイプおよびプロファイル選択は、環境変数を使用して指定されます:

OCI_CLI_AUTH=instance_obo_user
            OCI_CLI_CONFIG_FILE=/etc/oci/config
            OCI_CLI_PROFILE=us-ashburn-1

OCI CLIをカスタマイズするには、OCI CLIのRCファイルを作成し、これをローカルの.ociディレクトリに配置します:

$ oci setup oci-cli-rc --file path/to/target/file

OCI CLIの構成の詳細は、CLIの構成を参照してください。

クラウド・シェル・リージョンの管理

クラウド・シェルでは、CLI構成ファイルおよびENV変数を使用して、OCI CLIが相互作用するリージョンを決定します。OCI CLI構成ファイル(環境変数OCI_CLI_CONFIG_FILEで指定)には、クラウド・シェルのCLIプロファイルが含まれます。各リージョンに独自のCLIプロファイルがあり、現在のプロファイルはOCI_CLI_PROFILE環境変数を介して指定されます。

たとえば、コンソールの「リージョン」ドロップダウンで「米国東部(アッシュバーン)」が選択された状態で、コンソールからクラウド・シェルを開くと、OCI_CLI_PROFILEus-ashburn-1に設定された状態でクラウド・シェルが開きます。

ノート

選択されるリージョンはクラウド・シェルを開いたときのコンソール構成に応じて変わるため、クラウド・シェルに[DEFAULT]プロファイル値はありません。

クラウド・シェルでOCI CLI設定をカスタマイズする場合は、OCI CLI構成ファイルを使用できます。たとえば、RCファイルの該当するリージョン・プロファイルの下で、構成ファイルにデフォルト・コンパートメントを設定するとします。「us-ashburn-1」の例では、このようなデフォルト・コンパートメント設定を追加できます:

[COMPARTMENT DEFAULTS]
[us-ashburn-1]
compartment-id = ocid1.compartment.oc1..xxxxxxxx

クラウド・シェル環境のリセット

csresetツールを使用して、クラウド・シェル環境をデフォルト状態にリセットできます。bashプロファイルおよびemacs設定のみをリセットすることも、ホーム・ディレクトリ内のすべてのデータを削除してbashおよびemacs設定をリセットすることもできます。

bashファイルをリセットするには

--bashfiles (または-b)オプションを使用して、$HOME/.bashrc$HOME/.bash_profile$HOME/.bash_logoutおよび$HOME/.emacsファイルをデフォルト値にリセットできます:

csreset --bashfiles

または

csreset -b

すべてをリセットするには

--all (または-a)オプションを使用して、$HOMEディレクトリのすべてのデータを消去し、$HOME/.bashrc$HOME/.bash_profile$HOME/.bash_logoutおよび$HOME/.emacsファイルをデフォルト値にリセットできます:

csreset --all

または

csreset -a

ヘルプの表示

使用オプションを表示するには、--helpまたは-hオプションを使用します:

csreset -h

または

csreset --help

オブジェクト・ストレージを使用したクラウド・シェルのホーム・ディレクトリのバックアップおよびリストア

クラウド・シェルのホーム・ディレクトリの内容をアーカイブして、オブジェクト・ストレージのバケットにバックアップできます。

ノート

クラウド・シェルではセッション間の永続性が提供されますが、ユーザーによって誤って削除された可能性のあるファイルをリストアする機能はありません。また、このサービスでは、ホーム・ディレクトリに含まれるデータのディザスタ・リカバリも提供されません。データがユーザーにとってクリティカルな場合は、クロス・リージョン・バックアップの作成を検討してください。

クラウド・シェルのホーム・ディレクトリをオブジェクト・ストレージにバックアップするには

  1. バックアップを含めるオブジェクト・ストレージにバケットを作成します(既存のバケットを使用することもできます)。オブジェクト・ストレージのバケットで作業する方法の詳細は、オブジェクト・ストレージ・バケットを参照してください。
    ノート

    テナンシのデフォルトのオブジェクト・ストレージ・ネームスペースを検索するには、コマンドoci os ns getを実行します。
  2. クラウド・シェル・プロンプトから次のコマンドを実行します。OCI_CS_USER_BACKUPS_BUCKET_NAMEおよびOCI_CS_USER_BACKUPS_NAMESPACEの値がバックアップ用の適切な値に設定されていることを確認します:
    OCI_CS_USER_BACKUPS_BUCKET_NAME="MyCloudShellBackupsBucket" 
    OCI_CS_USER_BACKUPS_NAMESPACE="NamespaceForBackupsBucket"
    FILENAME=CloudShellHomeDirectoryBackup-$OCI_REGION-$OCI_CS_USER_OCID-$(date --iso-8601=seconds).tar.gz 
    TEMP_TAR_LOCATION=/tmp
    tar -zcvf $TEMP_TAR_LOCATION/$FILENAME ~/
    echo "Creating backup object: $FILENAME in bucket: $OCI_CS_USER_BACKUPS_BUCKET_NAME in namespace: $OCI_CS_USER_BACKUPS_NAMESPACE"
    oci os object put --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --file $TEMP_TAR_LOCATION/$FILENAME
    rm $TEMP_TAR_LOCATION/$FILENAME 
  3. すべてのコマンドがエラーなしで完了したことを確認します。次のコマンドを実行して、バックアップ・ファイルがオブジェクト・ストレージに存在し、必要なサイズであることを確認できます:
    oci os object head --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --name $FILENAME

クラウド・シェルのホーム・ディレクトリをオブジェクト・ストレージからリストアするには

  1. バックアップを含むオブジェクトの名前と、それを含むバケットの名前を見つけます。これらの値は、次のコマンドのパラメータとして必要になります。オブジェクト・ストレージの詳細は、オブジェクト・ストレージのドキュメントを参照してください。
  2. クラウド・シェル・プロンプトから次のコマンドを実行します。変数OCI_CS_USER_BACKUPS_BUCKET_NAMEOCI_CS_USER_BACKUPS_OBJECT_NAMEおよびOCI_CS_USER_BACKUPS_NAMESPACEを適切な値に置き換えてください。
    ノート

    テナンシのデフォルトのオブジェクト・ストレージ・ネームスペースを検索するには、コマンドoci os ns getを実行します。
    ノート

    tarコマンドは、既存のファイルを上書きしません。既存のファイルを上書きする場合は、--skip-old-filesパラメータを削除し、--overwriteパラメータを追加します
    OCI_CS_USER_BACKUPS_BUCKET_NAME="MyCloudShellBackupsBucket"
    OCI_CS_USER_BACKUPS_OBJECT_NAME="CloudShellHomeDirectoryBackup-us-ashburn-1-ocid1.user...tar.gz"
    OCI_CS_USER_BACKUPS_NAMESPACE="NamespaceForBackupsBucket"
    TEMP_TAR_LOCATION=/tmp
    oci os object get --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --name $OCI_CS_USER_BACKUPS_OBJECT_NAME --file $TEMP_TAR_LOCATION/$OCI_CS_USER_BACKUPS_OBJECT_NAME
    tar --skip-old-files -xzvf $TEMP_TAR_LOCATION/$OCI_CS_USER_BACKUPS_OBJECT_NAME -C /
    rm -rf $TEMP_TAR_LOCATION/$OCI_CS_USER_BACKUPS_OBJECT_NAME
  3. コマンド出力とホーム・ディレクトリ内のファイルをチェックして、すべてのコマンドがエラーなしで完了したことを確認します。

Pythonバージョンの作業

Cloud ShellではPython 3を使用します。pythonを実行するには、コマンド・プロンプトでpythonと入力します:
python

kubectlバージョンの使用

クラウド・シェルには、OKEで現在サポートされている各Kubernetesのバージョンが事前にインストールされています。これらのバージョンは/usr/local/bin/kubectl-{version} (/usr/local/bin/kubectl-v1.17.13など)にインストールされおり、バイナリへのパスはPATH環境変数に含まれます。

デフォルトでは、クラウド・シェルのセッションでkubectlを実行すると、インストールされたkubectlのうち2番目に新しいバージョンが起動されます。これは、Kubernetesのバージョン・スキュー・ポリシーに基づき、互換性の最適化を目的として行っています。

デフォルトではないバージョンのkubectlを使用する場合は、バージョン固有のバイナリを起動できます。

例:
kubectl-v1.17.13 get services
もう1つの方法は、特定バージョンのkubectlを指す別名を作成することです。
例:
alias kubectl=kubectl-v1.17.13
ノート

クラウド・シェルのセッション間で別名を永続化する場合は、~/.bashrcファイルに別名の定義を追加します。

言語ランタイムの管理

csruntimectlコマンドを使用して、クラウド・シェルがプログラムの実行に使用する言語ランタイムを表示および管理できます。
ノート

csruntimectlコマンドで現在サポートされているのはJavaのみです。
現在クラウド・シェルでサポートされているランタイムのバージョンを確認するには、listオプションを使用します。例:
csruntimectl java list
setオプションを使用すると、クラウド・シェルが使用するランタイムのバージョンを指定できます。たとえば、Javaランタイムを設定するには、次のようにします:
csruntimectl java set oraclejdk-11

この設定は、クラウド・シェルのセッション全体で保持されることに注意してください。

現在サポートされているオプションのリストを出力するには、helpオプションを使用します:
csruntimectl help

クラウド・シェル・セッションのパブリックIPアドレスの取得

クラウド・シェル・セッションのパブリックIPアドレスを確認できます。この情報は、クラウド・シェル・セッションから外部リソースへのアクセスを設定する場合など、様々なシナリオで役立ちます。
ノート

クラウド・シェルのパブリックIPアドレスは動的です。これはクラウド・シェル・セッション中に変更されることはありませんが、新しいセッションを開始すると変更される可能性があります。
次のコマンドを実行して、クラウド・シェル・セッションのパブリックIPアドレスを確認できます:
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
ノート

このコマンドは、クラウド・シェルに関連付けられたNATゲートウェイのパブリックIPアドレスを返します。クラウド・シェルはインターネット・ゲートウェイに関連付けられていないため、このIPアドレスを使用して、クラウド・シェルで実行されているWebサービスにアクセスすることはできません。