Настройка Buildbot для хоста виртуальных машин
Эта страница документирует общий процесс настройки сервера, выступающего в качестве хоста виртуальных машин, аналогично описанному в разделе Настройка Buildbot для виртуальных машин.
- Подготовьте оборудование с последней версией Ubuntu LTS.
- Добавьте хост в DNS.
- Примените обновления (замените
<host>на имя хоста).
ssh <host>.mariadb.net sudo apt-get update sudo apt-get dist-upgrade
- Установите некоторые любимые пакеты (они необязательны, но мне они нравятся).
sudo apt-get install tree renameutils vim-nox
- Администратору buildbot необходимо добавить новый хост в разрешённый список клиентов rsync на главном хосте VM (хост, являющийся официальным хостом файлов VM). Главный хост VM меняется периодически, поэтому убедитесь, что вы используете правильный.
vi /etc/rsyncd.conf
- Создайте директорию
/kvm/и выполните rsync с главным хостом VM выше. Директория часто расположена в/home/kvm/(или в том месте, где находится накопитель) и затем связана с/kvm/. Виртуальные машины полагаются на путь/kvm/vms/, поэтому требуется расположение/kvm/.
vm_master="hostname" # ask for this from a buildbot admin
mkdir /home/kvm
ln -sv /home/kvm /kvm
rsync --dry-run --delete --exclude=deprecated \\
--exclude=iso --exclude=lost+found -avPL ${vm_master}::kvm/ /home/kvm/
# assuming the dry-run looks good, start the "real" rsync in a screen session
screen
rsync --delete --exclude=deprecated --exclude=iso --exclude=lost+found -avPL ${vm_master}::kvm/ /home/kvm/
- Отсоединитесь от сеанса с помощью
Ctrl+a d.
- (Необязательно) Настройте vim.basic в качестве основного редактора.
update-alternatives --config editor
- Установите buildbot-slave, bzr и kvm.
sudo apt-get install bzr git buildbot-slave qemu kvm sudo apt-get install libsdl2-2.0-0
- Создайте пользователя по умолчанию, а затем добавьте его в соответствующие группы.
username="mydefaultusername"
sudo adduser ${username}
for group in sudo tty kvm;do
sudo adduser ${username} ${group}
done
- Выйдите из системы, войдите как пользователь по умолчанию и измените пароль.
- Настройте файл
/.ssh/authorized_keys, чтобы иметь возможность входа таким способом.
- (Необязательно) Создайте других стандартных пользователей и настройте их ключи SSH.
- Отключите вход с помощью пароля (ВАЖНО: убедитесь, что ключи SSH настроены до этого действия!) и запретите вход root и с использованием пароля (безопаснее разрешить вход только с помощью ключей SSH для обычных пользователей):
sudo perl -i -pe "s/#PasswordAuthentication yes/PasswordAuthentication no/" /etc/ssh/sshd_config sudo perl -i -pe "s/PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config sudo /etc/init.d/ssh restart
- Выполните checkout mariadb-tools.
mkdir ~/src cd ~/src/ bzr branch lp:mariadb-tools
- Поместите runvm в нужное место.
sudo cp -v ~/src/mariadb-tools/buildbot/runvm /usr/local/bin/ ls -l /usr/local/bin/
- Добавьте пользователя buildbot в группы kvm и tty.
sudo adduser buildbot kvm sudo adduser buildbot tty
- Администратор buildbot должен добавить этого билдера в файл
maria-master-private.cfgна хосте${buildmaster}, а также добавить его в массивc['slaves']в файлеmaria-master.cfg. Затем создайте buildslave, используя имя хоста и согласованный с вами и администратором buildbot${password}.
sudo buildslave create-slave /var/lib/buildbot/slaves/maria buildbot.askmonty.org ${host} ${password}
- Добавьте следующее в
/etc/default/buildslave(замените${hostname}на имя хоста).
HOME=/var/lib/buildbot
SLAVE_ENABLED[1]=1
SLAVE_NAME[1]="${hostname} maria slave"
SLAVE_USER[1]="buildbot"
SLAVE_BASEDIR[1]="$HOME/slaves/maria"
SLAVE_OPTIONS[1]=""
SLAVE_PREFIXCMD[1]=""
- Отредактируйте файлы admin и host, добавив контактную информацию и данные о билдере.
sudo vi /var/lib/buildbot/slaves/maria/info/*
- Скопируйте директорию buildbot .ssh с terrier.
scp terrier.askmonty.org:buildbot-ssh.tar.gz . cd /var/lib/buildbot sudo tar -zxvf ~/buildbot-ssh.tar.gz sudo chown -Rv buildbot: .ssh sudo chmod -v 700 .ssh sudo chmod -Rv go-r .ssh
- Отредактируйте /etc/passwd и измените оболочку пользователя buildbot с
/bin/falseна/bin/bash.
- Переключитесь к пользователю buildbot и скопируйте файлы
/etc/skel.
sudo su - buildbot cp -v /etc/skel/.bash* . cp -v /etc/skel/.profile . exit
- Измените права владения директорией
buildbot/slavesнаbuildbot:buildbot.
sudo chown -Rv buildbot:buildbot ~buildbot/slaves
- Переместите директорию
/var/lib/buildbotв/home(или в любое другое место для хранения данных), а затем создайте ссылку.
sudo mv -vi /var/lib/buildbot /home/;cd /var/lib/;sudo ln -sv /home/buildbot ./
- Обновите
/etc/default/localeи измените его на:LANG=en_US.UTF-8.
sudo vi /etc/default/locale sudo locale-gen
- Отслеживайте rsync, дождитесь его завершения.
- После завершения rsync проверьте скрипт runvm.
sudo su - buildbot
for i in '/kvm/vms/vm-xenial-amd64-serial.qcow2 6666 qemu64' '/kvm/vms/vm-xenial-i386-serial.qcow2 6666 qemu64' ; do \
set $i; \
runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/testtest/')" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y patch libaio1 debconf-utils unixodbc libxml2 libjudydebian1" \
"= scp -P $2 /kvm/vms/my55.seed /kvm/vms/sources.append buildbot@localhost:/tmp/" \
"sudo debconf-set-selections /tmp/my55.seed" \
"sudo sh -c 'cat /tmp/sources.append >> /etc/apt/sources.list'"; \
done
- Удалите виртуальные машины "testtest", созданные выше.
rm -v /kvm/vms/*testtest*
- Запустите buildslave.
sudo /etc/init.d/buildslave start tail -f ~buildbot/slaves/maria/twistd.log
- Подключитесь к
${buildmaster}через ssh и добавьте этот новый хост вkvm_slavesфайлаmaria-master.cfg.
sudo vi /etc/buildbot/maria-master.cfg
- Оставаясь на
${buildmaster}, проверьте и перезагрузите buildbot.
cd /etc/buildbot
sudo -u buildbot PYTHONPATH=/usr/local/buildbot/lib/python python -c 'exec open("maria-master.cfg", "r")'
sudo /etc/init.d/buildmaster reload
sudo tail -f /var/lib/buildbot/maria/twistd.log
Содержание, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают позиции MariaDB или любой другой стороны.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/buildbot-setup-for-vm-host/