開始
このトピックでは、Oracle Cloud Infrastructure (OCI) Ansibleコレクションの使用を開始する方法について説明します。OCI 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のインストール 🔗
- SDK for Pythonというトピックの指示に従い、SDK for Pythonをダウンロードしてインストールします。その他のガイダンスは、SDKのダウンロードとインストールを参照してください。
- SDK for Pythonをインストールしたら、SDKの構成のトピックの指示に従って構成する必要があります。
Ansibleのインストールと構成 🔗
- Ansibleをインストールするには、Ansible Installation Guideの指示に従います。
- Ansibleの構成のガイダンスは、Configuring 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資格証明がロールに含まれていないことを確認します。