Ansibleで管理をされる側のサーバ(以下、管理対象サーバ)の設定方法を説明します。

前提条件

  • 各作業項目名の後ろに記載している【<サーバ種別>】は、作業対象のサーバを示します。
  • 管理対象サーバは、Ansibleで管理する側のサーバ(以下、構成管理サーバ)とネットワーク上の疎通が取れる構成を想定しています。
  • 作業は、root権限を持つユーザで実施します。
  • 本手順は、CentOS 7 / 8、RHEL 7 / 8向けに想定しています。
  • 以下のバージョンのソフトウェアで検証しています。
# cat /etc/redhat-release 
CentOS Linux release 8.0.1905 (Core) 
# uname -r
4.18.0-80.el8.x86_64

作業手順

Ansible用のOSユーザ作成 【管理対象サーバ】

Ansibleが管理対象サーバにリモートログインするための専用ユーザansbileをOS上に作成します。

# useradd ansible
# passwd ansible
ユーザー ansible のパスワードを変更。
新しいパスワード:                    ←ansibleユーザのパスワードを入力
新しいパスワードを再入力してください:    ←同様のパスワードを入力
passwd: すべての認証トークンが正しく更新できました。

Ansible用のOSユーザへroot権限追加 【管理対象サーバ】

ansbile OSユーザが管理対象サーバのシステムを変更できるように、root権限を追加します。

# gpasswd -a ansible wheel
ユーザ ansible をグループ wheel に追加

公開鍵ファイルの登録 【構成管理サーバ】

構成管理サーバで作成したSSHキーペアのうち、公開鍵ファイルを管理対象サーバに登録します。

構成管理サーバ上でansibleOSユーザにログインし、管理対象サーバのIPを指定して公開鍵ファイルを転送します。<管理対象サーバIPアドレス>には、新たに管理対象に加える管理対象サーバのIPアドレスを指定します。途中、管理対象サーバ側のansibleOSユーザのパスワードを尋ねられるので入力します。

# su - ansible
$ ssh-copy-id -o StrictHostKeyChecking=no -i /home/ansible/.ssh/id_rsa.pub ansible@<管理対象サーバIPアドレス>
(略)
ansible@<管理対象サーバIPアドレス>'s password:      ←管理対象サーバのansibleユーザのパスワードを入力

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -o 'StrictHostKeyChecking=no' 'ansible@<管理対象サーバIPアドレス>'"
and check to make sure that only the key(s) you wanted were added.

構成管理サーバのansibleOSユーザから、管理対象サーバの同ユーザへ公開鍵認証を使用してSSHログインできることを確認します。

$ ssh -i /home/ansible/.ssh/id_rsa ansible@<管理対象サーバIPアドレス>