Alpine: How to Install ovirt-guest-agent on Alpine Linux
To the best of my knowledge, Alpine Linux does not have an official package for ovirt-guest-agent yet (as February 17th, 2019). It is possible to build them from source however. It will require that you go somewhat against the Alpine philosophy of having the smallest amount of installed packages possible, but most of the build dependencies can be removed afterwards.
I am starting this guide with a fresh install of Alpine on the 3.9 repos. First, you can install all the dependencies in one shot with the following:
apk add qemu-guest-agent git alpine-sdk autoconf m4 findutils \ automake python linux-pam-dev udev coreutils libtools
There might be some overlap between packages listed and those pulled in by alpine-sdk
.
After the install finishes, we can git clone the source repo.
git clone https://github.com/ovirt/ovirt-guest-agent.git cd ovirt-guest-agent git fetch git checkout ovirt-$version
Where $version
is the most recent release. You can build off master if you desire, but that can be playing with fire. At the time of this article being written, 4.2 is the latest guest agent version available on Github.
With the sources now downloaded, the process becomes pretty similar to a standard autoconf
/automake
build:
autoreconf -fvi PYTHON=/usr/bin/python2 ./configure \ --prefix=/usr \ --bindir=/usr/bin \ --sbindir=/usr/bin \ --sysconfdir=/etc \ --localstatedir=/var \ --libdir=/usr/lib \ --datarootdir=/usr/share \ --datadir=/usr/share \ --infodir=/usr/share/info \ --includedir=/usr/include/security \ --enable-securedir=/usr/lib/security \ --with-pam-prefix=/etc \ --without-gdm \ --without-kdm make make install chmod a+x /usr/share/ovirt-guest-agent/ovirt-guest-agent.py
That will handle most but not all of the install. It does not make the rc
daemon file that we need, but don’t worry, it’s really basic to make this one./etc/init.d/ovirt-guest-agent
:
#!/sbin/openrc-run
name="oVirt Guest Agent"
pidfile="/var/run/ovirt-guest-agent.pid"
command="/usr/share/ovirt-guest-agent/ovirt-guest-agent.py"
command_args="-d"
To successfully start the service now, you will need to have udev
acknowledge the rule file that was installed:
udevadm trigger --subsystem-match="virtio-ports"
And finally, the run levels that need to be set for the service to successfully start after we reboot:
rc-update add qemu-guest-agent default rc-update add udev boot chmod +x /etc/init.d/ovirt-guest-agent rc-update add ovirt-guest-agent default
ovirt-guest-agent will now start on reboot, and can be stopped and started using the service file in /etc/init.d
.
To get rid of the now unneeded packages, you can run:
apk del alpine-sdk automake autoconf m4 git
Hope this helped!