2017-11-15 19 views
5

複数のホストを通過するターゲットホスト上で無理なプレイブックを実行したいと思います。シナリオは、絵に描かれたものと似ています:可能なマルチホップデザイン

enter image description here

I 一部Ansibleのプロジェクトディレクトリにssh_configファイルを作成解決される問題:

Host IP_HostN 
     HostName IP_HOST_N 
     ProxyJump [email protected]_HOST_2:22,[email protected]_HOST_2:22 
     User UsernameN 

とでansible.cfgに定義しますAnsibleプロジェクトディレクトリ:

[ssh_connection] 
ssh_args= -F "ssh_config" 

問題は、各一時ホストとターゲットホストssh usernameパスワードに対して自動的に挿入する必要があり、このタスクを自動化する方法がわかりません。さらに、pythonは、すべての一時ノードにをインストールしないことがあります。

+3

[SSHエージェントフォワーディング](http://unixwiz.net/techtips/ssh-agent-forwarding.html)を公開鍵認証で使用します。 –

+1

'ssh_config'にパスワードを追加することができます。そうすれば、そのようなキーを使う必要があります –

答えて

1

私はかなり良い回避策を見つけました。以下のシナリオによると:

enter image description here

我々は直接ターゲットホストに到達することができ、過渡ホストまで、SSHトンネルを作成します。

ssh -J [email protected]_host1:port_1 -p port_2 [email protected]_host2 -L LOCAL_PORT:TARGET_HOST_IP:TARGET_HOST_PORT 

はその後、我々は直接ローカルバインディングを使用して、ターゲットホストに入力することができます:

このように
ssh [email protected] -p LOCAL_PORT 

、我々はansibleを実行することができます我々はまた、-Lフラグと結合するローカルポートを作成しますローカルホスト上のプレイブックは、それに応じて変数を設定します:

ansible_host: localhost 
ansible_user: user_target_host 
ansible_port: LOCAL_PORT 
ansible_password: password_target_host 
関連する問題