Ansibleプレイブックの例
このトピックでは、Oracle Cloud Infrastructure (OCI)用のサンプルAnsibleプレイブックのカタログを示します。これらのサンプルでは、Ansibleコレクションを使用してインフラストラクチャの一般的なプロビジョニングや構成のタスクを実行する方法が示されます。
これらのサンプルおよびソリューションは、OCIサービスに関連する項で構成されています。各プレイブックの簡単な説明と、Oracle GitHubリポジトリの各サンプルへのリンクを記載しています。その他の指示については、各プレイブックのルート・ディレクトリに含まれるReadme.md
ファイルを必ず確認してください。
Ansibleコレクションの使用を開始するには、開始を参照してください。
サンプル
ブロック・ボリューム
このサンプル・プレイブックは、iSCSIボリューム・アタッチメント・タイプを使用してコンピュート・インスタンスにブロック・ボリュームをアタッチし、iscsiadm
を使用してコンピュート・インスタンスに接続する方法を示します。このサンプルは、次の処理を行う方法を示しています:
- 一時的なホスト固有のSSHキー・ペアを生成します。
- インスタンスに接続するためにキー・ペアの公開キーを指定し、インスタンスを起動します。
- インスタンスで新しいブロック・ボリュームを作成し、そのボリュームをインスタンスにアタッチし、ボリューム・アタッチメント・タイプとしてiSCSIを指定します。
- Ansibleモジュールを使用してSSH経由で
iscsiadm
コマンドを実行することで、コンピュート・インスタンスからボリュームに接続してマウントします。
コンピュート
このサンプルは、app_catalogを使用してパブリック・コンピュート・インスタンスを起動し、OCI Ansibleコレクションを使用してSSHを介してインターネットからアクセスする方法を示します。
このサンプルは、次の処理を行う方法を示しています:
- 一時的なホスト固有のSSHキー・ペアを生成します。
- インスタンスの起動時にインスタンスに接続するために、そのキー・ペアから公開キーを指定します。
- app_catalogとそのバージョンをフェッチし、そのサブスクリプションを作成します。
- app_catalogを使用してインスタンスを起動し、SSHを使用して接続します。
このサンプルは、OCI Ansibleコレクションを使用して提供されるインスタンス構成やインスタンス・プールなどのリソースを使用して、コンピュート・インスタンスをどのように管理するかを示します。インスタンス・プールを使用すると、1つのインスタンス構成に基づいて同じリージョン内に複数のコンピュート・インスタンスを作成してプロビジョニングできます。
このサンプルは、次の処理を行う方法を示しています:
- 一時的なホスト固有のSSHキー・ペアを生成します。
- インスタンスの起動時にインスタンスに接続するために、そのキー・ペアから公開キーを指定します。
- コンピュート・インスタンスをインスタンス・プールの一部として作成するための設定を定義するインスタンス構成を作成します。この構成で、ベース・イメージ、シェイプ、メタデータなどの詳細を指定します。
- インスタンス・プールを使用し、インスタンス構成に基づいてコンピュート・インスタンスを起動します。
- SSHを使用してコンピュート・インスタンスの1つに接続します。
このサンプルは、コンピューティング・インスタンスに対してシリアルおよびVNCコンソール接続を作成する方法と、OCI Ansibleコレクションを使用して、コンピュート・インスタンスからシリアル・コンソール・データを取得およびフェッチする方法を示します。コンソール接続の詳細は、インスタンス・コンソール接続を使用したインスタンスのトラブルシューティングを参照してください。
このサンプルは、次の処理を行う方法を示しています:
- シリアル・コンソール接続のために一時SSHキー・ペアを生成します。
- コンピュート・インスタンスにインスタンスのコンソール接続を作成します。
- コンピュート・インスタンスのシリアル・コンソール・データを取得してから、問題のトラブルシューティングとデバッグを行えるように、そのデータをローカル・マシンに保存します。
このサンプルでは、OCI Ansibleコレクションを使用して、パブリック・サブネットのNAT Gatewayを使用して、プライベート・サブネット内のコンピュート・インスタンスからのインターネット・アクセスを有効にする方法を示します。NATゲートウェイの詳細は、NATゲートウェイおよびOracle Cloud Infrastructure NAT Gatewayを使用したパブリック・インターネットのリソースへのアクセスを参照してください。
このサンプルは、次の処理を行う方法を示しています:
- VCN、NATゲートウェイ、インターネット・ゲートウェイ、パブリック・サブネットとプライベート・サブネット、および必要なセキュリティ・リストとルート・ルールを設定します。
- パブリック・サブネットの要塞インスタンス、およびプライベート・サブネットのプライベート・インスタンスをプロビジョニングします。
設定されると、プライベート・インスタンスがNATゲートウェイを介したアウトバウンド・インターネット・アクセスに対応できるようになり、要塞インスタンスからSSHを使用してプライベート・インスタンスにアクセスできます。
このサンプルは、OCI Ansibleコレクションを使用して、パブリック・サブネットのNATインスタンスによってプライベート・サブネットのコンピューティング・インスタンスからインターネット・アクセスを有効にする方法を示します(こちらとここのホワイトペーパーの説明を参照してください)。
このサンプルは、次の処理を行う方法を示しています:
- VCN、インターネット・ゲートウェイ、パブリック・サブネットとプライベート・サブネット、必要なセキュリティ・リストとルート・ルールを作成して、ホワイトペーパーに記載されているトポロジを設定します。NATインスタンスはパブリック・サブネットにプロビジョニングされ、プライベート・インスタンスはプライベート・サブネットにプロビジョニングされます。
- 設定後、プライベート・インスタンスは、パブリック・サブネット内のNATインスタンスを介したアウトバウンド・インターネット・アクセスに対応します。
このサンプル・プレイブックは、OCI Ansibleコレクションを使用して、サービス・ゲートウェイを使用して、コンピュート・インスタンスからオブジェクト・ストレージへのプライベート・アクセスを有効にする方法を示します。サービス・ゲートウェイの詳細は、Oracleサービスへのアクセス: サービス・ゲートウェイを参照してください。サービス・ゲートウェイを使用したコンピュート・インスタンスへの接続方法を説明するブログ記事、Oracle Cloud Infrastructure Service Gatewayを介したプライベート・インスタンスとOracleサービスの接続を参照してください。
このサンプルは、次の処理を行う方法を示しています:
- バケットの管理に必要なユーザー、グループおよびポリシーを設定します。
- 必要なAPIキーを作成し、ユーザーにアップロードします。
- VCN、NATゲートウェイ、インターネット・ゲートウェイ、パブリック・サブネットとプライベート・サブネット、および必要なセキュリティ・リストとルート表を設定します。要塞インスタンスはパブリック・サブネットにプロビジョニングされ、プライベート・インスタンスはプライベート・サブネットにプロビジョニングされます。
- プライベート・サブネットでコンピュート・インスタンスをプロビジョニングします。
- OCIコマンドライン・インタフェース(CLI)をインストールし、クラウドの初期化スクリプトを使用してCLIを構成します。
- NATゲートウェイを無効にして、プライベート・インスタンスへのパブリック・アクセスを制限します。
- OCI CLIを使用してプライベート・インスタンスからバケットを作成し、バケットが作成されたことを確認します。
この設定の後、プライベート・インスタンスはオブジェクト・ストレージにプライベート・アクセスできます。
Kubernetes Engine
このサンプルでは、OCI Ansibleコレクションを使用して、Oracle Cloud Infrastructure Kubernetes Engine (OKE)でクラスタを作成します。
このサンプルは、次の処理を行う方法を示しています:
- OKEクラスタの設定に必要なVCNおよび関連リソースを作成して構成します。
- クラスタを作成します。
- ノード・プールを作成します。
- クラスタのkubeconfigファイルをダウンロードします。
データベース
このサンプルは、OCI Ansibleコレクションを使用して、Always Free Autonomous Databaseとトランザクション処理および混合ワークロード用のAutonomous Databaseを構築し、そのライフサイクルを管理する方法を示します。詳細は、Autonomous Databaseを無料で使用を参照してください。
このサンプルは、次の処理を行う方法を示しています:
- Autonomous Databaseとトランザクション処理および混合ワークロード用のAutonomous Databaseを設定します。
- コンパートメントで使用可能なトランザクション処理および混合ワークロード用のAutonomous Databaseインスタンスのすべてを表示名でフィルタリングしてリストします。
- 指定されたデータベースの「ファクト」を取得します。
- Autonomous Databaseを停止して起動します。
- Autonomous Databaseを削除します。
このサンプルは、OCI Ansibleコレクションを使用して、Autonomous Databaseとトランザクション処理および混合ワークロード用のAutonomous Databaseを組み合わせて作成し、そのライフサイクルを管理する方法を示します。詳細は、Autonomous Database for トランザクション処理 and Mixed Workloadsを参照してください。
このサンプルは、次の処理を行う方法を示しています:
- Autonomous Databaseとトランザクション処理および混合ワークロード用のAutonomous Databaseを設定します。
- コンパートメントで使用可能なトランザクション処理および混合ワークロード用のAutonomous Databaseインスタンスのすべてを表示名でフィルタリングしてリストします。
- 指定されたデータベースの「ファクト」を取得します。
- Autonomous Databaseを停止して起動します。
- Autonomous Databaseを削除します。
このサンプルは、OCI Ansibleコレクションを使用してDB Systemを作成する方法を示しています。OCIの共同管理DBシステムの詳細は、ベア・メタルおよび仮想マシン・データベース・システムについてに関する項を参照してください。
このサンプルは、次の処理を行う方法を示しています:
- 仮想マシンDBシステムを設定します。
- 特定のDBシステムのファクトを取得し、使用可能なDBホームをリストします。
- 指定したDBホームで使用可能なすべてのデータベースをリストし、特定のデータベースのファクトを取得します。
- 指定したDBシステムのDBノードのVNIC情報を収集します。
- VNICからDBノードのパブリックIPおよびプライベートIPを抽出します。
- 初期データベースからバックアップを作成します。
- 最新のバックアップからデータベースをリストアします。
- バックアップから新規データベースを作成します。
- データベース・フィールドを更新します。
ファイル・ストレージ
このサンプルは、OCI Ansibleコレクションを使用して、コンピュート・インスタンスを介してファイル・ストレージ・ファイル・システムを作成し、アクセスする方法を示します。
このサンプルは、次の処理を行う方法を示しています:
- ファイル・ストレージに必要な構成ですべてのネットワーク関連の依存関係(VCNやサブネットなど)およびセキュリティ・リストを生成します。
- インスタンスに必要な証明書を生成します。
- マウント・ターゲット、ファイル・システム、エクスポート、スナップショットなどのファイル・ストレージ・コンポーネントを作成します。
- コンピュート・インスタンスを介してファイル・システムをマウントし、別のコンピュート・インスタンスを介してそのコンテンツにアクセスします。
このサンプルは、OCI Ansibleコレクションを使用して、2つの異なるマウント・ターゲットの2つの異なるエクスポート・パスによって1つのファイル・システムをインポートする方法を示します。これは、1つのマウント・ターゲットが、2つの異なるファイル・システムのパスをエクスポートする方法も示しています。
このサンプルは、次の処理を行う方法を示しています:
- ファイル・ストレージに必要な構成ですべてのネットワーク関連の依存関係(VCNやサブネットなど)およびセキュリティ・リストを生成します。
- インスタンスに必要な証明書を生成します。
- マウント・ターゲット、ファイル・システム、エクスポート、スナップショットなどのファイル・ストレージ・コンポーネントを作成します。
- 1つのファイル・システムを2つの異なるマウント・ターゲットにエクスポートします。
- 1つのマウント・ターゲットのパスを2つの異なるファイル・システムにエクスポートします。
- コンピュート・インスタンスを介してファイル・システムをマウントします。
アイデンティティ
このサンプルは、OCI Ansibleコレクションを使用して、Oracle Cloud Infrastructure Identity and Access Management (IAM)の基本タスクを実行する方法を示します。このサンプルでは、OCI構成で構成されているデフォルト・ユーザーが、管理者グループに属するか、ユーザー、グループ、ポリシーを管理するために必要なアクセス権を持っていると想定されます。
このサンプルは、次の処理を行う方法を示しています:
- 新規グループを作成します。
- ポリシーを作成します。
- ユーザーを作成してグループおよびポリシーに追加します。
- ユーザー・パスワードを作成します。
- SSHキーを生成してユーザーに割り当てます。
ロード・バランシング
このサンプルは、OCI Ansibleコレクションを使用して、パブリック・ロード・バランサを作成する方法を示します。
このサンプルは、次の処理を行う方法を示しています:
- すべてのネットワーク関連の依存関係(VCNやサブネットなど)を生成します。
- ロード・バランサに必要な証明書を生成します。
- パブリック・ロード・バランサを作成します。
ネットワーキング
このサンプルは、OCI Ansibleコレクションを使用して、異なる可用性ドメインの2つのプライベート・サブネットを含む仮想クラウド・ネットワーク(VCN)とサイト間VPNをプロビジョニングする方法を示します。サイト間VPNでは、動的ルーティング・ゲートウェイ(DRG)、顧客構内機器(CPE)およびIPSec接続を使用します。プロビジョニングされたリソースは、このネットワーキング・シナリオの図に示されています。
このサンプルは、次のリソースをプロビジョニングする方法を示します:
- VCN
- 2つのプライベート・サブネット
- 動的ルーティング・ゲートウェイ
- 顧客構内機器
- DRGとCPE間のIPSec接続
最後に、IPSec接続の構成情報とステータスが取得されます。
オブジェクト・ストレージ
このサンプル・プレイブックは、OCI Ansibleコレクションを使用して、オブジェクト・ストレージのテナンシ・ネームスペースを取得する方法を示します。
このサンプル・プレイブックは、OCI Ansibleコレクションを使用して、ネームスペース内のすべてのバケットからすべてのオブジェクト・ストレージ・オブジェクトをリストする方法を示します。
このサンプル・プレイブックは、OCI Ansibleコレクションを使用して、ネームスペース内のすべてのバケットから、指定した日数の範囲内に作成されたオブジェクトを削除する方法を示します。サンプルを変更して、指定した日数よりも古いオブジェクトが削除されるようにできます。これは、オブジェクト・ストレージ・サービスに格納されている古いまたは不要なオブジェクトを取り除く際に役立ちます。
ソリューション
MuShop
MuShopは、統合参照アプリケーションに含まれる複数のOracle Cloud Infrastructure (OCI)サービスのショーケースです。このサンプル・アプリケーションは、マイクロサービスのセットとして構築されたE-Commerceプラットフォームを実装しています。付属のコンテンツを使用して、OCIでクラウド・ネイティブ・アプリケーション開発を開始できます。
MuShopは、各自のサブスクリプションに基づいてOCIを調べる様々な方法でデプロイできます。OCIは、無期限に使用できるリソースを含むAlways Free層を提供します。
このプロジェクトでは、OCI Ansibleコレクションを使用してOCIインフラストラクチャを構築する方法の一例を示します。