開始

このトピックでは、Oracle Cloud Infrastructure (OCI) Ansibleコレクションの使用を開始する方法について説明します。OCI Ansibleコレクションによって、従来のAnsibleモジュールが置き換えられました。

ノート

従来のAnsibleモジュールを現在使用しているが、コレクションの使用を開始したい場合は、移行ガイドを参照してください。

OCIでAnsibleの使用を開始するには、前提条件を満たしていることを確認してから、yumを使用するか手動でAnsibleコレクションをインストールします。

ヒント

リソース・マネージャを使用して、コンパートメントのコンピュート・インスタンスにOracle Cloud Development Kitを事前インストールできます。Oracle Cloud Development Kitには、Ansible、OCI Ansibleコレクションおよびその依存関係が含まれ、必要な認可が事前構成されています。

AnsibleとAnsibleコレクションは、両方ともクラウド・シェルに事前インストールされ、事前認証されています。

Oracle Cloud InfrastructureでAnsibleを使用するための前提条件

  • Oracle Cloud Infrastructureアカウントが必要です。
  • そのアカウントのユーザーを、アカウントのコンパートメントのリソースの操作に必要な権限を付与するポリシーがあるセキュリティ・グループに含めます。ガイダンスは、ポリシーの仕組みを参照してください。
  • 必要な資格証明およびOCIDの情報が必要です。

Yumを使用したAnsibleコレクションのインストール

Oracle Linux 7またはOracle Linux 8を実行している場合は、yumを使用してOracle Cloud Infrastructure AnsibleコレクションRPMをインストールできます。

AnsibleコレクションRPMでは、OCI Ansibleコレクションとそれに必要な依存関係(OCI SDK for PythonおよびAnsible)がインストールされます。

ノート

このインストールは、Pythonバージョン3.6およびAnsibleバージョン2.9以降を使用します。

次のコマンドのいずれかを使用して、Oracle Linux開発者リポジトリを有効にし、ご使用のOracle Linuxのバージョンに応じてAnsibleコレクションRPMをインストールします。

Oracle Linux 7:

yum install -y oci-ansible-collection --enablerepo ol7_developer --enablerepo ol7_developer_EPEL

Oracle Linux 8:

yum install -y oci-ansible-collection --enablerepo ol8_developer --enablerepo ol8_developer_EPEL

RPMをインストールした後で、認証の構成の説明に従って、SDKおよびCLI構成ファイルを構成する必要があります。

インストールのテスト

RPMのインストールとSDKの構成をテストするには、サンプルのAnsibleプレイブックを実行できます。

Oracle Linux 7を使用している場合は、次のコマンドを使用してインストールをテストします:

ansible-3 localhost -m oracle.oci.oci_object_storage_namespace_facts

Oracle Linux 8を使用している場合は、次のコマンドを使用してインストールをテストします:

ansible localhost -m oracle.oci.oci_object_storage_namespace_facts

手動インストール

Oracle Cloud Infrastructure SDK for Pythonのインストール

  1. SDK for Pythonというトピックの指示に従い、SDK for Pythonをダウンロードしてインストールします。その他のガイダンスは、SDKのダウンロードとインストールを参照してください。
  2. SDK for Pythonをインストールしたら、SDKの構成のトピックの指示に従って構成する必要があります。

Ansibleのインストールと構成

ノート

OCI AnsibleコレクションではAnsibleバージョン2.9以降が必要です。以前のバージョンのAnsibleを使用している場合は、従来のモジュールのドキュメントを参照してください。

Oracle Cloud Infrastructure Ansibleコレクションのインストール

次のコマンドを使用して、Ansible GalaxyからOCI Ansibleコレクションをインストールします:

$ ansible-galaxy collection install oracle.oci

コレクションをすでにインストールしている場合は、--forceフラグをコマンドに追加することで、コレクションのモジュールを最新バージョンに更新できます。例:

$ ansible-galaxy collection install --force oracle.oci

サンプル・プレイブック

サンプル・プレイブックは、Oracle Cloud Infrastructure AnsibleコレクションGitHubプロジェクトで入手できます。サンプル・ライブラリは、定期的に新しいサンプルが追加されて更新されています。詳細は、Ansibleプレイブックの例を参照してください。

サンプル・プレイブックの記述

インストールが完了した後で、またはクラウド・シェルを使用している場合に、Ansibleモジュールを使用するサンプル・プレイブックを作成できます。次に示すプレイブックの例(list_buckets.yml)は、oci_bucket_factsモジュールを使用して、コンパートメントのバケットに関連する事実をフェッチします。

---
- name : List summary of existing buckets in OCI object storage
  collections:
    - oracle.oci
  connection: local
  hosts: localhost
  tasks:
    - name: List bucket facts
      oci_object_storage_bucket_facts:
         namespace_name: '<yournamespace>'
         compartment_id: '<yourcompartmentocid>'
      register: result
    - name: Dump result
      debug: 
        msg: '{{result}}'

プレイブックの実行

次のコマンドを呼び出して、Pythonを使用してAnsibleプレイブックを実行します:

$ ansible-playbook list_buckets.yml

モジュール・ドキュメントの取得方法

Ansibleモジュールの使用方法の詳細は、docs.oracle.comおよびreadthedocs.ioを参照してください。

CLIでのAnsibleモジュールの使用に関する詳細情報にアクセスするには、モジュールの名前に対してansible-docコマンドを使用します。たとえば、oci_object_storage_bucket_factsモジュールのドキュメントを取得するには、次のコマンドを実行します:

$ ansible-doc oracle.oci.oci_object_storage_bucket_facts

認証の構成

Oracle Cloud Infrastructureリソースを作成および構成するとき、Ansibleモジュールでは、SDKおよびCLIの構成ファイルに示されている認証情報を使用します。

注意

Oracle Cloud Infrastructure SDK構成ファイルで参照されるユーザー資格証明によって、Oracle Cloud Infrastructureリソースへのアクセス権が付与されます。そのため、これらのリソースへの不正アクセスを防ぐために、資格証明を保護することが重要です。Ansibleプレイブックが実行されるコントローラ・ノード上の資格証明を保護するには、IAMの保護で説明されているガイドラインに従います(「IAM資格証明」の項を参照)。

Ansibleモジュールでは、モジュール・オプションと環境変数を使用して、SDK構成ファイルに指定された認証情報をオーバーライドできます。認証オーバーライドのドキュメントは、モジュール・ドキュメントの取得方法で説明されているように、内部で提供されます。ただし、環境変数およびAnsibleモジュール・オプションを使用した認証情報のオーバーライドは、本番シナリオでは避ける必要があります。

認証情報の指定にはOracle Cloud Infrastructure SDK構成ファイルの使用をお薦めします。複数のユーザーをサポートするには、SDK構成ファイルで「プロファイル」機能を使用します。Ansibleモジュールを使用するロールを配布するときは、IAM資格証明がロールに含まれていないことを確認します。