Ansible コントロール ノードをインストールおよび構成する方法 - パート 2
前のトピックでは、Ansible の基本的な用語と基本概念について学びました。このトピック (Ansible シリーズのパート 2) では、RHEL 8 にAnsible コントロール ノードをインストールして構成する方法を説明します。
このセットアップでは、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 サーバーであり、リモート ホストまたはノードの管理に使用されます。これらのリモート システムは管理対象ホスト または管理対象ノード と呼ばれます。
上記のセットアップでは、制御ノードは Ansible と Debian 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 パスワードなし認証を設定して管理対象ホストに接続して制御するように制御ノードを構成しました。