Posso redirecionar virt-install
a entrada/saída para o console com a --console
opção:
virt-install \
--name centos \
--ram 1024 \
--os-type linux \
--os-variant centos7.0 \
--graphics none \
--location ~/CentOS-7-x86_64-Minimal-1908.iso \
--extra-args 'console=ttyS0,115200n8 serial' \
--console pty,target.type=serial
Eu gostaria de enviar a entrada do console de um script e, por esse motivo, tentei um pipe nomeado. No kvm simples pode-se usar a opção:
-serial pipe:/tmp/centos
onde /tmp/centos
está o pipe nomeado:
mkfifo /tmp/centos.in /tmp/centos.out
Em virt-install
tentei substituir o --console
por várias combinações ao longo da linha de:
--console pty,target.type=serial,source.path=/tmp/centos
mas nada está disponível com:
cat /tmp/centos.out
e nada é enviado para a VM com:
echo cmd > /tmp/centos.in
Como posso enviar comandos de um script de host para o convidado?
Libvirt tem XML nativo para a opção 'pipe': https://libvirt.org/formatdomain.html#elementsCharPipe
Com virt-install deve ser:
--console pipe,source.path=/path/to/my/pipe