🔰はじめに
クラウド事業部の太田です。
本記事では、Oracle Cloud Infrastructure(以下、OCI)を使い始めた筆者がCloud Shellを使ってみた/調べてみたことについて記載します。
📖想定読者
- これからOCIを使う方
- IaC(Infrastructure as Code)に興味がある方
- CUIで処理をしてみたい方
🙍♂️筆者について
- 先日 Oracle Cloud Infrastructure 2024 Architect Associate を取得しました
- 実務ではOCIを使った業務は未経験です
- Cloud ShellはAzureで使ったことがあり、Azure CLI クックブックという、すぐ使えるコピペ集!をZennBookで書きました
- Ansibleを業務で使用したことがあります
🤔Cloud Shellとは?
📔用語説明
Oracle Cloud Infrastructure (OCI) Cloud Shellは、Oracle CloudコンソールからアクセスできるWebブラウザベースのターミナルである。
Oracle Cloud Infrastructureドキュメント > クラウド・シェル より
🖱使い方
ログイン後に「クラウドシェル」のアイコンをクリックして「Cloud Shell」をクリックします。
参考サイト:Oracle Cloud Infrastructureドキュメント > クラウド・シェルの使用
💡Cloud Shell比較
Cloud Shellは、OCI以外のクラウド(AWSやAzure)でも提供されています。また、各クラウドで独自コマンドがあり、リソースの作成/削除/取得など可能です。 また、GitやAnsibleやTerraformも最初からインストールされており使用することができます。
種別 | OCI | AWS | Azure |
---|---|---|---|
Cloud Shell | 利用可能 | 利用可能 | 利用可能 |
独自コマンド | oci (リファレンスリンク) |
aws (リファレンスリンク) |
az (リファレンスリンク) |
ansible | 利用可能 | 利用可能 | 利用可能 |
terraform | 利用可能 | 利用可能 | 利用可能 |
🖋コマンド実行
ociバージョン確認
OCI CLIのバージョンを確認します。r_ota@cloudshell:~ (ap-tokyo-1)$ oci --version 3.54.5 r_ota@cloudshell:~ (ap-tokyo-1)$
ansibleバージョン確認
Ansibleがインストール済みか確認します。r_ota@cloudshell:~ (ap-tokyo-1)$ ansible --version ansible 2.9.27 config file = /etc/ansible/ansible.cfg configured module search path = ['/home/r_ota/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.6/site-packages/ansible executable location = /usr/bin/ansible python version = 3.6.8 (default, Dec 4 2024, 01:47:03) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22.0.1)] r_ota@cloudshell:~ (ap-tokyo-1)$
terraformバージョン確認 Terraformがインストール済みか確認します。
r_ota@cloudshell:~ (ap-tokyo-1)$ terraform --version Terraform v1.5.7 on linux_arm64 Your version of Terraform is out of date! The latest version is 1.12.2. You can update by downloading from https://www.terraform.io/downloads.html r_ota@cloudshell:~ (ap-tokyo-1)$
TENANCY ID 確認
r_ota@cloudshell:~ (ap-tokyo-1)$ echo $OCI_TENANCY ocid1.tenancy.oc1..aaaaaaaaew11111111111222222222222333333333333444444444555555 r_ota@cloudshell:~ (ap-tokyo-1)$
compute instance list(display-nameのみ取得)
r_ota@cloudshell:~ (ap-tokyo-1)$ oci compute instance list --compartment-id $OCI_TENANCY | jq -r '.data[] | .["display-name"]' test-instance01 test-instance02 r_ota@cloudshell:~ (ap-tokyo-1)$
compartment list(descriptionのみ取得)
r_ota@cloudshell:~ (ap-tokyo-1)$ oci iam compartment list -c $OCI_TENANCY | jq .data[].description "検証用コンパートメント" "ブログ検証用" "ハンズオン用" r_ota@cloudshell:~ (ap-tokyo-1)$
✅まとめ
インストール不要で基本無料のCloud Shellは覚えると便利です。
AnsibleやTerraformなどのIaCツールもインストール不要で使えるのでサクッとリソースを作成したり、使い終わったら削除なんてこともコードがあれば可能です。
⚠️注意点
Terraformのバージョン確認時に「Your version of Terraform is out of date!」というエラーが表示され、アップデートが必要であることがわかりました。
自身で管理するサーバと違い、いつアップデートされバージョンが変わるか分かりません。動作が安定しないことに注意が必要です。
➡️今後の展望
実際にAnsibleやTerraformのコードを用意してCloud Shellから実行してリソースの作成/削除をやってみたいです。
また、よく使うけど複雑/煩雑な処理、例えばcompute instanceのリストをcsv出力して特定のGitにコミットする ような処理をCloud Shellで実行するコマンドにしてみたいと思いました。
最後までお読みいただきありがとうございました。
🔗参考
- Cloud Shellからコンテナイメージ復旧コマンドを実行する記事
【OCI】OCIRで消してしまったイメージを48時間以内に取り戻す - AWSのCloud Shellについて書かれた記事
AWSでLinuxベースのCLIをお手軽に使いたい