упаковщик: ssh коммуникатор игнорирует "ssh_port" - PullRequest
0 голосов
/ 10 июня 2019

Я работаю над созданием виртуальной машины VirtualBox с типом «virtualbox-iso» и OpenSUSE 42.3 в качестве гостевой ОС. Я указываю хост и порт, которые ssh-коммуникатор должен использовать во время сборки, но похоже, что упаковщик игнорирует портСпецификация.

Я перезаписываю настройки по умолчанию для хоста и порта в моем разделе "строители".Вот выдержка из моего файла 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",

Упаковщик не может подключиться к виртуальной машине, поскольку упаковщик игнорирует порт, который я предоставляю с помощью "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

Это ожидаемое поведение или я что-то не так делаю?

1 Ответ

0 голосов
/ 10 июня 2019

Это из-за того, как работают сети VirtualBox NAT. С хоста вы не можете напрямую связаться с гостевой виртуальной машиной. Packer решает эту проблему, устанавливая правило переадресации портов. Случайный порт между ssh_host_port_min и ssh_host_port_max перенаправляется на гостевые виртуальные машины ssh_port .

Если вы хотите установить для этого параметра значение ssh_skip_nat_mapping в true, но вы должны убедиться, что у вас есть сетевая настройка, в которой Packer может связаться с гостем.

...