Eu apenas tropecei neste post do post sobre a execução do Ansible com um host de bastiões .
Aparentemente, você precisa adicionar o host bastion ao host de controle 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
Edite o ssh_args
em ansible.cfg
:
[ssh_connection]
ssh_args = -F ./ssh.cfg -o ControlMaster=auto -o ControlPersist=30m control_path = ~/.ssh/ansible-%%r@%%h:%%p
Isso deve cobrir a parte bastion
da configuração. Para MFA
parte, algum usuário neste problema github afirma que é possível usar uma sessão ssh no Ansible open fora do Ansible.
I open up the initial connection to the host which has 2FA, then in another window run something like:
ansible-playbook thing.yml --ssh-common-args='-o ControlPath=~/.ssh/connshare'
Eu não tenho uma configuração de host de bastiões à mão, mas acho que vale a pena tentar essa estratégia.