Spec-Zone.ru › MariaDB

Настройка Buildbot для хоста виртуальных машин

Эта страница документирует общий процесс настройки сервера, выступающего в качестве хоста виртуальных машин, аналогично описанному в разделе Настройка Buildbot для виртуальных машин.

  1. Подготовьте оборудование с последней версией Ubuntu LTS.
  1. Добавьте хост в DNS.
  1. Примените обновления (замените <host> на имя хоста).
ssh <host>.mariadb.net
sudo apt-get update
sudo apt-get dist-upgrade
  1. Установите некоторые любимые пакеты (они необязательны, но мне они нравятся).
sudo apt-get install tree renameutils vim-nox
  1. Администратору buildbot необходимо добавить новый хост в разрешённый список клиентов rsync на главном хосте VM (хост, являющийся официальным хостом файлов VM). Главный хост VM меняется периодически, поэтому убедитесь, что вы используете правильный.
vi /etc/rsyncd.conf 
  1. Создайте директорию /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/
  1. Отсоединитесь от сеанса с помощью Ctrl+a d.
  1. (Необязательно) Настройте vim.basic в качестве основного редактора.
update-alternatives --config editor
  1. Установите buildbot-slave, bzr и kvm.
sudo apt-get install bzr git buildbot-slave qemu kvm 
sudo apt-get install libsdl2-2.0-0 
  1. Создайте пользователя по умолчанию, а затем добавьте его в соответствующие группы.
username="mydefaultusername"
sudo adduser ${username}
for group in sudo tty kvm;do
  sudo adduser ${username} ${group}
done
  1. Выйдите из системы, войдите как пользователь по умолчанию и измените пароль.
  1. Настройте файл /.ssh/authorized_keys, чтобы иметь возможность входа таким способом.
  1. (Необязательно) Создайте других стандартных пользователей и настройте их ключи SSH.
  1. Отключите вход с помощью пароля (ВАЖНО: убедитесь, что ключи 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
  1. Выполните checkout mariadb-tools.
mkdir ~/src
cd ~/src/
bzr branch lp:mariadb-tools
  1. Поместите runvm в нужное место.
sudo cp -v ~/src/mariadb-tools/buildbot/runvm /usr/local/bin/
ls -l /usr/local/bin/
  1. Добавьте пользователя buildbot в группы kvm и tty.
sudo adduser buildbot kvm
sudo adduser buildbot tty
  1. Администратор 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}
  1. Добавьте следующее в /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]=""
  1. Отредактируйте файлы admin и host, добавив контактную информацию и данные о билдере.
sudo vi /var/lib/buildbot/slaves/maria/info/*
  1. Скопируйте директорию 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
  1. Отредактируйте /etc/passwd и измените оболочку пользователя buildbot с /bin/false на /bin/bash.
  1. Переключитесь к пользователю buildbot и скопируйте файлы /etc/skel.
sudo su - buildbot
cp -v /etc/skel/.bash* .
cp -v /etc/skel/.profile .
exit
  1. Измените права владения директорией buildbot/slaves на buildbot:buildbot.
sudo chown -Rv buildbot:buildbot ~buildbot/slaves
  1. Переместите директорию /var/lib/buildbot в /home (или в любое другое место для хранения данных), а затем создайте ссылку.
sudo mv -vi /var/lib/buildbot /home/;cd /var/lib/;sudo ln -sv /home/buildbot ./
  1. Обновите /etc/default/locale и измените его на: LANG=en_US.UTF-8.
sudo vi /etc/default/locale
sudo locale-gen
  1. Отслеживайте rsync, дождитесь его завершения.
  1. После завершения 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
  1. Удалите виртуальные машины "testtest", созданные выше.
rm -v /kvm/vms/*testtest*
  1. Запустите buildslave.
sudo /etc/init.d/buildslave start

tail -f ~buildbot/slaves/maria/twistd.log
  1. Подключитесь к ${buildmaster} через ssh и добавьте этот новый хост в kvm_slaves файла maria-master.cfg.
sudo vi /etc/buildbot/maria-master.cfg
  1. Оставаясь на ${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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API