[Avocado-devel] Avocado-vt support for Ubuntu 14.04
Lukáš Doktor
ldoktor at redhat.com
Tue Jan 31 08:06:59 UTC 2017
Dne 25.1.2017 v 06:44 Adil Kamal napsal(a):
> Hello,
>
> Please confirm if avocado (and more particularly avocado-vt) is
> supported for Ubuntu in general, and Ubuntu 14.04 in specific. I am able
> to install avocado with some plugin errors though, however can not get
> avocado-vt to install on Ubuntu. Any clarity would be appreciated. I am
> looking for a tool to test KVM compatibility with ARM v8 hardware. Thank
> you.
>
> Best,
> Adil Mir
Hello Adil,
I already responded to you about running arm64 avocado-vt tests in
private, let me share excerpt of my script to setup avocado which I use
(not only) on arm:
```
AVOCADO_PATH=${AVOCADO_PATH:-"/home/jenkins/avocado"}
AVOCADO_DATA_PATH=${AVOCADO_DATA_PATH:-"/var/lib/libvirt/images/avocado"}
AVOCADO_VT_PATH=${AVOCADO_VT_PATH:-"$AVOCADO_PATH/../avocado-vt"}
ISOS_PATH=${ISOS_PATH:-"/home/isos"}
QEMU=${QEMU:-"/usr/libexec/qemu-kvm"}
# Some architectures requires additional tweaks
ARCH=`uname -m`
if [[ "$ARCH" =~ "ppc64" ]]; then
ARCH="ppc64"
MACHINE="pseries"
elif [ "$ARCH" == "aarch64" ]; then
ARCH="arm64"
MACHINE="aarch64"
fi
# Prerequisites + python-pip
yum install -y PyYAML tcpdump genisoimage python-requests libvirt-python
python-sphinx libvirt-devel gstreamer-python gdb gdb-gdbserver
python-imaging bridge-utils git python-devel
yum install -y cryptsetup libseccomp libffi-devel
if ! [ -x "$(command -v pip)" ]; then
cd /tmp
wget
https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz
--no-check-certificate
tar xzf setuptools-7.0.tar.gz
cd setuptools-7.0
python setup.py install
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
fi
# Update repositories
[ -d "$AVOCADO_PATH" ] || git clone
https://github.com/avocado-framework/avocado.git "$AVOCADO_PATH"
[ -d "$AVOCADO_VT_PATH" ] || git clone
https://github.com/avocado-framework/avocado-vt.git "$AVOCADO_VT_PATH"
cd "$AVOCADO_PATH" && git checkout master && git fetch --all && git
reset --hard origin/master
cd "$AVOCADO_VT_PATH" && git checkout master && git fetch --all && git
reset --hard origin/master
# Install avocado and avocado-vt
cd "$AVOCADO_PATH"
pip install -r requirements.txt
make install
cd "$AVOCADO_PATH/optional_plugins/html"
python setup.py install
cd "$AVOCADO_VT_PATH"
pip install -r requirements.txt
make install
# Modify default config
sed -i "s@^data_dir =.*@data_dir = $AVOCADO_DATA_PATH at g"
/etc/avocado/avocado.conf
sed -i "s/^skip_broken_plugin_notification
=.*/skip_broken_plugin_notification =
['avocado.core.plugins.htmlresult', 'avocado.core.plugins.remote',
'avocado.core.plugins.vm']/g" /etc/avocado/avocado.conf
sed -i "s/^arch =.*/arch = $ARCH/g" /etc/avocado/conf.d/vt.conf
sed -i "s/^machine_type =.*/machine_type = $MACHINE/g"
/etc/avocado/conf.d/vt.conf
sed -i "s/^mem =.*/mem = 2048/g" /etc/avocado/conf.d/vt.conf
sed -i "s/^sandbox =.*/sandbox = off/g" /etc/avocado/conf.d/vt.conf
# Add unattended_install..url url to RHEL.7.devel and use different
kickstart
cat /usr/share/avocado-plugins-vt/shared/unattended/JeOS-23.ks | grep -v
-e "/fill-up-file" >
/usr/share/avocado-plugins-vt/shared/unattended/RHEL-7-nightly.ks
sed -i "s/^text$/GRAPHICAL_OR_TEXT/g"
/usr/share/avocado-plugins-vt/shared/unattended/RHEL-7-nightly.ks
sed -i "s/^part \/ --fstype=ext4.*/autopart/g"
/usr/share/avocado-plugins-vt/shared/unattended/RHEL-7-nightly.ks
sed -i "s/^selinux --enforcing/selinux --disable/g"
/usr/share/avocado-plugins-vt/shared/unattended/RHEL-7-nightly.ks
sed -i "s/^%packages$/%packages --ignoremissing/g"
/usr/share/avocado-plugins-vt/shared/unattended/RHEL-7-nightly.ks
for NAME in aarch64 ppc64 ppc64le x86_64; do
cat >>
/usr/share/avocado-plugins-vt/shared/cfg/guest-os/Linux/RHEL/7.devel/$NAME.cfg
<< EOF
unattended_install..url:
url = http://LINK_TO_RHEL_OS
unattended_file = unattended/RHEL-7-nightly.ks
EOF
done
# Re-run bootstrap and update configuration
[ -d "$ISOS_PATH" ] || mkdir -p "$ISOS_PATH"
if [ ! -e "$AVOCADO_DATA_PATH" ] || [ ! -L
"$AVOCADO_DATA_PATH/avocado-vt/isos" ]; then
rm -Rf "$AVOCADO_DATA_PATH"
mkdir -p "$AVOCADO_DATA_PATH/avocado-vt"
ln -s "$ISOS_PATH" "$AVOCADO_DATA_PATH/avocado-vt/isos"
fi
avocado vt-bootstrap --vt-guest-os RHEL.7.devel --vt-no-downloads
--yes-to-all --vt-selinux-setup --vt-update-config --vt-update-providers
avocado vt-bootstrap --vt-type libvirt --vt-guest-os RHEL.7.devel
--vt-no-downloads --yes-to-all --vt-selinux-setup --vt-update-config
# TODO: Remove when https://github.com/spiceqa/tp-spice/pull/43 is resolved
rm -Rf
"$AVOCADO_DATA_PATH/avocado-vt/test-providers.d/downloads/io-github-spiceqa-spice"
```
It's RHEL specific but it should be easy to modify it for your needs.
The python dependencies comes from PIP as EPEL is not supported on arm.
Kind regards,
Lukáš
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 502 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/avocado-devel/attachments/20170131/43dc07b9/attachment.sig>
More information about the Avocado-devel
mailing list