Ansible について聞いたことはありますが、それが何なのかよくわかりませんか?心配しないでください。Ansible については次の 5 分で説明します。

アンシブルとは何ですか?
Ansible は、構成管理、展開、プロビジョニングなどのビジネスに役立つオープンソースの DevOps ツールです。展開は簡単です。 SSH を利用してサーバー間の通信を行います。 Playbook を使用して自動化ジョブを記述し、Playbook は非常に単純な言語 YAML を使用します。
Ansible は、IT インフラストラクチャに信頼性、一貫性、拡張性を提供します。 Ansible を使用すると、データベース、ストレージ、ネットワーク、ファイアウォールの構成を自動化できます。アプリケーションを実行するために必要なすべてのパッケージとその他すべてのソフトウェアがサーバー上で一貫していることを確認します。
例を挙げてみましょう。ビジュアル C++ 上に構築されたアプリケーションのデバッグ バージョンを入手しました。そのアプリケーションをコンピュータ上で実行する場合は、Microsoft Visual C++ ライブラリ DLL などのいくつかの前提条件を満たす必要があり、コンピュータに Visual C++ がインストールされている必要があります。つまり、これは、アプリケーションがテスト環境でも本番環境でも、すべての環境でスムーズに実行できるように、Ansible がこれらすべての基本パッケージとすべてのソフトウェアがコンピューターにインストールされていることを確認する部分です。
また、アプリケーションのすべての履歴データも保持されるため、前のバージョンにロールバックしたり、アップグレードしたりしたい場合はいつでも簡単に行うことができます。
次の機能のいくつかを見てみましょう。
エージェントレス – これは、パペットやシェフなどの他のソリューションのように、ノードを管理するソフトウェアやエージェントが存在しないことを意味します。
Python – 高速で今日の世界で最も堅牢なプログラミング言語の 1 つである Python をベースに構築されています。
SSH – 安全で非常にシンプルなパスワード不要のネットワーク認証プロトコル。したがって、あなたの責任はこのキーをクライアントにコピーすることです
プッシュ アーキテクチャ – 必要な構成をクライアントにプッシュします。あなたがしなければならないのは、それらの構成 (プレイブック) を書き留めて、それらをすべて一度にノードにプッシュすることだけです。変更を数分で数千台のサーバーにプッシュすることがいかに強力であるかがわかります。
セットアップ – 動作させるために必要な最小限の要件と構成。

Ansible アーキテクチャ
Linux サーバーである パブリック/プライベート クラウド から始めましょう。また、すべての IT インストールと構成のリポジトリとしても機能します。
上記のアーキテクチャには、Ansible サーバーが接続し、SSH 経由で Playbook をプッシュする ホスト マシンが多数あります。
これには、ユーザーがホストにデプロイされるプレイブックを直接実行できる Ansible 自動化エンジン があります。 Ansible 自動化エンジンには複数のコンポーネントがあります。 1 つ目は ホスト インベントリ です。これは、すべてのホストのすべての IP アドレスのリストです。
次に、 モジュールが あります。 Ansible には何百もの組み込みモジュールが付属しており、モジュールはプレイブックの実行時に実行されるコードの一部です。プレイブックにはプレイが含まれ、プレイにはさまざまなタスクが含まれ、タスクにはモジュールが含まれます。
プレイブックを実行するとき、ホスト上で実行されるのはモジュールであり、これらのモジュールにはアクションが含まれています。したがって、プレイブックを実行すると、それらのアクションがホスト マシン上で実行されます。カスタムモジュールを作成することもできます。数行のコードを書いてモジュールにするだけで、いつでも実行できます。
次に、アーキテクチャには Playbook があります。ここでのプレイブックは、実際にワークフローを定義します。プレイブックに記述したタスクは、記述したのと同じ順序で実行されるためです。たとえば、最初にパッケージをインストールしてから開始するように記述した場合、同じことが行われます。 Playbook は YAML コードを非常に簡単に作成できます。 YAML コードは非常に単純なデータシリアル化言語です。かなり英語に似ています。
次に、アーキテクチャには プラグイン があります。ここでのプラグインは特別な種類のモジュールです。これらのプラグインは、モジュールがノード上で実行される前に実行されます。プラグインは、ログ記録の目的でメイン制御マシン上で実行されます。コールバック プラグインを使用すると、表示やロギングの目的でさまざまな Ansible イベントにフックできるようになります。キャッシュ プラグインは、コストのかかるファクト収集操作を回避するためにファクトのキャッシュを保持するために使用されます。 Ansible にはフロントエンド モジュールであるアクション プラグインもあり、モジュール自体を呼び出す前にコントローラー マシン上でタスクを実行できます。
アーキテクチャには接続プラグインがあります。ホスト マシンとの接続に SSH を使用する必要は必ずしもありません。接続プラグインを使用することもできます。たとえば、ansible では Docker コンテナ接続プラグインが提供されており、その接続プラグインを使用すると、すべての Docker コンテナに簡単に接続して、すぐに構成を開始できます。
以上がアーキテクチャに関するすべてでした。次に、それが具体的にどのように機能するかを説明しましょう。

Ansible はどのように機能するのか?

Ansible は、ノードに接続し、Ansible モジュールと呼ばれる小さなプログラムをプッシュすることで機能します。 Ansible は、デフォルトで SSH 経由でこれらのモジュールを実行し、完了したら削除します。
Ansible 管理ノードは制御ノードであり、Playbook の実行全体を制御します。これはインストールを実行するノードであり、インベントリ ファイルにはモジュールを実行する必要があるホストのリストが提供されます。管理ノードは ssh 接続を確立し、ホスト マシン上でモジュールを実行して製品をインストールします。モジュールがインストールされると、モジュールが削除されます。これが ansible の仕組みです。
次に、Ansible をインストールして構成する方法を学習することに興味があるかもしれません。
結論
Ansible についてのアイデアを理解していただければ幸いです。 Ansible は、インフラストラクチャの管理方法に大きな変革をもたらします。システム管理者または開発者は、この 実践的なトレーニングを チェックしてスキルを向上させることができます。