AutoBuilder Cluster Setup
From Yocto Project
Jump to navigationJump to search
While the instructions below are targeted at setting up a new AutoBuilder cluster, they are equally valid for an single machine with combined controller and worker, except you probably won't use a NAS for storage. The controller portion requires only 2 GB of local disk space; the worker requires 2+ TB to hold all the build temp files and git repos. If build artifacts and a local sstate mirror are included, additional worker space is required.
As root
- Install base OS with minimal target
- Install the requirements from http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html
- (Note: if you plan to build the poky-eclipse-neon plugin, openjdk-headless 1.8 is required.)
- If you plan to run the sanity tests (which is typical for an AB), the following additional packages need to be installed:
- GitPython for Python2 and Python3
- xsltproc
- gnupg
- vncserver (whichever one is provided by the distro is fine)
- Add pokybuild user (uid=6000, or for older clusters 1006)
- Add pokybuild user to "users" group (gid 100) (if "users" group does not exist, create it)
- Following the instructions from https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu, give /dev/kvm permissions to the pokybuild user.
- If a "kvm" group does not exist, add it to /etc/group and ensure /dev/kvm gid is set to "kvm" and is mode 660. Add pokybuild user to the "kvm" group.
- git clone --single-branch https://git.yoctoproject.org/git/poky /root/poky (in /root for historical reasons, should change in the future)
- Install https://downloads.yoctoproject.org/releases/yocto/yocto-{latest_release}/toolchain/x86_64/poky-glibc-x86_64-core-image-sato-core2-64-toolchain-{relver}.sh to /opt/poky.
- Add startup scripts to create tap devs and start vncserver, in /etc/rc.local, /etc/init.d/boot.local, or as systemd unit files, which should perform the following:
- cd /root/poky/scripts/; ./runqemu-gen-tapdevs 6000 100 32 /opt/poky/sysroots/x86_64-pokysdk-linux/ Note that the location of the buildtools might actually be different than the example shown here. If you run into a tunctl error when generating the tapdevs, it's likely a path problem.
- /bin/su - pokybuild -c "/usr/bin/vncserver"
- You will need to run vncserver once as the pokybuild user, and set the password. The password of "builder" is generally used.
- Disable or edit firewall rules to allow all connections to the tap devices. This allows sanity tests to connect to booted images.
- Install nfs-utils or nfs-common, add Domain to /etc/idmapd.conf, fstab entry, mount NAS under /srv/autobuilder.
- We use more watches then the defaults generally allow so, echo "fs.inotify.max_user_watches=65536" >> /etc/sysctl.conf
As pokybuild
- Set up buildset-config, either:
- Add ssh key to clone production yocto-autobuilder
- git clone https://git.yoctoproject.org/git/yocto-autobuilder && cd yocto-autobuilder && git remote add prod git@git.yoctoproject.org:yocto-autobuilder-production && git fetch prod && git checkout -b yoctoio prod/yoctoio
- or:
- edit one of the several examples included in repo e.g. cp -r buildset-config.controller buildset-config
- update config/autobuilder.conf and yocto-worker/buildbot.tac
- Start the worker
- touch ~/yocto-autobuilder/.setupdone
- . yocto-autobuilder-setup
- ./yocto-start-autobuilder worker