現在の環境では、MFAが有効になっている要塞ホストを介してのみすべてのLinuxサーバーにアクセスできます。
Ansibleが要塞を介してサーバーと正常に通信できるようになりました。唯一の問題は、各ホストの要塞への新しい接続が確立されることです。つまり、サーバーと同じ数のMFAキーを入力する必要があります。悪い時代。 :(
多重化を機能させるために、ssh設定でこのようなものをいじってみました:
Host bastion
ControlMaster auto
ControlPath ~/.ssh/ansible-%r@%h:%p
ControlPersist 5m
残念ながら、それはそれをしていないようです。 Ansibleが接触するすべてのホストについて、要塞ホストを介して接続を再確立するのを停止する方法について、誰かがヒントを得ましたか?
ありがとう!
私はこれに偶然出くわしました 要塞ホストでAnsibleを実行することに関するブログ投稿 。
どうやらあなたは要塞ホストをコントロールホストに追加する必要がありますssh_config
:
Host 10.10.10.*
ProxyCommand ssh -W %h:%p bastion.example.com
IdentityFile ~/.ssh/private_key.pem
Host bastion.example.com
Hostname bastion.example.com
User ubuntu
IdentityFile ~/.ssh/private_key.pem
ControlMaster auto
ControlPath ~/.ssh/ansible-%r@%h:%p
ControlPersist 5m
ssh_args
のansible.cfg
を編集します。
[ssh_connection]
ssh_args = -F ./ssh.cfg -o ControlMaster=auto -o ControlPersist=30m control_path = ~/.ssh/ansible-%%r@%%h:%%p
これで、構成のbastion
部分が隠蔽されます。 MFA
の部分について、この github issue の一部のユーザーは、Ansibleの外部で開かれたAnsibleでsshセッションを使用できると主張しています。
2FAを備えたホストへの最初の接続を開き、別のウィンドウで次のように実行します。
ansible-playbook thing.yml --ssh-common-args='-o ControlPath=~/.ssh/connshare'
要塞ホストのセットアップは手元にありませんが、この戦略は試してみる価値があると思います。