我必须使用Ansible在不同的物理计算机(OS X,Win,Ubuntu)上安装一堆开发流氓盒。只要所有ansible playbooks / roles / templates都统一(prod,dev)并存储在git中,使用ansible-pull并处理存储真实密码的prod配置和保险库不是一种选择。因此,我们的想法是让每个vagrantbox创建一个反向ssh隧道到某个服务器,其中ansible-playbook将应用于一系列端口。 问题是:如何从vagrantbox中选择一个免费端口,这样我就不必对开发人员创建的每个VM进行硬编码? 另一个问题:是否有其他不那么复杂的方法来配置在不同操作系统上工作的流浪汉?
答案 0 :(得分:1)
我发现如果将0设置为端口号,ssh会自动选择一个空闲端口。好跑 ssh -N -f -R 0:localhost:22 user @ middle-server 在我的流浪者在中间服务器上建立连接,在那里将localhost:port-picked重定向到vagrant:22,然后我可以将ansible-playbook应用到中间服务器上的一系列端口,而无需将剧本复制到流浪汉机器。