Packer と Qemu - SIGKILL 中に Qemu がハングアップ - 再起動が要求される

Packer と Qemu - SIGKILL 中に Qemu がハングアップ - 再起動が要求される

私は、packer を使用して Ubuntu 19.04 サーバー イメージを構築しようとしています。起動してインストールを実行すると、一見問題なく、1 時間ほど経つと、Qemu はインストールが完了したことを示し、 と がSIGINT送信SIGKILLされ、再起動が要求されますが、Qemu は OS を再起動して packer が SSH で接続して作業を完了できないため、最終的に packer はタイムアウトします。Qemu が再起動に失敗する理由について何かを出力させるために、いくつかのことを試しました。

-serial stdio

-serial mon:stdio

-serial telnet:127.0.0.1:4444,server,nowait

すべて無駄でした。Qemu からは何のフィードバックも得られません。また、トレースと-append console=ttyS0カーネルを構成するための良い例も見つけようとしました。私は Qemu と Packer の初心者なので、明らかなことを見逃していたらご容赦ください。再起動時にハングする理由を突き止めるために、qemu をデバッグする方法を見つけようと、いろいろと調べました。

Ubuntu 19.04 デスクトップビルド:

パッカー: 1.4.1

Qemu: 3.1.0 (apt インストール)

macOS 10.14.5 ビルド環境:

パッカー: 1.4.0

Qemu: 4.0.0 (brew インストール)

どちらの環境でも、qemu は再起動時にハングするようです。 どうやら、-display gtkUbuntu デスクトップではハングするところを確認しましたが、バグ(?)があり、-display sdlMac では壊れていて、gtk は動作しません。また、Mac で curses も試しましたが、これも動作しません。したがって、私が知る限り、どちらも同じ場所で壊れます。必要な場合は、preseed.cfg を提供できます。

これが私のですubuntu.json:

{
    "builders": [
        {
            "type": "qemu",
            "boot_command": [
                "<enter><wait2><esc><wait2><enter>",
                "<wait>",
                "/install/vmlinuz",
                " initrd=/install/initrd.gz quiet",
                " vga=788",
                " auto=true",
                " priority=critical",
                " reboot=pci",
                " url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg",
                " --- <enter>"
            ],
            "qemuargs": [
                ["-display", "gtk"],
                ["-serial", "stdio"]
            ],
            "boot_wait": "5s",
            "disk_size": 20000,
            "headless": false,
            "http_directory": "http",
            "iso_url": "http://cdimage.ubuntu.com/releases/19.04/release/ubuntu-19.04-server-amd64.iso",
            "iso_checksum_type": "sha256",
            "iso_checksum_url": "http://cdimage.ubuntu.com/releases/19.04/release/SHA256SUMS",
            "communicator": "ssh",
            "ssh_username": "ubuntu",
            "ssh_password": "ubuntu",
            "ssh_port": 22,
            "ssh_wait_timeout": "120m",
            "shutdown_command": "echo 'ubuntu' | sudo shutdown -P now",
            "vm_name": "ubuntu-19.04-amd64.qcow2"
        }
    ]
}

答え1

私はそうだったようです競合状態に陥るQemu 4 でビルドすると問題は解決し、macOS で設定ファイルを修正したらビルドできるようになりました。

関連情報