Ansible の重要な用語: はじめに

Ansible の重要な用語: はじめに

システム管理者であれば、Ansible について聞いたことがあるはずです。 ただし、このツールに慣れていない場合、またはツールを使い始めたばかりの場合は、知っておく必要のある重要な用語と概念がいくつかあります。

ここでは、Ansible の概要から、その起源から最新の機能までを紹介します。 また、Ansible に関連するいくつかの重要な用語についても説明するので、Ansible をすぐに効果的に使い始めることができます。

アンシブルはどのように機能しますか?

アンシブルは 構成管理ツール アプリケーションとインフラストラクチャのプロビジョニングと展開を自動化します。 使いやすく拡張しやすいように設計されているため、複雑な展開を管理するための理想的なツールです。

Ansible はサーバーに接続することで機能します SSH 経由でそれらのサーバー上でタスクを実行します。

Ansible は、SSH のようなリモート実行ツールと考えることができますが、重要な違いがいくつかあります。

  • まず、Ansible は冪等になるように設計されています。つまり、タスクが複数回実行されても、毎回同じ結果になります。
  • 次に、Ansible はエージェントレスです。つまり、Ansible が管理するサーバーにソフトウェアをインストールする必要はありません。
  • 第 XNUMX に、Ansible は簡単に拡張できるように設計されています。 新しいテクノロジーやシステムのサポートを追加するために使用できる、コミュニティが開発したさまざまなモジュールがあります。

主な Ansible 用語

主な Ansible 用語のいくつかを見ていきましょう。

  • ハンドブック: Playbook は、Ansible の構成、デプロイ、およびオーケストレーション言語を表現したものです。 リモート システムに適用させたいポリシーや、一般的な IT プロセスの一連の手順を説明できます。
  • サーバー: Ansible で管理するリモート サーバーは、管理対象ホストと呼ばれます。 Ansible を管理マシンにインストールしたら、SSH を使用してリモート サーバーに接続します。
  • 対象マシン: Ansible が実行されるマシンは、コントロール ノードと呼ばれます。 ターゲット マシンは、仮想化されたシステムまたは物理システムです。
  • 課題・テーマ: タスクは、Ansible が実行する作業の単位です。 タスクはプレイに編成され、ターゲット マシンで実行されます。
  • 機械: マシンは、Ansible が管理できる物理サーバーまたは仮想サーバーです。
  • モジュール: モジュール Ansible がターゲット マシンでタスクを実行するために使用する小さなコードです。
  • 役割: ロールは、複雑な環境を簡単にプロビジョニングするために使用できる、関連するタスクとサポート ファイルのコレクションです。
  • 変数: 変数は、プレイやタスクで参照できる値を格納するために使用されます。 変数は、Playbook、インベントリ ファイル、および変数ファイルで定義できます。

Ansible プレイブック

Ansible Playbook は、リモート サーバーまたはサーバー グループで実行するアクションを定義する一連の指示です。 システムとアプリケーションを構成、展開、および管理できます。 Playbook は YAML 形式で記述されており、非常に読みやすく、理解しやすいものになっています。

Playbook を使用して、ソフトウェアのインストール、サービスの構成、さらにはアプリケーション スタック全体のロールアウトなど、さまざまなタスクを実行できます。 Playbook は通常、 ansible-playbook コマンドを使用してコマンドラインから実行されます。

Ansible Playbook は非常に柔軟で、さまざまな種類のタスクを自動化するために使用できます。 Ansible Playbook の XNUMX つの主な使用例を次に示します。

  1. 設定管理
  2. ソフトウェアの導入
  3. 継続的インテグレーションとデリバリー
  4. アプリケーション オーケストレーション
  5. セキュリティとコンプライアンス

アンシブルマシン

Ansible マシンは基本的にソフトウェアで定義されたマシンであり、インフラストラクチャ全体のタスクを管理および自動化するために使用できます。 Ansible マシンは、既存の物理マシンまたは仮想マシンの上に構築され、インフラストラクチャを管理するための一貫した反復可能な方法を提供します。

通常、Ansible マシンは、サーバーのデプロイメント、プロビジョニング、および構成を管理するために使用されます。 また、アプリケーションの展開とオーケストレーションを自動化するためにも使用できます。 Ansible マシンは、Puppet、Chef、SaltStack などの他の DevOps ツールと一緒に使用されることがよくあります。

Ansible マシンをどのようにセットアップしますか?

Ansible マシンをセットアップする場合は、いくつかの作業を行う必要があります。

  • まず、マシンに Ansible ソフトウェアをインストールする必要があります。 これは、apt や yum などのパッケージ マネージャーを使用して実行できます。
  • Ansible をインストールしたら、インベントリ ファイルを作成する必要があります。 このファイルには、Ansible が管理するすべてのマシンが一覧表示されます。
  • 次に、プレイブックを作成する必要があります。 これは、Ansible が実行する必要があるタスクのリストを含む YAML ファイルです。
  • 最後に、プレイブックを実行するために ansible-playbook コマンドを実行する必要があります。

Ansible マシンの種類

Ansible マシンは、その機能に応じていくつかのタイプに分類されます。 最も一般的なタイプは、コントロール、リモート、およびターゲット マシンです。

  1. 制御機: コントロール マシンは、Ansible インフラストラクチャの中央ノードです。 ネットワーク内の他のすべてのマシンを管理するために使用されます。 コントロール マシンには、Ansible プロジェクト コードと Playbook のコピーが必要です。
  2. リモート マシン: リモート マシンとは、制御マシン以外の任意のマシンです。 リモート マシンは、SSH を使用してコントロール マシンによって管理されます。
  3. 対象マシン: ターゲット マシンは、Ansible によってプロビジョニングまたは設定されるリモート マシンです。 ターゲット マシンは、物理サーバー、仮想マシン、コンテナーなど、任意のタイプにすることができます。

アンシブル タスク

Ansible タスクは、ワークフローとプロセスを自動化するために使用できる小さなコードです。 タスクには、単純、複合、および条件付きの XNUMX つのタイプがあります。

  • シンプル タスクは、特定のアクションを実行する XNUMX 行のコードです。
  • 複雑なタスクは、複数のアクションを実行できる複数行のタスクです。
  • 条件付きタスクは、特定の条件が満たされた場合にのみ実行されるタスクです。

ハンドラ

ハンドラーは、リモートサーバーで特定のアクションをトリガーする 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 “名前=状態=現在”

たとえば、Apache HTTP Server をリモート サーバーにインストールする必要がある場合は、次のコマンドを使用します。

$ ansible server1 -m yum -a “name=httpd state=present”

機能・コマンド一覧

Ansible コマンドは非常に強力で、多くのタスクを自動化するのに役立ちます。 以下では、最も一般的に使用される Ansible コマンドについて説明します。

  • ansible-プレイブック: これは、Playbook を実行するために使用される最も重要な Ansible コマンドです。 Playbook は、リモート ホストまたはホストのグループで実行する必要がある一連の指示またはタスクです。
  • ansible-doc: このコマンドは、Ansible モジュールのドキュメントを表示するために使用されます。
  • アンシブルギャラクシー: このコマンドは、コミュニティが提供するロールのリポジトリである Galaxy からロールをインストールするために使用されます。
  • ansible ボールト: このコマンドは、機密データの暗号化と復号化に使用されます。
  • ansible-コンソール: このコマンドは、インタラクティブな Ansible セッションを起動するために使用されます。
  • アンシブルプル: このコマンドは、リモート Git リポジトリからプレイブックをプルするために使用されます。
  • ansible-インベントリ: このコマンドは、インベントリ ファイルを生成するために使用されます。

アンシブル変数

Ansible 変数は、Playbook で参照できる値を定義するのに役立ちます。 変数は、プレイブック全体で再利用したい値を保存するために使用できます。また、変数を条件やループで使用して、プレイブックの動作を動的に変更することもできます。

Ansible には、ファクトと変数の XNUMX 種類の変数があります。 ファクトは、Ansible が管理対象システムについて収集した情報から自動的に入力される変数です。 Var は、文字列、数値、リスト、辞書など、任意の値を格納するために使用できるユーザー定義の変数です。

ヤムル

YAML は、構成ファイルによく使用される、人間が判読できるデータのシリアライゼーション形式です。 学習と理解が容易で、JSON や XML などの他の言語と組み合わせて使用​​できます。 Ansible が YAML を使用しているのは、読み書きが簡単で、コンピューターが簡単に解析できるためです。

YAML タグ

YAML タグは Ansible の強力なツールであり、変数に格納されるデータのタイプを指定できます。 これは、リストや辞書などの複雑なデータ構造を扱う場合に特に便利です。 データにタグを付けることで、Ansible がデータを適切に解釈する方法を確実に知ることができます。

まとめ

Ansible プレイブック、タスク、ハンドラー、または変数について詳しく知りたい場合は、公式ドキュメントを確認してください。 また、独自の Ansible マシンをセットアップしようとしているときに質問がある場合や問題が発生した場合は、遠慮なくお問い合わせください。 届く 助けて。