18.04前書き構成管理システムは、管理者と運用チームが多数のサーバーを簡単に制御できるように設計されています。これらを使用すると、1つの中央ロケーションから多くの異なるシステムを自動化された方法で制御できます。Linuxシステムで使用できるChefやPuppetなど、多くの一般的な構成管理システムがありますが、多くの人が望むまたは必要とするよりも複雑です。Ansibleは、これらのオプションに代わる優れた選択肢です。開始するのに必要なオーバーヘッドがはるかに小さいためです。18.04サーバーにAnsibleをインストールする方法について説明し、ソフトウェアの使用方法の基本について説明します。Ansibleの仕組みAnsibleは、Ansibleコンポーネントがインストールおよび構成されているコンピューターからクライアントマシンを構成することで機能します。通常のSSHチャネルを介して通信し、リモートマシンから情報を取得し、コマンドを発行し、ファイルをコピーします。このため、Ansibleシステムでは、追加のソフトウェアをクライアントコンピューターにインストールする必要はありません。これは、Ansibleがサーバーの管理を簡素化する1つの方法です。SSHポートが公開されているサーバーは、ライフサイクルのどの段階にあるかにかかわらず、Ansibleの構成傘下に置くことができます。これは、SSHを介して管理できるコンピューターはすべて、Ansibleを介して管理することもできることを意味します。Ansibleはモジュール式のアプローチを採用しており、メインシステムの機能を使用して特定のシナリオに対処するための拡張を容易にします。モジュールは任意の言語で記述でき、標準のJSONで通信できます。構成ファイルは、その表現力豊かな性質と一般的なマークアップ言語との類似性により、主にYAMLデータシリアル化形式で記述されています。Ansibleは、Playbookと呼ばれるコマンドラインツールまたはその構成スクリプトを介してホストと対話できます。前提条件このチュートリアルを実行するには、次のものが必要です。これらの1つは_Ansibleサーバー_として使用され、残りは_Ansibleホスト_として使用されます。*ユーザーと基本的なファイアウォールが設定されている必要があります。18.04の初期サーバーセットアップガイド]に従って設定できます。このガイド全体の例では3つのAnsibleホストを指定していますが、表示されるコマンドと構成は任意の数のクライアントに合わせて調整できることに注意してください。*ユーザー用に生成されたSSHキー。[SSHキーを設定する方法]のガイドのステップ1に従ってください。+)に保存することができ、パスワードで保護する必要はありません。ステップ1-Ansibleのインストールさまざまなサーバーを管理する手段としてAnsibleの使用を開始するには、少なくとも1台のマシンにAnsibleソフトウェアをインストールする必要があります。Ubuntu向けのAnsibleの最新バージョンを入手するには、プロジェクトのPPA(パーソナルパッケージアーカイブ)をシステムに追加できます。software-properties-common`パッケージがインストールされていることを確認する必要があります。このソフトウェアは、これおよび他の独立したソフトウェアリポジトリの管理を容易にします。+」を押して、PPAの追加を受け入れます。次に、PPAで使用可能なパッケージを認識できるように、システムのパッケージインデックスをもう一度更新します。updateこの更新後、Ansibleソフトウェアをインストールできます。ansibleこれで、Ansibleサーバーには、ホストの管理に必要なすべてのソフトウェアが含まれています。前述のように、Ansibleは主にSSHを介してクライアントコンピューターと通信します。パスワードベースのSSH認証を処理する機能は確かにありますが、SSHキーを使用すると、物事を簡単に保つことができます。+`コマンドを使用して、非ルートユーザーのSSH公開キーファイルの内容を端末の出力に出力します。~/.ssh/id_rsa.pub結果の出力をクリップボードにコピーしてから、新しいターミナルを開き、SSHを使用してAnsibleホストの1つに接続します。*ユーザーに切り替えます。*ユーザーに戻ります。2をインストールする必要があります。python`パッケージをインストールします。+`コマンドをもう一度実行してクライアントへの接続を閉じることができます:exitAnsibleサーバーで制御するサーバーごとにこのプロセスを繰り返します。+`ファイルを使用してこれらのホストに接続するようにAnsibleサーバーを設定します。+`ファイルを介して知っているすべてのサーバーを追跡します。他のコンピューターとの通信を開始する前に、まずこのファイルをセットアップする必要があります。`#`が付いています)。これらの例は、それぞれにリストされているホストが構成されているため、実際には機能しません。将来、より複雑なシナリオを実装する場合は、これらの例をファイルに保存して構成に役立てます。+`ファイルはかなり柔軟で、いくつかの異なる方法で設定できます。使用する構文は次のようになります。+」は1つの特定のサーバーを参照する名前です。したがって、このシナリオでは、Ansibleで制御する3台のサーバーがあることを想像しています。この時点で、これらのサーバーは次のように入力することでAnsibleサーバーからアクセスできます。protected]これを正しく設定した場合、パスワードの入力を求められるべきではありません。203.0.113.2+」、および「203.0.113.3」であると想定します。+」という名前のグループとして参照できるように設定します。ansible_host=ホストは複数のグループに属し、グループはすべてのメンバーのパラメーターを構成できます。これを試してみましょう。現在の設定で、Ansibleを使用してこれらのホストのいずれかに接続しようとすると、コマンドは失敗します(rootユーザーとして動作していない場合)。*ユーザー用に埋め込まれており、Ansibleがデフォルトで現在のユーザーとして接続しようとするためです。接続を試行すると、次のエラーが発生します。*というユーザーを使用しています。+`で各ホストに接続しようとします。*ユーザーがリモートシステム上にも存在しない場合、これは機能しません。*ユーザーとして接続するように指示するファイルを作成できます。+`と呼ばれるAnsible構成構造にディレクトリを作成します。このフォルダー内で、構成するグループごとにYAML形式のファイルを作成できます。/etc/ansible/group_vars/serversYAMLファイルは「-」で始まるため、その部分を忘れないでください。root終了したら、このファイルを保存して閉じます。`のファイルに配置できます。+`のディレクトリの下にエイリアスに基づいた名前のファイルを作成することで設定できます。ステップ4-簡単なAnsibleコマンドの使用ホストがセットアップされ、ホストに正常に接続できるように構成の詳細が十分になったので、最初のコマンドを試すことができます。次のように入力して、構成したすべてのサーバーにpingを実行します。"pong"}これは、Ansibleがすべてのホストに接続していることを確認するための基本的なテストです。+`はすべてのホストを意味します。serversまた、個々のホストを指定することもできます。host1コロンで区切ることにより、複数のホストを指定できます。」部分は、「ping」モジュールを使用するためのAnsibleへの指示です。これらは基本的に、リモートホストで実行できるコマンドです。+`ユーティリティのような多くの方法で動作しますが、代わりにAnsible接続をチェックします。pingモジュールは実際には引数を取りませんが、別のコマンドを試して、その動作を確認することができます。+」と入力して、スクリプトに引数を渡します。「シェル」モジュールを使用すると、リモートホストに端末コマンドを送信し、結果を取得できます。host1マシンのメモリ使用量を調べるには、次を使用できます。0これにより、Ansibleサーバーが構成され、ホストと正常に通信および制御できます。結論このチュートリアルでは、Ansibleを設定し、各ホストと通信できることを確認しました。+`コマンドを使用して、簡単なタスクをリモートで実行しました。これは便利ですが、この記事ではAnsibleの最も強力な機能であるPlaybooksを取り上げていません。Playbookは、サーバー構成とマルチマシン展開を管理するための強力でシンプルな方法です。[このガイド]を参照してください。[公式のAnsibleドキュメント]を確認することをお勧めします。