Debian10にAnsibleをインストールして設定する方法

Ansibleは、単一のマシンから複数のリモートホストを管理するための無料で使いやすい自動化ツールです。多数のリモートホスト用に簡単に構成できます。たとえば、複数のマシンで同じタスクを実行している場合、Ansibleにはこれらのタスクを自動化するオプションがあります。

Ansibleは、ChefやPuppetなどの他の一般的なインフラストラクチャ自動化ツールの優れた代替手段です。 Ansibleサーバーを介して管理するために、ノードにクライアントソフトウェアをインストールする必要はありません。 SSH接続を使用してホスト上でタスクを実行します。

このチュートリアルは、Debian 10LinuxシステムにAnsibleをインストールして構成するのに役立ちます。

前提条件

このチュートリアルでは、次のホストがあります。

  • 1つの制御ノード– Ansibleを使用してインフラストラクチャを構築するには、Ansibleサーバーが実行される制御ノードが必要です。これは、Ansibleコントロールノードとして知られています。
  • 1つ以上のホスト–異なる2つのオペレーティングシステムで実行されている3つのホストがあります。
    • Ubuntu 20.04LTSを備えた2つのホスト
    • CentOS8を搭載した1つのホスト

ステップ1-SSHキーを構成する

Ansibleコントロールノードはssh接続を使用してホストを接続します。パスワードまたはキーベースのsshアクセスを使用してホストに接続するようにAnsibleを構成できます。このチュートリアルでは、両方のタイプ(パスワードとキーベースのssh)を使用して、制御ノードからホストを接続します。

Ansibleコントロールノードにログインし、sshキーペアを生成します(生成されていない場合)。

ssh-keygen -t rsa 

コマンドによって要求されたすべての入力に対して「Enter」を押すだけです。

次に、公開鍵をリモートホストにコピーします。鍵ベースで接続する必要があります。

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]  
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 

ステップ2–DebianにAnsibleをインストールする

Ansible debianパッケージは、公式のAptリポジトリから入手できます。 PPAをシステムに追加するだけです。次のコマンドを使用して、Ansibledebianリポジトリをシステムに追加します。

sudo apt-add-repository ppa:ansible/ansible 

Software Updaterユーティリティは、システムのパッケージキャッシュを更新します。したがって、DebianシステムにAnsibleをインストールまたは更新するには、次のコマンドを実行する必要があります

sudo apt update  
sudo apt install ansible 

すべてのインストール確認のために「Y」を押して、インストールプロセスを完了します。次に、Ansibleサーバーを構成する必要があります

ステップ3–インベントリファイルを作成する

制御ノードにAnsibleサーバーをインストールしました。

次に、ホストをAnsibleサーバーに追加する必要があります。 Ansibleを使用すると、ホストとグループのフォームでホストを管理できます。グループは、その下で定義されたすべてのリモートホストで1つのタスクを実行するために使用されます。

1つのホストを複数のグループに追加できます。 Ansibleホスト構成ファイルを編集します。例えば:

sudo nano /etc/ansible/hosts 

ホストを追加し、グループで整理します。

[webservers]
web-host1
web-host2

[dbservers]
db-host1

[ubuntu]
web-host1
db-host1

[centos]
web-host2

以下の画像は、グループとグループの下のホストを理解するのに役立ちます。

ホストごとの構成

個々のホストの構成ファイルを作成できます。すべてのホスト構成ファイルは、ホスト名と同じ/ etc / ansible / host_varsディレクトリにあります。

sudo mkdir /etc/ansible/host_vars/  
sudo vi /etc/ansible/host_vars/web-host1 
    • 1番目のホスト– /etc/ansible/host_vars/web-host1
      ansible_ssh_host: 10.0.1.101
      ansible_ssh_port: 22
      ansible_ssh_user: root
    • 2番目のホスト– /etc/ansible/host_vars/web-host2
      ansible_ssh_host: 10.0.1.102
      ansible_ssh_port: 22
      ansible_ssh_user: root
    • 3番目のホスト– /etc/ansible/host_vars/web-host3
      ansible_ssh_host: 10.0.1.103
      ansible_ssh_port: 22
      ansible_ssh_user: root

このホストのssh接続にステップ1を使用していない場合。認証のために、以下のいずれかの方法をweb-hosts1構成ファイルに追加することもできます。

ansible_ssh_pass: secret_password
ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem

グループ変数の構成

グループ構成で、グループの共通変数設定を構成できます。グループファイル名は、 group_varsディレクトリの下のグループ名(例:webservers)と同じである必要があります。

sudo mkdir /etc/ansible/group_vars  
sudo vi /etc/ansible/group_vars/webservers 

このグループの下に追加されたすべてのホストによって使用されるこのファイルに共通変数を追加します。

ansible_ssh_port: 22
ansible_ssh_user: root

ステップ4–Ansible接続のテスト

Ansibleを使用する準備が整いました。すべてのノードの接続をテストするには、pingモジュールを使用します。 Ansibleサーバーにログインし、次のコマンドを実行します。

ansible -m ping all 

特定のホストまたはグループの接続をテストすることもできます。

ansible -m ping web-host1  ## Specific host 
ansible -m ping webservers  ## Specific group

Ansibleシェルモジュールを使用して任意のLinuxコマンドを実行することもできます。たとえば、以下のコマンドを実行して、web-host1の空きメモリをテストします。

ansible -m shell -a 'free -m' web-host1 

DebianにAnsibleをインストールする

グループに対して同じタスクを実行することもできます。ホスト名の代わりにグループ名を使用してください。

結論

このチュートリアルでは、Debian 10LinuxシステムにAnsibleをインストールして構成する方法を学びました。

Source