Инструкция по разворачиванию girar-builder: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «Для работы сборочници нам необходимо: 1.управляющая машина 2.по машине на каждую архитекту...»)
 
м (→‎Примечания: +1 navigation banner)
 
(не показана 21 промежуточная версия 6 участников)
Строка 1: Строка 1:
Для работы сборочници нам необходимо:
{{stub}}
1.управляющая машина
2.по машине на каждую архитектуру-бранч(полный перебор). Тоесть для сизифа,4.1,4.0 и архитектур i586,x86_64 нам нужно 6 машин.
Конечно все эти машины могуть быть(и обычно так и делается) контейнерами vz.
Настраиваем собирающие машины:
здесь должно быть минимум всего
должен быть ssh доступ от управляющей машины(и больше не от куда)
должена быть копия репозитария(можно readonly) находящаяся в той же директории что и на упраляющей машине
из софтра нужен только hasher и rsync
должен быть юзер от которого управляющая машина приходит по ssh(для этого нужно сгерировать безпарольный ключ положить этому юзеру)
этот юзер должен иметь возможность запускать hasher
source.list должен быть настроен на тот репозитарий и ту архетектуру под которую мы будем собирать на этой машине


Инструкция по установке сборочницы:
== Приборы и материалы ==
Берём машину со свежим сизифом
# управляющая машина
На машине должен работать ssh
# по машине на каждую архитектуру-бранч (полный перебор) — то есть для сизифа, 4.1, 4.0 и архитектур i586, x86_64 нам нужно 6 машин.
нам нужен пользователь от которого мы будем выполнять юзерские действия
Конечно, все эти машины могуть быть (и обычно так и делается) контейнерами openvz.
установить git hasher gear sisyphus_check rpmbuild perl-RPM-Header qa-robot
клонируем girar,собираем,ставим
создаем эталнный git репозитарий для пакетов(mkdir /etc/girar/packages.git; cd /etc/girar/pacakges.git;git init-db —bare)
аналогично private
аналогично public
Создаем юзера girar-builder
содать дериктории /people /archive /gears /meta /srpms
с владельцем и группой girar-builder
Добавить имена репозиториев в /etc/girar/repositories(через enter)


от него клонируем репозитарий с girar-builderом
== Настраиваем собирающие машины ==
Копируем репозитарии. Он должен быть доступен на запись для girar-builder(наверное ему пренадлижать)
 
берём ещё 2 vz контейнера
# здесь должно быть минимум всего
обновляем, ставим hasher и rsync
# должен быть ssh-доступ от управляющей машины (и больше ниоткуда)
заводим юзаера girar-builder, разрешаем пользоваться хешером
# должна быть копия репозитория (можно readonly), находящаяся в той же директории, что и на упраляющей машине; из софта нужны только hasher и rsync
генерируем ssh ключ на основной машине(безпарольный). Делаем чтобы она могла от юзера girar-builder ходить по тем 2м.
# должен быть юзер, от имени которого управляющая машина приходит по ssh (для этого нужно сгенерировать беспарольный ключ и разложить публичную часть по сборочницам, а приватную положить на управляющей); этот юзер должен иметь возможность запускать hasher (hasher-useradd)
Добавляем их ip в /etc/hosts так чтобы они назывались например так build-x86_64 и build-i586 (!конфиг!)
 
Добавление пользователей:
== Инструкция по установке ==
кладём ключ через реального, пользователея в системе
# Берём машину со свежим сизифом
запускаем команду SUDO_USER=имя реального пользователея; girar-add username путь_к_ключу(в хомнике реального пользователя) gecos
# На машине должен работать ssh
например SUDO_USER=admin;girar-add user /home/admin/user «Vladimir vladimirovich <vvp@gov.ru>  
# apt-get install git hasher gear sisyphus_check rpm-build qa-robot<ref>perl-RPM-Header — подразумевался perl-RPM-Header-Alt?</ref>
после этого пользователь может работать с git но не может управлять заданиями, для того чтобы он мог управлять заданиями надо сделать girar-build-enable user
# клонируем [http://git.altlinux.org/people/ldv/packages/?p=girar.git girar.git], собираем, ставим
Непонятно, замечания:
# создаем эталонный git репозиторий для пакетов (packages), аналогично private и public:<pre>for d in packages private public; do mkdir /etc/girar/$d.git; cd /etc/girar/$d.git; git init-db --bare; done</pre>
-Как иницировать ACL?
# пользователь и группа girar-builder создаются автоматически при установке пакета girar; если используюся какие-либо bind mounts, стоит явно указать UID подальше от потенциально имеющих право на запись туда
-sisyphus прибит гвозядми
# создаем каталоги (или ссылки на каталоги) /people /gears /srpms с владельцем и группой girar-builder
[[Категория:HOWTO]]
# добавляем имена репозиториев в /etc/girar/repositories (по штуке на строку; названия — например, sisyphus 5.1 4.0)
# от пользователя girar-builder клонируем репозиторий с girar-builderом
# копируем репозитории; они должны быть доступны на запись для girar-builder (наверное, ему принадлежать)
# генерируем ssh-ключ на основной машине (беспарольный) и делаем, чтобы она могла от юзера girar-builder ходить по сборочным машинам
# добавляем их в ~/.ssh/config так, чтобы они назывались, например, build-4.1-x86_64 и build-4.1-i586
# создаём конфиги: один общий и по одному для каждого репозитория, например, так:
:* gb-sh-conf-girar-builder
GB_GEARS_DIR=/gears/
GB_SRPMS_DIR=/srpms
GB_TASKS_DIR=/var/spool/girar/tasks/
GB_META_DIR=/meta
GB_HOME=/home/girar-builder/girar-builder/
GB_REPO_EMAIL=org@altlinux.org
GB_REPO_MIRRORS=localhost
GB_REPO_RPMARGS="-ba"
GB_BUGZILLA_FROM=
GB_REPO_SIGNER=org@altlinux.org
:* gb-sh-conf-4.1
GB_REPO_LABEL=4.1
GB_REPO_DIR=/4.1
GB_REPO_UP_NAME=
GB_REPO_DOWN_NAME=4.0
GB_REPO_REL_SUFF_MUST_NOT="M50"
GB_REPO_REL_SUFF_MUST_HAVE=
GB_REPO_CODENAME=4.1
:* gb-sh-conf-4.0
GB_REPO_LABEL=4.0
GB_REPO_DIR=/4.0
GB_REPO_UP_NAME=
GB_REPO_DOWN_NAME=
GB_REPO_REL_SUFF_MUST_NOT="M50 M41"
GB_REPO_REL_SUFF_MUST_HAVE=
GB_REPO_CODENAME=4.0
 
== Несколько замечаний ==
* Некоторые вещи надо отключать, например, автозакрытие багов в багзиле
* Список выполняемых действий можно редактировать в gb-run-task
* Рекомендуется пользоваться -x для отладки.
* На машине должен быть один большой / без всяких отдельных /var и прочего (т.к. cp -l).
 
== Добавление пользователей ==
# кладём ключ через реального пользователея в системе
# запускаем команду SUDO_USER=имя_реального_пользователя; girar-add username путь_к_ключу<ref>в хомнике реального пользователя</ref> gecos
# например SUDO_USER=admin;girar-add user /home/admin/user "Vladimir vladimirovich <vvp@gov.ru>
# после этого пользователь может работать с git, но не может управлять заданиями; для того, чтобы он мог управлять заданиями, надо сделать girar-build-enable user
 
== Непонятно, замечания ==
* Как иницировать ACL?
* sisyphus прибит гвозядми
 
== Примечания ==
{{примечания}}
 
{{Category navigation|title=git.alt|category=git.alt|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}

Текущая версия от 20:35, 11 декабря 2015

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Приборы и материалы

  1. управляющая машина
  2. по машине на каждую архитектуру-бранч (полный перебор) — то есть для сизифа, 4.1, 4.0 и архитектур i586, x86_64 нам нужно 6 машин.

Конечно, все эти машины могуть быть (и обычно так и делается) контейнерами openvz.

Настраиваем собирающие машины

  1. здесь должно быть минимум всего
  2. должен быть ssh-доступ от управляющей машины (и больше ниоткуда)
  3. должна быть копия репозитория (можно readonly), находящаяся в той же директории, что и на упраляющей машине; из софта нужны только hasher и rsync
  4. должен быть юзер, от имени которого управляющая машина приходит по ssh (для этого нужно сгенерировать беспарольный ключ и разложить публичную часть по сборочницам, а приватную положить на управляющей); этот юзер должен иметь возможность запускать hasher (hasher-useradd)

Инструкция по установке

  1. Берём машину со свежим сизифом
  2. На машине должен работать ssh
  3. apt-get install git hasher gear sisyphus_check rpm-build qa-robot[1]
  4. клонируем girar.git, собираем, ставим
  5. создаем эталонный git репозиторий для пакетов (packages), аналогично private и public:
    for d in packages private public; do mkdir /etc/girar/$d.git; cd /etc/girar/$d.git; git init-db --bare; done
  6. пользователь и группа girar-builder создаются автоматически при установке пакета girar; если используюся какие-либо bind mounts, стоит явно указать UID подальше от потенциально имеющих право на запись туда
  7. создаем каталоги (или ссылки на каталоги) /people /gears /srpms с владельцем и группой girar-builder
  8. добавляем имена репозиториев в /etc/girar/repositories (по штуке на строку; названия — например, sisyphus 5.1 4.0)
  9. от пользователя girar-builder клонируем репозиторий с girar-builderом
  10. копируем репозитории; они должны быть доступны на запись для girar-builder (наверное, ему принадлежать)
  11. генерируем ssh-ключ на основной машине (беспарольный) и делаем, чтобы она могла от юзера girar-builder ходить по сборочным машинам
  12. добавляем их в ~/.ssh/config так, чтобы они назывались, например, build-4.1-x86_64 и build-4.1-i586
  13. создаём конфиги: один общий и по одному для каждого репозитория, например, так:
  • gb-sh-conf-girar-builder
GB_GEARS_DIR=/gears/
GB_SRPMS_DIR=/srpms
GB_TASKS_DIR=/var/spool/girar/tasks/
GB_META_DIR=/meta
GB_HOME=/home/girar-builder/girar-builder/
GB_REPO_EMAIL=org@altlinux.org
GB_REPO_MIRRORS=localhost
GB_REPO_RPMARGS="-ba"
GB_BUGZILLA_FROM=
GB_REPO_SIGNER=org@altlinux.org
  • gb-sh-conf-4.1
GB_REPO_LABEL=4.1
GB_REPO_DIR=/4.1
GB_REPO_UP_NAME=
GB_REPO_DOWN_NAME=4.0
GB_REPO_REL_SUFF_MUST_NOT="M50"
GB_REPO_REL_SUFF_MUST_HAVE=
GB_REPO_CODENAME=4.1
  • gb-sh-conf-4.0
GB_REPO_LABEL=4.0
GB_REPO_DIR=/4.0
GB_REPO_UP_NAME=
GB_REPO_DOWN_NAME=
GB_REPO_REL_SUFF_MUST_NOT="M50 M41"
GB_REPO_REL_SUFF_MUST_HAVE=
GB_REPO_CODENAME=4.0

Несколько замечаний

  • Некоторые вещи надо отключать, например, автозакрытие багов в багзиле
  • Список выполняемых действий можно редактировать в gb-run-task
  • Рекомендуется пользоваться -x для отладки.
  • На машине должен быть один большой / без всяких отдельных /var и прочего (т.к. cp -l).

Добавление пользователей

  1. кладём ключ через реального пользователея в системе
  2. запускаем команду SUDO_USER=имя_реального_пользователя; girar-add username путь_к_ключу[2] gecos
  3. например SUDO_USER=admin;girar-add user /home/admin/user "Vladimir vladimirovich <vvp@gov.ru>
  4. после этого пользователь может работать с git, но не может управлять заданиями; для того, чтобы он мог управлять заданиями, надо сделать girar-build-enable user

Непонятно, замечания

  • Как иницировать ACL?
  • sisyphus прибит гвозядми

Примечания

  1. perl-RPM-Header — подразумевался perl-RPM-Header-Alt?
  2. в хомнике реального пользователя