Ansible で Linux ホストを操作できるように設定する
管理対象ノードの設定
Ansible による操作のためのユーザの作成
コントロールノードから管理対象ノードを操作する際に、root 権限での操作が必要になることがあります。 その際に root ユーザを直接使用することはセキュリティ上の問題があるため、 Ansible による操作のためのユーザ (以下、ansible ユーザと呼びます) を作成します。
# adduser <user>
※ コマンド実行時の質問項目は空でも構いません。 パスワードは適切なものを設定します。
sudo の設定
ansible ユーザをパスワード無しで root ユーザへ昇格させるために、sudo の設定を行ないます。
# visudo -f /etc/sudoers.d/<user>
[Red Hat Enterprise Linux 8, CentOS 8]
<user> ALL=(root) NOPASSWD:/usr/bin/dnf,/usr/bin/yum,/usr/bin/sh
[Red Hat Enterprise Linux 7, CentOS 7]
<user> ALL=(root) NOPASSWD:/bin/yum,/bin/sh
[Red Hat Enterprise Linux 6, CentOS 6]
<user> ALL=(root) NOPASSWD:/usr/bin/yum,/bin/sh
[Amazon Linux 2]
<user> ALL=(root) NOPASSWD:/usr/bin/yum,/usr/bin/sh
[ubuntu 18LTS/16LTS/14LTS]
<user> ALL=(root) NOPASSWD:/usr/bin/apt,/usr/bin/apt-get,/bin/sh
[Debian 10]
<user> ALL=(root) NOPASSWD:/usr/bin/apt,/usr/bin/apt-get,/usr/bin/sh
[Debian 9.0]
<user> ALL=(root) NOPASSWD:/usr/bin/apt,/usr/bin/apt-get,/bin/sh
※1 使用するモジュールによって追加のコマンドが必要となる場合があります。 (例: synchronize モジュールを使用するには rsync が必要)
公開鍵認証の設定 (推奨)
コントロールノードから管理対象ノードへの認証のために、コントロールノード上で公開鍵認証を設定します。 手順については Ansible をインストールする - 公開鍵認証の設定 を参照してください。
パスワード認証の無効化 (推奨)
ansible ユーザは root ユーザとほぼ同等の権限を持ちます。悪意のあるユーザによるログインを軽減するために、 パスワード認証の無効化をお勧めします。エディタで sshd の設定ファイルを開いてください。
# vi /etc/ssh/sshd_config
ansible ユーザを対象に、パスワード認証を無効にします。
/etc/ssh/sshd_config:
(ファイルの末尾)
Match User <user>
PasswordAuthentication no
保存して閉じます。設定反映のため、sshd を再起動します。
# systemctl restart sshd.service
接続テスト
Ansible をインストールする - Ping モジュールを利用した接続テスト を参照し、コントロールノードから管理対象ノードへの接続テストを実施してください。