[OCI]Oracle Ansibleモジュールの最新情報とTerraformとの比較 (2020/09/01)
Oracle Ansibleモジュールの最新情報とTerraformとの比較 (2020/09/01)
https://blogs.oracle.com/cloud-infrastructure/latest-updates-on-oracle-ansible-modules-and-comparison-with-terraform
投稿者:Gaurav Jain | Product Lead, Developer Experience
本日は、Oracle Cloudリソースの管理にAnsibleを使用する2つの理由をご紹介します。
- Ansible のサポートがすべての Oracle Cloudリソースに拡張されました。
- Oracle Ansible Collectionは一般的に利用可能です。
AnsibleとAnsibleモジュール
Ansibleは、インフラストラクチャリソースのプロビジョニングと設定を簡単に行う方法を提供する、
Infrastructure-as-code自動化ツールです。
Ansible モジュールは、Oracle などのプロバイダが提供する個別のコード単位です。
これらのモジュールをコマンドラインから、またはターゲット・ノード上のプレイブック・タスクで実行して、
必要なプロバイダ固有のインフラストラクチャの変更を行うことができます。
Ansible を使うべきか?それともTerraformを使うべきか?
答えは... はい。真面目な話、まずこの 2 つのツールを比較してみましょう。
Ansible | Terraform | |
---|---|---|
タイプ | 主に構成管理ですが、オーケストレーションも行うことができます | オーケストレーション |
インフラストラクチャ | 可変 | 不変 |
言語 | 手続き型 | 宣言型 |
ステート管理 | No | Yes |
タイプ
Terraformは強力なインフラストラクチャ・オーケストレーション・ツールですが、
Hashicorpが言うように、"Terraformは構成管理ツールではない"。
"Terraformは構成管理ツールではない" 一方、Ansibleは主にオーケストレーション機能を持つ構成管理ツールとしての役割を果たしています。
インフラストラクチャー
変形可能なインフラストラクチャでは、既存のインフラストラクチャを更新したり変更したりして、望ましい変更を行います。
人気のあるペット対牛のアナロジーでは、これらのインフラストラクチャのコンポーネントはあなたのペットです。
あなたはそれらと一緒に暮らし、それらに名前を付け、それらが成長するのを見ています。
不変のインフラストラクチャのパラダイムでは、既存のインフラストラクチャを変更することはありません。
変更をするには、それらを破壊して、新しいインフラストラクチャのセットを作成します。
彼らはあなたの家畜です。それらがある方法が好きでなければ、単に他のものとそれらを取り替えなさい。
言語
Terraform が宣言型言語に従うのに対し、Ansible モジュールは手続き型言語に従います。
違いを説明するために、例えば合計10個のcomputeインスタンスが必要だとします。
Terraformの場合、最終的なcomputeのカウントを10と宣言すると、その結果を処理してくれます。
最初に5つのインスタンスがあった場合、Terraformはさらに5つのインスタンスを生成します。
しかし、15個のインスタンスがあった場合は、5個を破棄します。
Ansibleでは、作成するインスタンスの正確な数を定義します。
そのため、10個のインスタンスが欲しい場合は、まず現在のインスタンス数を照会してから、
希望する新しいインスタンス数を尋ねます。
ステート管理
Terraform は環境の状態をステートファイルに保存しますが、Ansible には同等の概念がありません。
その代わり、インベントリ機能を使用して環境の状態をリアルタイムで取得します。
これらのツールには、次のような共通の特徴があります。
- どちらもオープンソースです。
- どちらコミュニティへの参加が強く、人気があります。
- どちらもプライマリ・レプリカ・アーキテクチャに従っていないため、管理ツールの管理に関連する苦痛が軽減されます。
どのツールを選択するかという最初の質問に戻りますが、答えは人それぞれです。
私たちは、お客様に要件を評価していただき、お客様のニーズとスキルセットに基づいて適切なツールを選択していただきます。
大まかに言って、私たちは2つのタイプのユーザーセグメントを観察してきました。
最初のタイプのお客様は、それぞれの強みを生かして両方のツールを併用しています。
彼らはTerraformを使用してインフラストラクチャをプロビジョニングし、Ansible Inventory機能を活用して構成を管理しています。
2 番目のタイプのお客様は、以下の理由から Ansible のみの使用を希望しています。
- 構成とオーケストレーションに単一のツールを使用して複雑さを最小限に抑えたい。
- Ansible は Python ベースである。
- ステートファイルを管理したくない。
適切なツールの選択については、当社が管理するTerraform-as-a-serviceである
Resource Managerも検討してみてはいかがでしょうか。
ステート管理のメリットに加えて、他のOracleクラウドサービスとのネイティブ連携、
ドリフト検出、リソースディスカバリーなどのメリットがあります。
Oracle Ansibleモジュールの新機能
ご質問ありがとうございます。2つの有用なユーザー・メリットを発表します。
すべてのOracle Cloudリソースに対するAnsibleサポート
Oracle Cloud の Ansible サポートを有効にしたのは 2 年前のことです。
それ以来、Oracle のお客様の間で Ansible の使用率が徐々に大幅に増加しています。
この成長は、Ansibleが最も好まれている構成管理ツールとなっている市場の幅広い傾向を反映しています。
これまでは、Oracle Cloudの一部のリソースのみをサポートしていましたが、お客様からの要望に応えて、
さらに多くのリソースをサポートしたいとの要望がありました。
Oracle CloudのすべてのリソースをAnsibleで管理できるようになりました。
サポートは、2020年6月までにリリースされるすべてのOracle Cloudのサービスと機能に対応しています。
今後も、リリースされるサービスや機能に応じてサポートを追加していきます。
Ansible Collectionは一般的に利用可能
昨年、AnsibleはAnsible 2.9リリースの一環としてCollectionsをリリースしました。
Ansible Collectionは、Oracle Cloudのリソースのプロビジョニングと管理を簡単に行う方法です。
本日、Oracle Cloud Infrastructure Ansible Collectionの提供開始を発表しました。
今回のリリースにより、Collectionのインストールと管理がはるかに簡単になりました。
新しいコレクションでは、多くのプラグインのコード共有の難しさや、プラグイン/ロール名の衝突など、その他の課題にも対応しています。
Oracle Cloud Ansible Collectionは、レガシーなOracle Cloud Ansibleモジュールに取って代わります。
レガシーモジュールの非推奨
新コレクションのリリースに伴い、レガシーのOracle Cloud Ansibleモジュールはメンテナンスモードでのみ利用可能となります。
新機能のサポートは追加していません。また、重要なバグのみを修正しています。
2021年半ば以降、レガシーモジュールは非推奨となります。
レガシーモジュールから新しいコレクションモジュールに移行する場合は、いくつかの破壊的な変更を期待してください。
移行を計画する際には、移行ガイドを参照してください。
インストール
以下のコマンドでAnsible GalaxyからOracle Cloud Collectionをインストールできます。
$ ansible-galaxy collection install oracle.occi
コレクションは Ansible 2.9+ でサポートされています。
モジュールを最新バージョンに更新するには、install --force フラグを使用します。
詳細な手順については、「Oracle Cloud Infrastructure と Ansible の入門」を参照してください。
コメント
コメントを投稿