Ansible-introduction
Ansible-はじめに
*Ansible* は、アプリケーションの展開、イントラサービスオーケストレーション、クラウドプロビジョニング、および他の多くのITツールを自動化するシンプルなオープンソースITエンジンです。
Ansibleは、エージェントやカスタムセキュリティインフラストラクチャを使用しないため、簡単に展開できます。
Ansibleはプレイブックを使用して自動化ジョブを記述し、プレイブックは非常にシンプルな言語を使用します。 YAML (人間が読めるデータシリアル化言語であり、一般に構成ファイルに使用されますが、データが保存されている多くのアプリケーションで使用できます)。これは人間にとって非常に簡単に理解、読み取り、書き込みできます。 したがって、利点は、ITインフラストラクチャのサポート担当者でさえ、プレイブックを読んで理解し、必要に応じてデバッグできることです(YAML –人間が読める形式です)。
Ansibleは、多層展開向けに設計されています。 Ansibleは一度に1つのシステムを管理するのではなく、すべてのシステムが相互に関連していることを記述することでITインフラストラクチャをモデル化します。 Ansibleは完全にエージェントレスです。つまり、Ansibleはsshを介してノードを接続することで機能します(デフォルト)。 ただし、Kerberosなどの他の接続方法が必要な場合は、Ansibleがそのオプションを提供します。
ノードに接続した後、Ansibleは「Ansible Modules」と呼ばれる小さなプログラムをプッシュします。 Ansibleはそのモジュールをノード上で実行し、終了したら削除します。 Ansibleは、単純なテキストファイル(これらはホストファイルです)でインベントリを管理します。 Ansibleはホストファイルを使用して、ホストをグループ化し、プレイブック内の特定のグループに対するアクションを制御できます。
サンプルホストファイル
これは、ホストファイルの内容です-
#File name: hosts
#Description: Inventory file for your application. Defines machine type abc
node to deploy specific artifacts
# Defines machine type def node to upload
metadata.
[abc-node]
#server1 ansible_host = <target machine for DU deployment> ansible_user = <Ansible
user> ansible_connection = ssh
server1 ansible_host = <your host name> ansible_user = <your unix user>
ansible_connection = ssh
[def-node]
#server2 ansible_host = <target machine for artifact upload>
ansible_user = <Ansible user> ansible_connection = ssh
server2 ansible_host = <host> ansible_user = <user> ansible_connection = ssh
構成管理とは
Ansibleの観点からの構成管理とは、企業のハードウェアとソフトウェアを記述する詳細情報を記録して更新することにより、製品のパフォーマンスの構成を維持することを意味します。
通常、このような情報には、インストールされているソフトウェアパッケージに適用された正確なバージョンと更新、ハードウェアデバイスの場所とネットワークアドレスが含まれます。 例えば エンタープライズに存在するすべてのマシンに WebLogic/WebSphere サーバーの新しいバージョンをインストールする場合、手動で各マシンを更新することは現実的ではありません。
最も簡単な方法で記述されたAnsibleプレイブックとインベントリを使用して、すべてのマシンにWebLogic/WebSphereを一度にインストールできます。 必要なことは、インベントリ内のノードのIPアドレスをリストし、プレイブックを作成してWebLogic/WebSphereをインストールすることだけです。 コントロールマシンからプレイブックを実行すると、すべてのノードにインストールされます。
Ansibleの仕組み
以下の図は、Ansibleの動作を示しています。
- Ansibleは、ノードに接続し、「 Ansible モジュール」と呼ばれる小さなプログラムをノードにプッシュすることで機能します。 Ansible はこれらのモジュールを実行し(デフォルトではSSHを介して)、完了したら削除します。 モジュールのライブラリは任意のマシンに常駐でき、サーバー、デーモン、またはデータベースは必要ありません。
上の図の管理ノードは、プレイブック全体の実行を制御する制御ノード(管理ノード)です。 これは、インストールを実行しているノードです。 インベントリファイルは、Ansibleモジュールを実行する必要があるホストのリストを提供し、管理ノードはSSH接続を行い、ホストマシンで小さなモジュールを実行し、製品/ソフトウェアをインストールします。
Ansibleの Beauty は、インストールされたモジュールを削除してホストマシンに効果的に接続し、命令を実行し、正常にインストールされた場合、実行されたホストマシンにコピーされたコードを削除することです