понедельник, 26 июля 2021 г.

pfSense 2.5, в качестве гостя Proxmox VE (qemu-guest-agent)

В продолжение темы виртуального роутера, для полноценной интеграции в кластер Proxmox VE на pfSense, необходимо установить гостевого агента, но в стандартном наборе пакетов он отсутствует, а так, как pfSense, по сути своей встраиваемая система, пробовать ставить агента по аналогии с FreeBSD 13 не имеет смысла - мы не сможем его собрать из исходников - в системе отсутствует коллекция портов и это будет сущий гемор, поэтому мы пойдем другим путем.

В первую очередь проверяем загрузку модуля ядра virtio_console

# kldstat
Id Refs Address                Size Name
 1    7 0xffffffff80200000  3aea720 kernel
 2    1 0xffffffff83f19000     1000 cpuctl.ko
 3    1 0xffffffff83f1a000     2698 intpm.ko
 4    1 0xffffffff83f1d000      b40 smbus.ko

Не видим запущенного модуля и для его загрузки выполняем

# kldload virtio_console
kldload: can't load virtio_console: module already loaded or in kernel

Делаем вывод, что модуль вкомпилирован в ядро, проверяем:

# ls -al /dev/vtcon/
total 1
dr-xr-xr-x   2 root  wheel  512 Jul 23 12:45 .
dr-xr-xr-x  10 root  wheel  512 Jul 23 12:45 ..
lrwxr-xr-x   1 root  wheel   10 Jul 23 12:45 com.redhat.spice.0 -> ../ttyV1.1
lrwxr-xr-x   1 root  wheel   10 Jul 23 12:45 org.qemu.guest_agent.0 -> ../ttyV0.1

Проверяем на базе какой именно версии FreeBSD собрана наша версия pfSense

# uname -a
FreeBSD pfSense.local 12.2-STABLE FreeBSD 12.2-STABLE fd0f54f44b5c(RELENG_2_5_0) pfSense  amd64

Видим, что pfSense 2.5 основан на FreeBSD 12.2 и на наше счастье, на странице проекта qemu-guest-agent на GitHub есть скомпилированный пакет под нашу версию, потому просто выполняем:

# pkg add https://github.com/aborche/qemu-guest-agent/releases/download/v0.1/qemu-guest-agent-5.0.1_FreeBSD_12.2-STABLE.txz
Fetching qemu-guest-agent-5.0.1_FreeBSD_12.2-STABLE.txz: 100%  111 KiB 113.2kB/s    00:01    
Installing qemu-guest-agent-5.0.1...
Extracting qemu-guest-agent-5.0.1: 100%
=====
Message from qemu-guest-agent-5.0.1:

--
=======================================================
Modify your `/etc/rc.conf` by adding these settings

qemu_guest_agent_enable="YES"
qemu_guest_agent_flags="-d -v -l /var/log/qemu-ga.log"

and run
# service qemu-guest-agent start

For detailed help use `qemu-ga -h`
=======================================================

Так как это pfSense, а не FreeBSD, править, следуя рекомендации из вывода /etc/rc.conf, не имеет смысла, так как он не используется, а его агалог генерируется из Веб интерфейса во временных папках при каждой загрузке, поэтому добавляем указанные строки в /etc/defaults/rc.conf

qemu_guest_agent_enable="YES"
qemu_guest_agent_flags="-d -v -l /var/log/qemu-ga.log"

Запускаем службу

# service qemu-guest-agent start
Starting qemu_guest_agent.

Для автоматического запуска службы создаем два файла: /etc/rc.local и /etc/rc.local.running.
В файл /etc/rc.local добавляем строчку:

service qemu-guest-agent start

Перегружаемся и убеждаемся, что все работает


Послесловие
Однажды настанет момент, когда выйдет новая версия pfSense и готового пакета, для соответствующей версии FreeBSD не окажется, тогда необходимо собрать его самостоятельно, установив временную виртуалку с FreeBSD нужной версии, после чего перенести полученный файл на виртуалку с pfSense и установить как описано выше. Пример данного подхода описан здесь.

Комментариев нет:

Отправить комментарий