Ansible結合跳板機控制遠程服務器

Ansible結合跳板機控制遠程服務器
服務器

在ansible的使用過程當中,存在這樣的場景,ansible所在的管理節點與被管理的機器須要 經過一個跳板機才能鏈接,沒法直接鏈接。網上搜了一下,要解決這個問題,並不須要在 ansible裏作什麼處理,而是在ssh鏈接層面解決這個問題。ssh

好比,ide

咱們有三類節點:

    管理節點,admin.example.com,是執行ansible命令的服務器

    被管理的節點,internal1.example.com, internal2.example.com

    跳板機,bastion.example.com

管理節點不能直連 internal1 & internal2,須要經過跳板機創建鏈接。

管理節點鏈接跳板機的方式以下:

  ssh -i keyfile_bastion -p 12345 user@bastion.example.com

從跳板機鏈接internal節點的方式以下:

  ssh -i keyfile_internal -p 23456 user@internal1.example.com
  ssh -i keyfile_internal -p 23456 user@internal2.example.com

解決方案:code

修改 ~/.ssh/config,加入以下的配置項,域名

Host internal1.example.com internal2.example.com
    User user
    Port 23456
    IdentityFile=keyfile_internal
    ProxyCommand ssh -qaY -i keyfile_bastion -p 12345 user@bastion.example.com 'nc -w 14400 %h %p'

            注意這地方的1key 就是執行機器的位置。2域名跳板機也寫hosts 作解析。3.本機器hosts也要作解析。

這樣,就能夠直接從節點 admin.example.com 執行下面的命令直接鏈接internal1.example.com了it

ssh user@internal1.example.com

ansible中也能夠將internal節點當作能夠直接鏈接的機器來使用io

ansible -i host -m setup internal1.example.com
相關文章
相關標籤/搜索