QEMUにプリインストールされているDebian Busterイメージを起動して配布用に設定するためにPackerを使用していますが、Packerがイメージを起動するたびにSSHを介した接続が失敗します。
openssh-server
Debianイメージは完全に更新されインストールされ、デフォルトのcd installPermitRootLogin
に設定されていますyes
。 Packer はイメージを起動して SSH 経由で接続しようとしますが、VNC に接続するまで SSH サーバーは起動しません。
以下は、実行中のQEMUコマンドです。
/usr/bin/qemu-system-x86_64 -name packer-qemu -machine type=pc,accel=tcg -netdev user,id=user.0,hostfwd=tcp::3841-:22 -device virtio-net,netdev=user.0 -drive file=image/packer-qemu,if=virtio,cache=writeback,discard=ignore,format=qcow2 -boot c -m 1024 -vnc 127.0.0.1:0
複数のシステムと複数のバージョンのQEMUでこの問題を確認しました。
QEMUコマンドを直接実行すると、Packerなしで問題を再現できます。
systemd-analyze
VNCが接続されるまで停止しますssh.service
。
SSHサーバーをデバッグモードに設定した場合分離されたディレクトリの権限がありません:/run/sshd間違い。このディレクトリは、VNC接続があり、SSHサーバーがデバッグ状態にない場合に存在します。
私の直感では、QEMUはコンソールポートのようなものを生成しないようですが、どのように修正するのかわかりません。
これは私のパッケージファイルです。
{
"builders": [
{
"type": "qemu",
"iso_url": "file:/home/user/buster.img",
"iso_checksum_type": "none",
"disk_image": "true",
"vm_name": "base.raw",
"headless": "true",
"cpus": "1",
"memory": "1024",
"boot_wait": "2m",
"shutdown_command": "systemctl poweroff",
"ssh_timeout": "2m",
"ssh_username": "root",
"ssh_password": "password",
"output_directory": "image"
}
]
}