Red Hat Training
A Red Hat training course is available for RHEL 8
2.4. ssh システムロールを使用した OpenSSH クライアントの設定
ssh
システムロールを使用して、Ansible Playbook を実行して複数の SSH クライアントを設定できます。
ssh
システムロールは、SSH および SSHD 設定を変更する他のシステムロール (ID 管理 RHEL システムロールなど) とともに使用できます。設定が上書きされないようにするには、ssh
ロールがドロップインディレクトリー (RHEL 8 から デフォルト) を使用していることを確認してください。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。 - この Playbook を実行する管理対象ノードまたは管理対象ノードのグループが、Ansible インベントリーファイルにリストされている。
手順
~/ssh-clients-playbook.yml
などの Playbook ファイルを次の内容で作成します。--- - hosts: all tasks: - name: "Configure ssh clients" include_role: name: rhel-system-roles.ssh vars: ssh_user: root ssh: Compression: true GSSAPIAuthentication: no ControlMaster: auto ControlPath: ~/.ssh/.cm%C Host: - Condition: example Hostname: example.com User: user1 ssh_ForwardX11: no
この Playbook は、以下の設定を使用して、マネージドノードで
root
ユーザーの SSH クライアント設定を行います。- 圧縮が有効になっている。
-
ControlMaster multiplexing が
auto
に設定されている。 -
<example.com>
ホストに接続するための<example>
エイリアスが<user1>
である。 -
<example>
ホストエイリアスが作成されている。これはユーザー名が<user1>
の<example.com>
ホストへの接続を表します。 - X11 転送が無効化されている。
必要に応じて、これらの変数は設定に合わせて変更できます。詳細は、ssh システムロール変数 を参照してください。
Playbook の構文を検証します。
# ansible-playbook --syntax-check ~/ssh-clients-playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
# ansible-playbook ~/ssh-clients-playbook.yml
検証
テキストエディターで SSH 設定ファイルを開いて、マネージドノードが正しく設定されていることを確認します。以下に例を示します。
# vi ~root/.ssh/config
上記の Playbook の例の適用後に、設定ファイルの内容は以下のようになるはずです。
# Ansible managed Compression yes ControlMaster auto ControlPath ~/.ssh/.cm%C ForwardX11 no GSSAPIAuthentication no Host example Hostname example.com User user1