3つのLinuxサーバーA、B、Cがあります。 Aはすべての開発者が使用している場所、BはプレイブックがあるAnsibleサーバー、Cは特定のタスクを実行するために必要なターゲットサーバーです。
これは演劇のスケルトンです - play.yml:
---
- name: get inst info
hosts: localhost
connection: local
gather_facts: no
tasks:
- debug: msg="Before going to {{ target_instance }}"
- hosts: "{{ target_instance }}"
become: yes
become_user: root
tasks:
- debug: msg="In {{ target_instance }}"
A では、次のコマンドを実行します。
user_a@A~$ ssh B "cd <ansible_playbook_dir>; ansible-playbook play.yml -e \"target_instance=wolf\""
そして出力:
PLAY [get inst info] ********************************************************************************************************************************************************************************************************************
TASK [Involve general variables] ********************************************************************************************************************************************************************************************************
Thursday 04 November 2021 23:08:00 +0000 (0:00:00.023) 0:00:00.023 *****
ok: [localhost]
TASK [Involve prodcopy variables] *******************************************************************************************************************************************************************************************************
Thursday 04 November 2021 23:08:00 +0000 (0:00:00.021) 0:00:00.045 *****
ok: [localhost]
TASK [debug] ****************************************************************************************************************************************************************************************************************************
Thursday 04 November 2021 23:08:01 +0000 (0:00:00.019) 0:00:00.065 *****
ok: [localhost] => {
"msg": "Before going to wolf"
}
PLAY [wolf] *************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************
Thursday 04 November 2021 23:08:01 +0000 (0:00:00.077) 0:00:00.143 *****
ok: [wolf]
TASK [debug] ****************************************************************************************************************************************************************************************************************************
Thursday 04 November 2021 23:08:02 +0000 (0:00:01.877) 0:00:02.021 *****
ok: [wolf] => {
"msg": "In wolf"
}
PLAY RECAP ******************************************************************************************************************************************************************************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
wolf : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Thursday 04 November 2021 23:08:02 +0000 (0:00:00.031) 0:00:02.052 *****
===============================================================================
ただし、SSHキーパスワードを使用してユーザーと同じコマンドを実行すると、
user_b@A~$ ssh B "cd <ansible_playbook_dir; ansible-playbook play.yml -e \"target_instance=wolf\""
SSHエラーが発生します。
PLAY [get inst info] ***********************************************************
TASK [Involve general variables] ***********************************************
Thursday 04 November 2021 23:00:42 +0000 (0:00:00.025) 0:00:00.025 *****
ok: [localhost]
TASK [Involve prodcopy variables] **********************************************
Thursday 04 November 2021 23:00:42 +0000 (0:00:00.039) 0:00:00.065 *****
ok: [localhost]
TASK [debug] *******************************************************************
Thursday 04 November 2021 23:00:42 +0000 (0:00:00.037) 0:00:00.103 *****
ok: [localhost] => {
"msg": "Before going to wolf"
}
PLAY [wolf] ****************************************************************
TASK [Gathering Facts] *********************************************************
Thursday 04 November 2021 23:00:42 +0000 (0:00:00.048) 0:00:00.151 *****
fatal: [wolf]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: user_b@wolf: Permission denied (publickey).", "unreachable": true}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
wolf : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
Thursday 04 November 2021 23:00:42 +0000 (0:00:00.066) 0:00:00.218 *****
===============================================================================
user_bに対してAとBにキーチェーンを設定しました。
とにかく、SSHキーパスワードを持つユーザーがこの機能を使用できるようにすることはできますか?
ありがとうございます!