簡體   English   中英

打包程序:ssh 通信器忽略“ssh_port”

[英]packer: ssh communicator ignores "ssh_port"

我正在構建一個類型為“virtualbox-iso”和 OpenSUSE 42.3 作為來賓操作系統的 VirtualBox VM。我指定了 ssh 通信器在構建過程中應該使用的主機和端口,但看起來 packer 忽略了端口規范。

我正在“構建器”部分覆蓋主機和端口的默認設置。 這是我的 json 文件的摘錄:

  "builders": [
    {
      "type": "virtualbox-iso",

      "communicator": "ssh",
      "ssh_host": "192.168.1.5",
      "ssh_port": "22",
      "ssh_username": "some_user",
      "ssh_password": "some_password",
      "ssh_timeout": "20m",
      "ssh_handshake_attempts": "1000",

Packer 無法連接到 VM,因為 Packer 忽略了我通過“ssh_port”提供的端口。 這是調試輸出(使用 PACKER_LOG=1 啟用):

2019/06/10 15:10:10 packer: 2019/06/10 15:10:10 [INFO] Waiting 1s
2019/06/10 15:10:11 ui: ==> opensuse-master-box: Using ssh communicator to connect: 192.168.1.5
2019/06/10 15:10:11 packer: 2019/06/10 15:10:11 [INFO] Waiting for SSH, up to timeout: 20m0s
2019/06/10 15:10:11 ui: ==> opensuse-master-box: Waiting for SSH to become available...
2019/06/10 15:10:26 packer: 2019/06/10 15:10:26 [DEBUG] TCP connection to SSH ip/port failed: dial tcp 192.168.1.5:4240: i/o timeout
2019/06/10 15:10:31 packer: 2019/06/10 15:10:31 [DEBUG] TCP connection to SSH ip/port failed: dial tcp 192.168.1.5:4240: connect: connection refused
2019/06/10 15:10:36 packer: 2019/06/10 15:10:36 [DEBUG] TCP connection to SSH ip/port failed: dial tcp 192.168.1.5:4240: connect: connection refused
2019/06/10 15:10:41 packer: 2019/06/10 15:10:41 [DEBUG] TCP connection to SSH ip/port failed: dial tcp 192.168.1.5:4240: connect: connection refused

這是預期的行為還是我做錯了什么?

這是因為 VirtualBox NAT 網絡的工作方式。 您無法從主機直接訪問來賓 VM。 Packer 通過設置端口轉發規則來解決這個問題。 ssh_host_port_minssh_host_port_max之間的隨機端口被轉發到訪客虛擬機ssh_port

如果你想把這個 set ssh_skip_nat_mapping設置為true ,但是你必須確保你有一個網絡設置,Packer 可以訪問來賓。

這是因為您正在執行“22”而不是 22。配置正在尋找一個 int,而不是一個字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM