Packer 및 Qemu - SIGKILL 중에 Qemu가 중단됨 - 재부팅이 요청됨

Packer 및 Qemu - SIGKILL 중에 Qemu가 중단됨 - 재부팅이 요청됨

packer를 사용하여 Ubuntu 19.04 서버 이미지를 빌드하려고 합니다. 부팅하고 설치를 실행하는 것이 괜찮아 보이는데 한 시간 후에 Qemu는 설치가 완료되고 SIGINT때때로 SIGKILL전송되고 재부팅이 요청되었다고 표시하지만 Qemu가 OS를 재부팅하지 않기 때문에 결국 패커 시간이 초과됩니다. packer SSH를 입력하고 작업을 완료합니다. Qemu가 재부팅에 실패하는 이유에 대한 내용을 출력하도록 몇 가지 시도를 했습니다.

-serial stdio

-serial mon:stdio

-serial telnet:127.0.0.1:4444,server,nowait

모두 소용이 없습니다. 나는 Qemu로부터 어떠한 피드백도 받지 못했습니다. 또한 추적을 구성하고 -append console=ttyS0커널을 사용하여 좋은 예를 찾으려고 노력했습니다 . 저는 Qemu와 Packer의 신봉자입니다. 만약 제가 뭔가 분명한 것을 놓치고 있다면 용서해주세요. 재부팅 시 Qemu가 중단되는 이유를 파악하기 위해 qemu를 디버깅하는 방법을 찾기 위해 많은 검색을 수행했습니다.

Ubuntu 19.04 데스크탑 빌드:

패커: 1.4.1

Qemu: 3.1.0 (적절한 설치)

macOS 10.14.5 빌드 환경:

패커: 1.4.0

Qemu: 4.0.0 (brew 설치)

두 환경 모두에서 qemu는 재부팅 부분에서 멈추는 것 같습니다. 나는 -display gtkUbuntu 데스크탑을 사용하고 그것이 어디에 있는지 확인하는 동안 버그(?)가 있고 -display sdlMac에서는 손상되어 gtk가 작동하지 않기 때문에 보인다고 말합니다 . Mac에서도 커스를 시도했지만 그것도 작동하지 않습니다. 그래서 내가 알 수 있는 한, 둘 다 같은 지점에서 깨졌습니다. 필요한 경우 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에서 구성 파일을 수정한 후 빌드를 얻을 수 있었습니다.

관련 정보