[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