Configuration-Management
如何在 NAT 後面使用 Salt Stack 和 minions(不可公開訪問,預設 salt 埠未打開)?
Salt Stack minions 是否可以使用在所有消費者 NAT 路由器中預設打開的標準埠從 NAT/防火牆等後面與 salt master 通信(並且沒有 minions 具有公共 DNS 記錄或靜態 IP)?
我正在完成我的第一個鹽教程,這就是我卡住的地方。
我可以在 Ubuntu salt-master 上配置 iptables。但我無法控制奴才將坐在後面的路由器/NAT。
到目前為止,我嘗試了這些設置:
/etc/salt/master:
publish_port: 465 ret_port: 443
/etc/salt/minion:
master_port: 465
那沒有用。
背景:
我有一個定制開發的應用程序,目前在大約 40 台 Kubuntu 筆記型電腦上執行(以及更多計劃)。每隔幾個月我就必須更新應用程序。(通常這只是替換 .jar 文件,這需要 root 權限。)我還必須執行 Ubuntu 更新和其他一些小事情。我一直在手動進行,使用 Team Viewer 登錄每個客戶端。
我想大大改進這個過程。我知道的兩個選項是:
- 使用反向 ssh 隧道和 bash 腳本。我對此進行了測試,並且可以正常工作。但我沒有得到任何報告,等等,我會得到 Salt Stack。
- 使用 Salt Stack(或類似的)管理工具。但我需要一個非常簡單的工具。我不能在一個大的學習曲線上投入任何時間。
我查看了 Puppet 和一堆相關工具。我發現唯一對我來說看起來足夠簡單的(到目前為止)是 Salt Stack。但我現在被困住了,因為我的奴才無法接觸到鹽大師,如上所述。
我很感激建議。
答案是“它只是有效”。無需更改配置文件(master 或 minion 的)。Minions 無需擔心 NAT 或防火牆。
但是,在master上,需要在防火牆上打開兩個埠。我通過以下方式完成了這項工作:
iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT
在 minions 上,向 /etc/hosts 添加一個條目,將名稱“salt”指向主伺服器的 IP 地址。例子:
root@minion2:~# cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 111.222.333.444 salt salt.example.com
真的,這很簡單。