Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible:在playbook中动态设置主机SSH端口_Ssh_Dynamic_Ansible_Ansible Inventory - Fatal编程技术网

Ansible:在playbook中动态设置主机SSH端口

Ansible:在playbook中动态设置主机SSH端口,ssh,dynamic,ansible,ansible-inventory,Ssh,Dynamic,Ansible,Ansible Inventory,我们有一个场景,一堆物联网设备不可公开访问,因为它们隐藏在专用网络的NAT后面 通常情况下,我们使用远程设备管理机制将ssh连接到这些设备,以使IoT设备(ansible主机)与服务器(ansible控制器)建立ssh连接,并将其端口22远程转发到本地服务器端口(通常在22XXX范围内)。这意味着ansible必须使用IP 127.0.0.1和(动态)22XXX端口通过ssh连接到远程设备 我们的想法是从远程设备管理(主机名是设备id)构建资源清册,启动playbook,作为第一个任务,让远程设

我们有一个场景,一堆物联网设备不可公开访问,因为它们隐藏在专用网络的NAT后面

通常情况下,我们使用远程设备管理机制将ssh连接到这些设备,以使IoT设备(ansible主机)与服务器(ansible控制器)建立ssh连接,并将其端口22远程转发到本地服务器端口(通常在22XXX范围内)。这意味着ansible必须使用IP 127.0.0.1和(动态)22XXX端口通过ssh连接到远程设备

我们的想法是从远程设备管理(主机名是设备id)构建资源清册,启动playbook,作为第一个任务,让远程设备管理从资源清册文件为设备id构建通道,将端口号注册为变量,并将主机端口更改为该变量。我们尝试了几种变体来实现这一点,但都没有成功。似乎ansible甚至在我们获得端口之前就尝试连接到远程主机

您是否知道如何在playbook开始时无连接的情况下,在playbook执行期间,ansible动态设置主机端口


提前谢谢你

看起来你没有在游戏中设置
收集事实:false
。要设置端口,请参阅。但这也可能是一个很好的例子