システム管理者であれば、IT タスクを自動化する強力なツールである Ansible について聞いたことがあるでしょう。Ansible の用語を初めて知る場合でも、知識を磨きたい場合でも、ツールを効果的に使用するには、重要な用語と概念を理解することが重要です。
このガイドでは、Ansible とその用語について、その起源から最新の機能まで、わかりやすく説明します。重要な用語を理解しておけば、Ansible の機能を活用してすぐにワークフローを効率化できるようになります。
主要な取り組み




Ansibleの仕組み
アンシブルは 構成管理ツール アプリケーションとインフラストラクチャのプロビジョニングと展開を自動化します。 使いやすく拡張しやすいように設計されているため、複雑な展開を管理するための理想的なツールです。
Ansible はサーバーに接続することで機能します SSH 経由でそれらのサーバー上でタスクを実行します。
Ansible の主要用語を理解することは、自動化を習得し、IT タスクを楽々と効率化するための第一歩です。
Ansible は、SSH のようなリモート実行ツールと考えることができますが、重要な違いがいくつかあります。
- まず、Ansible は冪等になるように設計されています。つまり、タスクが複数回実行されても、毎回同じ結果になります。
- 次に、Ansible はエージェントレスです。つまり、Ansible が管理するサーバーにソフトウェアをインストールする必要はありません。
- 第 XNUMX に、Ansible は簡単に拡張できるように設計されています。 新しいテクノロジーやシステムのサポートを追加するために使用できる、コミュニティが開発したさまざまなモジュールがあります。
Ansibleの基本用語
主な Ansible 用語のいくつかを見ていきましょう。
プレイブック
Playbook は、Ansible の構成、デプロイ、およびオーケストレーション言語を表現したものです。 リモート システムに適用させたいポリシーや、一般的な IT プロセスの一連の手順を説明できます。
- 例: プレイブックは、複数のリモート ホストに Apache Web サーバーをインストールして構成するために使用される場合があります。プレイブックは、パッケージ マネージャーの更新、Apache のインストール、サービスの開始などのタスクを定義します。
- 使用事例: 開発環境内の複数のサーバーにわたる LAMP スタックのセットアップを自動化すると、一貫性が確保され、手動インストールに比べて時間が節約されます。
サーバー
Ansible で管理するリモート サーバーは、管理対象ホストと呼ばれます。 Ansible を管理マシンにインストールしたら、SSH を使用してリモート サーバーに接続します。
- 例: 定期的な更新が必要な Ubuntu サーバーのフリートがある場合、管理対象ホストはこれらのサーバーとなり、Ansible は SSH 経由でこれらのサーバーに接続して更新を実行します。
- 使用事例: 更新を自動的に適用するスケジュールされたプレイブックを実行して、管理対象ホストすべてをセキュリティ パッチで最新の状態に保ちます。
ターゲットマシン
Ansible が実行されるマシンは、コントロール ノードと呼ばれます。 ターゲット マシンは、仮想化されたシステムまたは物理システムです。
- 例: 開発者のラップトップまたは専用の自動化サーバーは、Ansible コマンドとプレイブックが実行される制御ノードとして機能します。
- 使用事例: 集中型のコントロール ノードは数百台のサーバーを管理できるため、アプリケーションの展開やシステム構成などの管理タスクを 1 か所で効率化できます。
仕事
タスクは、Ansible が実行する作業の単位です。 タスクはプレイに編成され、ターゲット マシンで実行されます。
- 例: タスクは、apt: name=nginx state=latest のようなパッケージのインストールや、サービスの再起動など、単純なものになる場合があります。
- 使用事例: NGINX のインストール、ファイアウォール ルールの設定、起動時にサービスが開始されることの確認など、複数のタスクを含む Web サーバーのセットアップを自動化します。
機械:
マシンは、Ansible が管理できる物理サーバーまたは仮想サーバーです。
- 例: マシンには、クラウドベースの仮想マシン (AWS EC2 インスタンスなど)、オンプレミス サーバー、さらにはネットワーク デバイスも含まれます。
- 使用事例: Ansible は、ハイブリッド クラウド環境で物理マシンと仮想マシンの混在を管理できるため、さまざまなインフラストラクチャ間で更新を簡単に展開できます。
モジュール
モジュール Ansible がターゲット マシンでタスクを実行するために使用する小さなコードです。
- 例: apt モジュールは Debian ベースのシステム上のパッケージを管理するために使用され、user モジュールはユーザー アカウントを作成または変更できます。
- 使用事例: 各タスクに適切なモジュールを利用して、ユーザーの作成、権限の設定、アプリケーション コードの展開などの日常的な管理タスクを自動化します。
役割
ロールは、複雑な環境を簡単にプロビジョニングするために使用できる、関連するタスクとサポート ファイルのコレクションです。
- 例: ロールには、データベースのインストール、ユーザーの作成、構成ファイルの設定など、MySQL などのデータベース サーバーをセットアップするために必要なタスク、テンプレート、変数が含まれる場合があります。
- 使用事例: ロールを使用して、開発、ステージング、本番などのさまざまな環境にわたって構成を標準化すると、一貫性が確保され、構成のドリフトのリスクが軽減されます。
Variables
変数は、プレイやタスクで参照できる値を格納するために使用されます。 変数は、Playbook、インベントリ ファイル、および変数ファイルで定義できます。
- 例: 変数には、nginx_version: '1.18.0' のように、インストールするソフトウェア パッケージのバージョンを保存でき、プレイブック全体で参照できます。
- 使用事例: 変数を使用して、プレイブックの構造を変更せずに開発環境と本番環境に異なる構成を設定するなど、デプロイメントをカスタマイズします。
プレイブックから変数まで、Ansible の用語を理解することで、自動化の取り組みが簡素化されます。
Ansible Playbook を理解する
Ansible Playbook は、リモート サーバーまたはサーバー グループで実行する必要があるアクションを定義する指示です。システムとアプリケーションを構成、展開、管理できます。Playbook は YAML 形式で記述されており、非常に読みやすく理解しやすいです。
Playbook は、ソフトウェアのインストール、サービスの構成、さらにはアプリケーション スタック全体の展開など、さまざまなタスクを実行できます。Playbook は通常、ansible-playbook コマンドを使用してコマンド ラインから実行されます。
Ansible プレイブックは非常に柔軟性が高く、多くのタスクを自動化するために使用できます。Ansible プレイブックの主な使用例を 5 つ紹介します。
- 設定管理
- ソフトウェアの導入
- 継続的インテグレーションとデリバリー
- アプリケーション オーケストレーション
- セキュリティとコンプライアンス
Ansible マシンとは何ですか?
Ansible マシンは基本的にソフトウェアで定義されたマシンであり、インフラストラクチャ全体のタスクを管理および自動化するために使用できます。 Ansible マシンは、既存の物理マシンまたは仮想マシンの上に構築され、インフラストラクチャを管理するための一貫した反復可能な方法を提供します。
通常、Ansible マシンは、サーバーのデプロイメント、プロビジョニング、および構成を管理するために使用されます。 また、アプリケーションの展開とオーケストレーションを自動化するためにも使用できます。 Ansible マシンは、Puppet、Chef、SaltStack などの他の DevOps ツールと一緒に使用されることがよくあります。
Ansibleマシンをセットアップする手順
Ansible マシンをセットアップする場合は、いくつかの作業を行う必要があります。
- まず、マシンに Ansible ソフトウェアをインストールする必要があります。 これは、apt や yum などのパッケージ マネージャーを使用して実行できます。
- Ansible をインストールしたら、インベントリ ファイルを作成する必要があります。 このファイルには、Ansible が管理するすべてのマシンが一覧表示されます。
- 次に、プレイブックを作成する必要があります。 これは、Ansible が実行する必要があるタスクのリストを含む YAML ファイルです。
- 最後に、プレイブックを実行するために ansible-playbook コマンドを実行する必要があります。
さまざまな種類のAnsibleマシン
Ansible マシンは、その機能に応じていくつかのタイプに分類されます。 最も一般的なタイプは、コントロール、リモート、およびターゲット マシンです。
- 制御機: コントロール マシンは、Ansible インフラストラクチャの中央ノードです。 ネットワーク内の他のすべてのマシンを管理するために使用されます。 コントロール マシンには、Ansible プロジェクト コードと Playbook のコピーが必要です。
- リモート マシン: リモートマシンとは、制御マシン以外のマシンのことです。リモートマシンは、制御マシンによって管理されます。 SSH.
- 対象マシン: ターゲット マシンは、Ansible によってプロビジョニングまたは設定されるリモート マシンです。 ターゲット マシンは、物理サーバー、仮想マシン、コンテナーなど、任意のタイプにすることができます。
Ansible タスクとは何ですか?
Ansible タスクは、ワークフローとプロセスを自動化するために使用できる小さなコードです。 タスクには、単純、複合、および条件付きの XNUMX つのタイプがあります。
- シンプル タスクは、特定のアクションを実行する XNUMX 行のコードです。
- 複雑なタスクは、複数のアクションを実行できる複数行のタスクです。
- 条件付きタスクは、特定の条件が満たされた場合にのみ実行されるタスクです。
Ansible でのハンドラーの使用
ハンドラーは、リモートサーバーで特定のアクションをトリガーする Ansible キーワードです。 通常、ハンドラーは通知ディレクティブに関連付けられており、タスクの状態が変化したときにハンドラーを実行するように Ansible に指示します。
たとえば、サービスを再起動するタスクがある場合、ハンドラーを使用して、タスクの状態が変化した場合にのみサービスを再起動することができます。 これにより、不要な再起動を回避し、リモート サーバーをスムーズに実行し続けることができます。
ハンドラーを作成するには、Ansible ハンドラー モジュールを使用する必要があります。 このモジュールを使用すると、ハンドラーの名前、実行するアクション、およびハンドラーを実行するリモート サーバーを指定できます。
一般的なAnsibleコマンド
Ansible コマンドは、Ansible でインフラストラクチャ管理を自動化するための基本的な構成要素です。 シンプルな Ansible コマンドまたはプレイブック (実行するホストとタスクのグループを定義する YAML ファイル) を実行することで、サーバーのデプロイメント全体をセットアップまたは解体することができます。
このために
いくつかの一般的なタスクに Ansible コマンドを使用する方法。
タスク 1: サービスの開始と停止
リモート サーバーでサービスを開始または停止する必要がある場合は、次のコマンドを使用できます。
$ ansible -m service -a “name= state=”
たとえば、リモート サーバーで Apache サービスを開始する必要がある場合は、次のコマンドを使用します。
$ ansible server1 -m service -a “name=httpd state=started”
タスク 2: パッケージをインストールする
パッケージをリモート サーバーにインストールする必要がある場合は、次のコマンドを使用できます。
$ ansible -m yum -a “name= state=present”
たとえば、Apache HTTP Server をリモート サーバーにインストールする必要がある場合は、次のコマンドを使用します。
$ ansible server1 -m yum -a “name=httpd state=present”
主要なAnsibleの機能とコマンド
Ansible コマンドは非常に強力で、多くのタスクを自動化するのに役立ちます。以下では、最もよく使用される Ansible コマンドについて説明します。
- ansible-プレイブック: これは、Playbook を実行するために使用される最も重要な Ansible コマンドです。 Playbook は、リモート ホストまたはホストのグループで実行する必要がある一連の指示またはタスクです。
- ansible-doc: このコマンドは、Ansible モジュールのドキュメントを表示するために使用されます。
- アンシブルギャラクシー: このコマンドは、コミュニティが提供するロールのリポジトリである Galaxy からロールをインストールするために使用されます。
- ansible ボールト: このコマンドは、機密データの暗号化と復号化に使用されます。
- ansible-コンソール: このコマンドは、インタラクティブな Ansible セッションを起動するために使用されます。
- アンシブルプル: このコマンドは、リモート Git リポジトリからプレイブックをプルするために使用されます。
- ansible-インベントリ: このコマンドは、インベントリ ファイルを生成するために使用されます。
Ansible変数を理解する
Ansible 変数は、Playbook で参照できる値を定義するのに役立ちます。 変数は、プレイブック全体で再利用したい値を保存するために使用できます。また、変数を条件やループで使用して、プレイブックの動作を動的に変更することもできます。
Ansible には、ファクトと変数の XNUMX 種類の変数があります。 ファクトは、Ansible が管理対象システムについて収集した情報から自動的に入力される変数です。 Var は、文字列、数値、リスト、辞書など、任意の値を格納するために使用できるユーザー定義の変数です。
Ansible における YAML の紹介
YAMLは、設定ファイルによく使用される、人間が読めるデータシリアル化形式です。学習と理解が容易で、次のような他の言語と組み合わせて使用できます。 JSONの または XML です。Ansible では、読み書きが簡単で、コンピューターが簡単に解析できるため、YAML を使用します。
Ansible での YAML タグの仕組み
YAML タグは Ansible の強力なツールであり、変数に格納されるデータのタイプを指定できます。 これは、リストや辞書などの複雑なデータ構造を扱う場合に特に便利です。 データにタグを付けることで、Ansible がデータを適切に解釈する方法を確実に知ることができます。
最終的な考えと次のステップ
Ansible の用語をマスターすることは、この強力な自動化ツールの可能性を最大限に引き出すための第一歩です。プレイブック、ロール、モジュールなどの主要な概念を理解することで、IT 運用を合理化し、構成をより効率的に管理できます。プレイブック、タスク、ハンドラー、変数に関する詳細なガイドなど、Ansible の機能をさらに詳しく調べるには、公式ドキュメントを確認してください。
LogicMonitor は、包括的な監視および観測ソリューションを提供することで自動化の取り組みをさらに強化し、自動化されたインフラストラクチャの可視性と制御を維持できるようにします。
私たちのブログを購読する
このような記事をあなたの受信箱に直接お届けします