Configuration-Management

如何在 NAT 後面使用 Salt Stack 和 minions(不可公開訪問,預設 salt 埠未打開)?

  • December 2, 2019

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 登錄每個客戶端。

我想大大改進這個過程。我知道的兩個選項是:

  1. 使用反向 ssh 隧道和 bash 腳本。我對此進行了測試,並且可以正常工作。但我沒有得到任何報告,等等,我會得到 Salt Stack。
  2. 使用 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

真的,這很簡單。

引用自:https://serverfault.com/questions/518230