Ansible は、実際に機能する最もシンプルなデプロイメント ツールとなるように設計されています。これは、完全なプログラミング言語ではないことを意味します。タスクを定義し、自動化する必要があるタスクをリストする YAML テンプレートを作成する必要があります。 |
クラウドでは、Ansible はコントロール プレーンとインスタンス リソースという 2 つの独立したレベルで動作できます。コントロール プレーンは、オペレーティング システム上で実行されていないすべてのもので構成されます。これには、ネットワークのセットアップ、新しいインスタンスの作成、Amazon の S3 や DynamoDB などの高レベルのサービスのプロビジョニングなど、クラウド インフラストラクチャを安全に保ち、顧客にサービスを提供するために必要なすべての作業が含まれます。
インスタンスでの作業は、Ansible で実行できることはすでにご存知のとおりです。サービスの開始と停止、構成ファイルのテンプレート化、パッケージのインストール、および SSH 経由のオペレーティング システム関連のすべての操作です。
さて、サービスレスとは何でしょうか?サーバーレスは、パブリック クラウドの無限の拡張であるか、すべてが API 呼び出しでありこれまでに行われたことのない完全に新しいパラダイムであるかは、質問者によって異なります。
Ansible が最初のビューを取得します。 「サービスレス」が専門用語になる前は、ユーザーは EC2 インスタンス、仮想プライベート クラウド (VPC) ネットワーク、その他すべてを管理および構成する必要がありました。 Serviceless はマネージド サービスの方向へのもう 1 つのステップであり、Ansible のエージェントレス アーキテクチャとうまく連携します。
Lambda の例を開始する前に、簡単な構成の CloudFormation スタック タスクを見てみましょう:
リーリーこのようなタスクの作成には数分しかかかりませんが、これはインフラストラクチャの構築に関わる最後の半手動ステップです。[スタックの作成] をクリックすると、プレイブックが他のものとまとめられます。 VPC は、新しいリージョンを設定するときに呼び出されるもう 1 つのタスクにすぎません。
クラウドプロバイダーはアカウント内で何が起こっているかに関する真実の情報源であるため、Ansible には、ID、名前、その他のパラメーターを使用して、実行中のインスタンスまたはネットワークを取得、フィルタリング、クエリするためのさまざまな方法があります。 Cloudformation_facts モジュールを例にとると、作成したばかりのテンプレートからサブネット ID、ネットワーク範囲、その他のデータを取得できます。
リーリーサーバーレス アプリケーションの場合、DynamoDB テーブル、S3 バケット、その他に加えて Lambda 関数が必ず必要になります。幸いなことに、lambda モジュールを使用すると、前のタスクのスタックと同じ方法で Lambda 関数を作成できます。 リーリー
サーバーレス アプリケーションの配信に使用したい他のツールがある場合は、これも可能です。オープンソースのサーバーレス フレームワークには、同様に機能する独自の Ansible モジュールがあります。 リーリー必要なのはこれだけではありません。サーバーレス プロジェクトも存在する必要があり、そこで関数とイベント ソースを厳密に定義します。この例では、HTTP リクエストに応答する関数を作成します。サービスレス フレームワークは構成言語として YAML を使用するため (Ansible など)、これには見覚えがあるはずです。
リーリーAnsibleFest では、この例と、既存のプレイブックとインフラストラクチャ、および新しいサーバーレスの実践を最大限に活用するためのその他の詳細なデプロイメント戦略について説明します。そこに到達できるかどうかに関係なく、管理するサービスがあるかどうかに関係なく、これらの例が Ansible の使用を開始するきっかけになれば幸いです。
AnsibleFest は、数百の Ansible ユーザー、開発者、業界パートナーが集まる 1 日限りのカンファレンスです。製品の最新情報、刺激的な会話、技術的な詳細な説明、実践的なデモ、ネットワーキングなどを一日中お楽しみいただけます。
以上がAnsible を使用してサーバーレス アプリケーションのデプロイを自動化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。