クラウド・シェルの使用
この項では、クラウド・シェルを使用する方法について説明します。
クラウド・シェルの開始
クラウド・シェルには2つの方法でアクセスできます:
- OCIコンソールを使用します
- ドキュメント全体の多くのコマンドラインおよびコード・サンプルに表示される「試してみる」ボタンを使用します
クラウド・シェルは、ユーザーOCIDを使用してホーム・ディレクトリを作成します。テナンシに複数のアカウントがある場合(たとえば、フェデレーテッド・ユーザー・アカウントと非フェデレーテッド・ユーザー・アカウントがある場合)、アカウントごとにそれぞれ一意のクラウド・シェル・ホーム・ディレクトリが取得されます。
コンソールを使用してクラウド・シェルにアクセスするには:
- コンソールにログインします。
- コンソール・ヘッダーの「クラウド・シェル/コード・エディタ」アイコンをクリックし、ドロップダウン・メニューから「クラウド・シェル」を選択します。クラウド・シェルで実行中の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クラスタとの相互作用
クラスタへのクラウド・シェル・アクセスの設定の手順に従います:
- クラウド・シェルで使用するOKE kubeconfigファイルを設定します:
- クラスタを選択します。
- 「クラスタへのアクセス」ボタンをクリックします。
- 「クラウド・シェル・アクセス」をクリックします。
- 「クラウド・シェルの起動」をクリックして「クラウド・シェル」ウィンドウを表示します。
「クラウド・シェル」ウィンドウで、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
-
「クラウド・シェル」ウィンドウで次のコマンドを入力して、kubectlが使用可能であり、「クラウド・シェル」ウィンドウからクラスタに接続できることを確認します:
$ kubectl get nodes
ファイルの転送
- 「ファイルの転送」ダイアログで転送できるファイルは一度に1つのみですが、ドラッグ・アンド・ドロップを使用すれば、転送するファイルを複数選択できます。
- ディレクトリは転送できません。
- 最大ファイル・サイズは4GBです。
- 転送されたファイルでは、ファイル権限は保持されません。
- ファイル名は記録されます。ファイル名には、個人情報(PII)を使用しないでください。
- 「クラウド・シェル」ウィンドウにファイルを1つ以上ドラッグします。
メニューを使用してクラウド・シェルにファイルをアップロードするには:
- 「クラウド・シェル」ウィンドウの左上にある「クラウド・シェル」メニューをクリックし、「アップロード」を選択します。「ファイルのアップロード」ダイアログが表示されます。
- ファイルをドラッグ・アンド・ドロップするか、「コンピュータから選択」をクリックします。ノート
「ファイルの転送」ダイアログで選択して転送できるのは、一度に1つのファイルのみです。 - 「アップロード」ボタンをクリックします。
- 「ファイルの転送」ダイアログが表示されます。
- 処理中のファイル転送が進捗バーで表示されます
- ファイルの進捗バーの横にある「X」をクリックすると、処理中のファイル転送を取り消すことができます
- 完了したファイル転送には、緑色のチェック・マークが表示されます
- 「ファイルの転送」ダイアログを非表示にするには、「非表示」をクリックします
- 「クラウド・シェル」メニューから「ファイルの転送」を選択すると、「ファイルの転送」ダイアログをいつでも表示できます
クラウド・シェルからファイルをダウンロードするには:
- 「クラウド・シェル」ウィンドウの左上にある「クラウド・シェル」メニューをクリックし、「ダウンロード」を選択します。「ファイルのダウンロード」ダイアログが表示されます:
- ホーム・ディレクトリにある、ダウンロード対象のファイルの名前を入力します。ノート
ファイルをダウンロードできるのは、ホーム・ディレクトリからのみです。 - 「ダウンロード」ボタンをクリックします。
- 「ファイルの転送」ダイアログが表示されます。
- 処理中のファイル転送が進捗バーで表示されます
- ファイルの進捗バーの横にある「X」をクリックすると、処理中のファイル転送を取り消すことができます
- 完了したファイル転送には、緑色のチェック・マークが表示されます
- 「ファイルの転送」ダイアログを非表示にするには、「非表示」をクリックします
- 「クラウド・シェル」メニューから「ファイルの転送」を選択すると、「ファイルの転送」ダイアログをいつでも表示できます
クラウド・シェルの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_PROFILE
がus-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
オブジェクト・ストレージを使用したクラウド・シェルのホーム・ディレクトリのバックアップおよびリストア
クラウド・シェルのホーム・ディレクトリの内容をアーカイブして、オブジェクト・ストレージのバケットにバックアップできます。
クラウド・シェルではセッション間の永続性が提供されますが、ユーザーによって誤って削除された可能性のあるファイルをリストアする機能はありません。また、このサービスでは、ホーム・ディレクトリに含まれるデータのディザスタ・リカバリも提供されません。データがユーザーにとってクリティカルな場合は、クロス・リージョン・バックアップの作成を検討してください。
クラウド・シェルのホーム・ディレクトリをオブジェクト・ストレージにバックアップするには
- バックアップを含めるオブジェクト・ストレージにバケットを作成します(既存のバケットを使用することもできます)。オブジェクト・ストレージのバケットで作業する方法の詳細は、オブジェクト・ストレージ・バケットを参照してください。ノート
テナンシのデフォルトのオブジェクト・ストレージ・ネームスペースを検索するには、コマンドoci os ns get
を実行します。 - クラウド・シェル・プロンプトから次のコマンドを実行します。
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
- すべてのコマンドがエラーなしで完了したことを確認します。次のコマンドを実行して、バックアップ・ファイルがオブジェクト・ストレージに存在し、必要なサイズであることを確認できます:
oci os object head --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --name $FILENAME
クラウド・シェルのホーム・ディレクトリをオブジェクト・ストレージからリストアするには
- バックアップを含むオブジェクトの名前と、それを含むバケットの名前を見つけます。これらの値は、次のコマンドのパラメータとして必要になります。オブジェクト・ストレージの詳細は、オブジェクト・ストレージのドキュメントを参照してください。
- クラウド・シェル・プロンプトから次のコマンドを実行します。変数
OCI_CS_USER_BACKUPS_BUCKET_NAME
、OCI_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
- コマンド出力とホーム・ディレクトリ内のファイルをチェックして、すべてのコマンドがエラーなしで完了したことを確認します。
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アドレスは動的です。これはクラウド・シェル・セッション中に変更されることはありませんが、新しいセッションを開始すると変更される可能性があります。
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
このコマンドは、クラウド・シェルに関連付けられたNATゲートウェイのパブリックIPアドレスを返します。クラウド・シェルはインターネット・ゲートウェイに関連付けられていないため、このIPアドレスを使用して、クラウド・シェルで実行されているWebサービスにアクセスすることはできません。