Получение тайм-аута S SH при создании образа QCOW2 из Ubuntu 18.04 ISO с упаковщиком - PullRequest
1 голос
/ 07 февраля 2020

Получение времени ожидания при создании образа QCOW2 с Ubuntu 18.04 ISO с помощью упаковщика с использованием нижеприведенного шаблона. Ниже упаковщик. json используется.

Любая помощь по этому вопросу будет оценена по этому вопросу. Тот же шаблон работает для изображения 14.04. Добавлены подсвеченные qemuargs для UEFI: ["-b ios", "/usr/share/qemu/OVMF.fd"], который необходим для образа Ubuntu 18.04:

[packer-host] out: 2020/02/06 04:36:02 packer: 2020/02/06 04:36:02 [INFO] Attempting SSH connection...
[packer-host] out: 2020/02/06 04:36:02 packer: 2020/02/06 04:36:02 reconnecting to TCP connection for SSH
[packer-host] out: 2020/02/06 04:36:02 packer: 2020/02/06 04:36:02 handshaking with SSH
[packer-host] out: 2020/02/06 04:36:33 ui error: [1;31m==> qemu: Timeout waiting for SSH.[0m
[packer-host] out: [1;31m==> qemu: Timeout waiting for SSH.[0m
[packer-host] out: 2020/02/06 04:36:33 ui: [1;32m==> qemu: Deleting output directory...[0m
   {
  "builders":
  [
    {
      "type": "qemu",
      "iso_url": "xxxx-xxxxx-9e3083d.iso",
      "iso_checksum": "b9fc1719eaee3c31e65dda6d6ba31313",
      "iso_checksum_type": "md5",
      "output_directory": "output",
      "ssh_wait_timeout": "30s",
      "disk_size": 81920,
      "format": "qcow2",
      "headless": true,
      "accelerator": "kvm",
      "ssh_host_port_min": 2222,
      "ssh_host_port_max": 2229,
      "ssh_username": "admin",
      "ssh_password": "xxxx123",
      "ssh_port": 22,
      "qemuargs": [
         [ "-serial", "file:serial.out" ],
         [ "-device", "e1000,netdev=user.0" ],
         [ "-cpu", "host" ],
         [ "-smp", "4" ],
         [ "-m", "8192M" ],
         [ "-bios", "/usr/share/qemu/OVMF.fd"]
      ],
      "ssh_wait_timeout": "120m",
      "shutdown_command": "echo xxxx123 | sudo -S shutdown -P now",
      "vm_name": "xxxx-xxxx-9e3083d.qcow2",
      "net_device": "virtio-net",
      "disk_interface": "virtio",
      "boot_wait": "2s",
      "boot_command": [
        "<enter><wait>",
        "<enter>"
      ]
    }
  ],
  "provisioners": [
    {
       "type": "file",
       "source": "/etc/init/ttyS0.conf",
       "destination": "/var/tmp/ttyS0.conf"
    },
    {
      "type": "shell",
      "inline": [
         "sleep 120",
         "echo '=> Enabling ttyS0 service'",
         "echo xxxx123 | sudo -S cp /var/tmp/ttyS0.conf /etc/init/",
         "echo xxxx123 | sudo -S bash -c 'echo Azure > /opt/xxxx/etc/cloud_instance'",
         "echo xxxx123 | sudo -S chmod g+r /opt/xxxx/etc/cloud_instance",

         "echo '=> Updating hugetlbfs mount point'",
         "echo xxxx123 | sudo -S mkdir -p /huge",
         "echo xxxx123 | sudo -S grep -q hugetlbfs /etc/fstab && sudo sed -i '/hugetlbfs/d' /etc/fstab && sudo bash -c 'echo \"hugetlbfs /huge hugetlbfs defaults 0 0\" >> /etc/fstab'",

         "echo '=> Disabling password authentication'",
         "echo xxxx123 | sudo -S sed -i 's/#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config",

         "echo '=> Disabling SWAP partition for Azure builds'",
         "echo xxxx123 | sudo -S sed -i '/swap/d' /etc/fstab",
         "echo xxxx123 | sudo -S sed -i 's/^/#/' /etc/initramfs-tools/conf.d/resume",

         "echo '=> Cleaning up SSH keys'",
         "echo xxxx123 | sudo -S rm -rf /home/admin/.ssh/*",
         "echo xxxx123 | sudo -S shred -fu /etc/ssh/*_key /etc/ssh/*_key.pub",

         "echo '=> Cleaning up cloud-init dir'",
         "echo xxxx123 | sudo -S rm -rf /var/lib/cloud/*",
         "echo xxxx123 | sudo -S rm -rf /var/log/cloud-init*",

         "echo '=> Copy the 91_xxxx.cfg file to cloud.cfg.d folder'",
         "echo xxxx123 | sudo -S cp /etc/cloud.cfg.d/91_xxxx.cfg /etc/cloud/cloud.cfg.d/ 2>/dev/null || :",

         "echo '=> Change the Permissions for 91_xxxx.cfg file'",
         "echo xxxx123 | sudo -S chown xxxx:xxxx /etc/cloud/cloud.cfg.d/91_xxxx.cfg",
         "echo xxxx123 | sudo -S chmod 664 /etc/cloud/cloud.cfg.d/91_xxxx.cfg",

         "echo '=> Adding Azure DataSource'",
         "echo xxxx123 | sudo -S sed -i 's/datasource_list.*/datasource_list: [ ConfigDrive, OVF, Azure ]/g' /etc/cloud/cloud.cfg.d/91_xxxx.cfg",

         "echo '=> Uncomment the apt repository in sources.list file to download packages'",
         "echo xxxx123 | sudo -S [ ! -f /etc/init.d/vnms ] && echo xxxx123 | sudo -S sed -i.bak '7,$ s/# #_//' /etc/apt/sources.list",
         "echo '=> Updating apt sources list to Azure'",
         "echo xxxx123 | sudo -S sed -i 's/[a-z][a-z].archive.ubuntu.com/azure.archive.ubuntu.com/g' /etc/apt/sources.list",
         "echo xxxx123 | sudo -S sleep 120",
         "echo xxxx123 | sudo -S apt-get update",
         "echo xxxx123 | sudo -S sleep 120",

         "echo '=> Installing LTS HWE kernel'",
         "echo xxxx123 | sudo -S apt-get install --yes linux-image-virtual-lts-vivid linux-lts-vivid-tools-common",

         "echo '=>Installing HyperV KVP daemon'",
         "echo xxxx123 | sudo -S apt-get install --yes hv-kvp-daemon-init",

         "echo '=> Updating Grub command line'",
         "echo xxxx123 | sudo -S sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT.*/GRUB_CMDLINE_LINUX_DEFAULT=\"console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300\"/' /etc/default/grub",
         "echo xxxx123 | sudo -S [ -f /etc/default/grub.d/50-xxxx-grub.cfg ] && sudo -S sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT.*/GRUB_CMDLINE_LINUX_DEFAULT=\"console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300\"/' /etc/default/grub.d/50-xxxx-grub.cfg",
         "echo xxxx123 | sudo -S rm -f /etc/grub.d/50_xxxx",
         "echo xxxx123 | sudo -S update-grub2",

         "echo '=> Installing Windows Azure Linuxagent and update /etc/waagent.conf'",
         "echo xxxx123 | sudo -S apt-get purge --yes waagent*",
         "echo xxxx123 | sudo -S apt-get install --yes walinuxagent",
         "echo xxxx123 | sudo -S service walinuxagent restart",
         "echo xxxx123 | sudo -S waagent -force -deprovision",
         "export HISTSIZE=0",

         "echo '=> Revert to original sources.list file after downloading the packages.'",
         "echo xxxx123 | sudo -S [ ! -f /etc/init.d/vnms ] && echo xxxx123 | sudo -S mv /etc/apt/sources.list.bak /etc/apt/sources.list",

         "echo '=> Clearning Bash history'",
         "echo xxxx123 | sudo -S rm -rf .bash_history && unset HISTFILE"
       ]
    }
  ]
}

...