Ubuntu Server 18.04にAnsibleをインストールする方法 - TechRepublic

Ubuntu Server 18.04にAnsibleをインストールする方法 - TechRepublic

Ansibleは、多数のサーバーを管理するための新たなツールです。Ansibleプレイブックを使えば、データセンターのサーバー上で実行する非常に柔軟で自動化されたタスクを、単一のエントリーポイントから作成できます。さらに、Ansibleプレイブックを作成し、ユーザーフレンドリーなWebベースのGUIであるRundeckなどから実行することも可能です。

Ansible を起動したら、ノードを接続してプレイブックの作成を開始できます。ただし、まずは Ansible をインストールする必要があります。

Ubuntu Server 18.04に公式Ansibleリリースをインストールする手順を詳しく説明します。次に、AnsibleサーバーのSSHキーを単一のクライアントノードにエクスポートし(ノードがサーバーとどのように関連付けられるかを示すため)、そのノードをAnsibleで設定します。

参照:2018年データセンター自動化調査レポート:データの増加にもかかわらず、自動化の導入は依然として遅い(Tech Pro Research)

必要なもの

Ubuntu Server 18.04 を 2 つインストールし、両方に sudo 権限を持つユーザーアカウントが必要です。これで完了です。

アップデート/アップグレード

Ansibleをインストールする前に、サーバーがアップデートおよびアップグレードされていることを確認してください。カーネルをアップグレードした場合は、サーバーの再起動が必要になりますのでご注意ください。そのため、アップデート/アップグレードは再起動が可能なタイミングで実行してください(ライブパッチがインストールされている場合は、いつでもタスクを実行できます)。アップデートとアップグレードを行うには、Ansibleをホストするサーバーにログインし、以下のコマンドを実行してください。

sudo apt-get update
sudo apt-get upgrade -y

プロセスが完了したら、必要に応じてサーバーを再起動してください。これでインストールの準備が整いました。

Ansibleのインストール

次に、Ansibleをインストールします。手順は以下のとおりです。

  1. AnsibleをホストするUbuntuサーバーにログインします
  2. sudo apt-add-repository ppa:ansible/ansibleコマンドを使用して必要なリポジトリをインストールします。
  3. sudo apt-get updateコマンドで apt を更新します。
  4. sudo apt-get install ansible -yコマンドで Ansible をインストールします。

Ansibleはモジュールを実行するためにPythonインタープリターを必要とするため、Pythonもインストールする必要があります。そのためには、以下のコマンドを実行します。

sudo apt-get install python -y

注: Python がすでにインストールされている場合があります。

この時点で、Ansible がインストールされ、使用できる状態になります。

サーバーへのSSHアクセスを構成する

次に、ノードがAnsibleサーバーにアクセスできるようにする必要があります。これはSecure Shell (SSH) 経由で行います。サーバーのSSH公開鍵をノードにコピーします。サーバーにまだ鍵がない場合は、次のコマンドで生成してください。

ssh-keygen

ファイル名(デフォルトのまま)とキーのパスフレーズの作成/検証を求められます(図 A)。

図A

次のコマンドで公開 SSH キーの内容を表示します。

cat ~/.ssh/id_rsa.pub

このコマンドの出力で何を行うかは以下のとおりです。

  1. キーからテキストをコピーします。
  2. ノード サーバーにログインします。
  3. sudo -sコマンドを発行します。
  4. sudo nano ~/.ssh/authorized_keysコマンドで authorized_keys ファイルを開きます。
  5. このファイルの下部にサーバー キーの内容を貼り付けます。
  6. ファイルを保存して閉じます。

このプロセスを簡素化したい場合は、次のコマンドを発行します (Ansible サーバーから)。

ssh-copy-id NODE_IP

ここで、NODE_IP は追加するノードの IP アドレスです。

新しく追加した鍵をテストするには、Ansibleサーバーに戻り、ノードマシンにSSH接続します。ユーザーのパスワードではなく、SSH鍵のパスフレーズの入力が求められるはずです(図B)。

図B

Ansible に接続するすべてのノードに対してこれを完了します。

ノードの設定

次に、Ansibleがノードの場所を認識していることを確認します。次のコマンドを実行します。

sudo nano /etc/ansible/hosts

そのファイルで、ノード用の新しいグループを作成し (この例では 1 つのノードのみを接続しています)、次のように IP アドレスを関連付けます。

[group_name]
ALIAS NODE_IP

group_name は作成するグループ名、ALIAS はノードのエイリアス、NODE_IP はノードのIPアドレスです。複数のノードがある場合は、以下のようにリストしてください。

[webservers]
WEB1 192.168.1.100
WEB2 192.168.1.101
WEB3 192.168.1.102

ファイルを保存して閉じます。次のコマンドで追加したすべてのノードにpingを実行してテストできます。

ansible -m ping all

出力に SUCCESS と表示されるはずです (図 C )。

図C

注意すべき点として、Ansibleはコマンドを実行しているユーザーに接続を試みます。つまり、jackユーザーでAnsibleコマンドを実行すると、そのユーザーでノードに接続しようとします。そのユーザーがノード上にいない場合は、Ansibleにどのユーザーを使用するか指示する必要があります。これを行うには、以下の手順に従ってください。

  1. コマンドsudo mkdir /etc/ansible/group_varsを使用して、新しいディレクトリ (Ansible サーバー上) を作成します。
  2. sudo nano /etc/ansible/group_vars/serversコマンドで新しいファイルを作成します。
  3. そのファイルに、次の行を追加します: ansible_ssh_user: USERNAME (USERNAME はリモート ノード上のユーザー名です)。
  4. そのファイルを保存して閉じます。

おめでとうございます。Ansible がインストールされ、ノードと通信できるようになりました。これでプレイブックの作成を始める準備が整いました。

Tagged: