Install Nodepool

Initial Setup

First we’ll create the nodepool user and set up some directories it needs. We also need to create an SSH key for Zuul to use when it logs into the nodes that Nodepool provides.

sudo groupadd --system nodepool
sudo useradd --system nodepool --home-dir /var/lib/nodepool --create-home -g nodepool
ssh-keygen -t rsa -m PEM -b 2048 -f nodepool_rsa -N ''
sudo mkdir /etc/nodepool/
sudo mkdir /var/log/nodepool
sudo chgrp -R nodepool /var/log/nodepool/
sudo chmod 775 /var/log/nodepool/

Installation

Clone the Nodepool git repository and install it. The bindep program is used to determine any additional binary dependencies which are required.

# All:
git clone https://opendev.org/zuul/nodepool
pushd nodepool/

# For Fedora and CentOS:
sudo yum -y install $(bindep -b compile)

# For openSUSE:
sudo zypper install -y $(bindep -b compile)

# For Ubuntu:
sudo apt-get install -y $(bindep -b compile)

# All:
sudo pip3 install .
popd

Service File

Nodepool includes a systemd service file for nodepool-launcher in the etc source directory. To use it, do the following steps.

pushd nodepool/
sudo cp etc/nodepool-launcher.service /etc/systemd/system/nodepool-launcher.service
sudo chmod 0644 /etc/systemd/system/nodepool-launcher.service
popd

If you are installing Nodepool on CentOS 7 and copied the provided service file in previous step, please follow the steps below to use corresponding systemd drop-in file so Nodepool service can be managed by systemd.

pushd nodepool/
sudo mkdir /etc/systemd/system/nodepool-launcher.service.d
sudo cp etc/nodepool-launcher.service.d/centos.conf \
        /etc/systemd/system/nodepool-launcher.service.d/centos.conf
sudo chmod 0644 /etc/systemd/system/nodepool-launcher.service.d/centos.conf
popd