ansible 通過代理或者叫網關直接操作內網服務器


需求:

  當我們的機器在IDC托管時,往往在多個地區都有托管,每個地區的IDC中只有一台外網服務器,這台外網機器起到接收外面請求及內網中機器中的請求,當我們想要使用Ansible管理內網主機時,就需要用到類似“代理”的一個功能,實際底層使用的還是“ssh”;

分析:

  因為Ansible底層使用的就是SSH協議,所以我們可以直接定義SSH方法;

SSH“代理”介紹:

  -o:添加選項

  -W:指定host:port

  proxycommand:“代理”模塊

  如果不使用上述這些模塊,ssh命令會直接與后方所指定的主機進行連接,但無法連接內網服務器;

Ansible Hosts文件中相關配置:

  Ansible的Hosts文件中存儲了被管控的主機地址等信息,我們可以直接在Hosts文件中定義" ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -p 22 -q root@xxx.xxx.xx.xx" ";可以將這些內容直接定義到一個地區的固定變量中;

~]# vim /etc/ansible/hosts

[bj-server:vars]

ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -p 22 -q root@xxx.xxx.xx.xx"'

[nj-server:vars]

ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -p 22 -q root@xxx.xxx.xx.xx"'



[bj-server]

test1 ansible_host=172.16.1.10 ansible_port=22 ansible_user=root ansible_ssh_pass=MyPassW0rd

test2 ansible_host=172.16.1.20 ansible_port=22 ansible_user=root ansible_ssh_pass=MyPassW0rd

配置完成后使用ansible就可以管理內網的主機拉
————————————————

原文鏈接:https://blog.csdn.net/kaikai0720/article/details/108613873 (原文作者有筆誤)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM