ウェブサイト検索

Ansible コントロール ノードをインストールおよび構成する方法 - パート 2


前のトピックでは、Ansible の基本的な用語と基本概念について学びました。このトピック (Ansible シリーズのパート 2) では、RHEL 8Ansible コントロール ノードをインストールして構成する方法を説明します。

このセットアップでは、1 つの Ansible サーバーと 2 つのリモート Linux ノード を使用します。

Control Node 1: RHEL 8 Server     IP: 192.168.0.108         Ansible Server
Managed Host 1: Debian 10         IP: 192.168.0.15          Webserver
Managed Host 2: CentOS 8          IP: 192.168.0.200	    Database Server

Ansible コントロール ノードとは何ですか?

コントロール ノードAnsibleがインストールされた Linux サーバーであり、リモート ホストまたはノードの管理に使用されます。これらのリモート システムは管理対象ホスト または管理対象ノード と呼ばれます。

上記のセットアップでは、制御ノードは AnsibleDebian 10 および CentOS 8< がインストールされる RHEL 8 サーバーです。 は管理対象ホストです。

: Ansible は制御ノードにのみインストールされ、管理対象ホストにはインストールされません。

ステップ 1: Python 3 のインストール

デフォルトでは、RHEL 8 には Python 3 が付属しており、実行することでサーバーにインストールされている Python のバージョンを確認できます。

python3 -V

何らかの理由でPython3 がインストールされていない場合は、次の dnf コマンドを使用してインストールします。

dnf install python3

RHEL 8 システムに複数のバージョンの Python が存在する場合は、Python 3 をデフォルトの Python バージョンとして設定できます。走ることで。

alternatives --set python /usr/bin/python3

ステップ 2: 公式 RedHat リポジトリを有効にする

Python3 をインストールした後、以下に示すように、Ansible 用の RedHat の公式リポジトリが有効になっていることを確認してください。

subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms

: 上記のコマンドが機能するには、RHEL 8 for RedHat サブスクリプションが登録されていることを確認してください。

ステップ 3: RHEL 8 に Ansible をインストールする

RHEL 8 システムであるコントロール ノードに Ansible をインストールするには、次のコマンドを実行します。

dnf install ansible -y

インストールしたら、 コマンドを実行して、 インストールされているAnsible のバージョンを確認できます。

ansible --version

ステップ 4: 静的ホスト インベントリ ファイルの作成

これまでのところ、RHEL 8 サーバーであるコントロール ノードansibleを正常にインストールできました。コントロール ノードによって管理されるリモート ノードはインベントリファイルと呼ばれるファイルで定義する必要があります。インベントリ ファイルは、制御ノード上に常駐するプレーン テキスト ファイルで、リモート ホストのホスト名または IP アドレスで構成されます。

静的ホスト ファイルは、IP アドレスまたはホスト名で定義された管理対象ノードのリストを含むプレーン テキスト ファイルです。 /etc/ansible/ ディレクトリに静的ファイル「hosts」を作成しましょう。

vi /etc/ansible/hosts

次に、管理対象ホストのグループを定義します。このトピックの冒頭のセットアップで示したように、2 つの管理対象ホストがあります。セットアップから、静的ホスト ファイルは次のように定義されます。

[webserver]
192.168.0.15

[database_server]
192.168.0.200

インベントリ ファイルを保存して終了します。

管理対象ホストを一覧表示するには、次のコマンドを実行します。

ansible all -i hosts --list-hosts

これまでのところ、 コントロール ノードにAnsible をインストールし、コントロール ノード上にある静的ホスト ファイルで管理対象ホストを定義することができました。

次に、リモート ホストまたは管理対象ホストを管理または制御する方法を見ていきます。

ステップ 5: Ansible コントロール ノードをセットアップしてリモート ノードに接続する

Ansible コントロール ノード (RHEL 8) がリモート ホスト システム (Debian 10 および CentOS 8) を管理する場合リモート ホストに対してパスワードなしの SSH 認証を設定する必要があります。これを実現するには、SSH キー ペアを生成し、公開キーをリモート ノードに保存する必要があります。

Ansible コントロール ノードで、通常のユーザーとしてログインし、コマンドを実行して SSH キー ペアを生成します。

su tecmint
ssh-keygen

次に、示されているように、公開 ssh キーをリモート ノードにコピーします。

ssh-copy-id [email 	        (For Debian 10 node)
ssh-copy-id [email 	        (For CentOS 8 node)

すべてのリモート ノードに公開キーを追加したら、Ansible Control ノードから ping コマンドを発行して、それらが到達可能であることを確認します。

ansible -m ping all

上記の出力から、ping コマンドが成功し、すべてのノードへの到達可能性をテストできたことが明確にわかります。

結論

このガイドでは、RHEL 8 を実行している制御ノードに Ansible を正常にインストールしてセットアップしました。その後、静的ホスト ファイルでリモート ホストを定義し、SSH パスワードなし認証を設定して管理対象ホストに接続して制御するように制御ノードを構成しました。