Инструкция по разворачиванию girar-builder
Материал из ALT Linux Wiki
(Различия между версиями)
(→Инструкция по установке сборочницы:) |
м (→Примечания: +1 navigation banner) |
||
(14 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | |||
{{stub}} | {{stub}} | ||
- | == | + | |
- | # | + | == Приборы и материалы == |
- | # | + | # управляющая машина |
- | Конечно все эти машины могуть быть(и обычно так и делается) контейнерами | + | # по машине на каждую архитектуру-бранч (полный перебор) — то есть для сизифа, 4.1, 4.0 и архитектур i586, x86_64 нам нужно 6 машин. |
- | + | Конечно, все эти машины могуть быть (и обычно так и делается) контейнерами openvz. | |
- | == Настраиваем собирающие машины | + | |
+ | == Настраиваем собирающие машины == | ||
# здесь должно быть минимум всего | # здесь должно быть минимум всего | ||
- | # должен быть ssh доступ от управляющей машины(и больше | + | # должен быть ssh-доступ от управляющей машины (и больше ниоткуда) |
- | # | + | # должна быть копия репозитория (можно readonly), находящаяся в той же директории, что и на упраляющей машине; из софта нужны только hasher и rsync |
- | #должен быть юзер от которого управляющая машина приходит по ssh(для этого нужно | + | # должен быть юзер, от имени которого управляющая машина приходит по ssh (для этого нужно сгенерировать беспарольный ключ и разложить публичную часть по сборочницам, а приватную положить на управляющей); этот юзер должен иметь возможность запускать hasher (hasher-useradd) |
- | + | ||
- | == Инструкция по установке | + | == Инструкция по установке == |
# Берём машину со свежим сизифом | # Берём машину со свежим сизифом | ||
# На машине должен работать ssh | # На машине должен работать ssh | ||
- | # | + | # apt-get install git hasher gear sisyphus_check rpm-build qa-robot<ref>perl-RPM-Header — подразумевался perl-RPM-Header-Alt?</ref> |
- | # клонируем girar,собираем,ставим | + | # клонируем [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> |
- | # | + | # пользователь и группа girar-builder создаются автоматически при установке пакета girar; если используюся какие-либо bind mounts, стоит явно указать UID подальше от потенциально имеющих право на запись туда |
- | + | # создаем каталоги (или ссылки на каталоги) /people /gears /srpms с владельцем и группой girar-builder | |
- | + | # добавляем имена репозиториев в /etc/girar/repositories (по штуке на строку; названия — например, sisyphus 5.1 4.0) | |
- | # | + | # от пользователя girar-builder клонируем репозиторий с girar-builderом |
- | # | + | # копируем репозитории; они должны быть доступны на запись для girar-builder (наверное, ему принадлежать) |
- | # от пользователя girar-builder клонируем | + | # генерируем ssh-ключ на основной машине (беспарольный) и делаем, чтобы она могла от юзера girar-builder ходить по сборочным машинам |
- | # | + | # добавляем их в ~/.ssh/config так, чтобы они назывались, например, build-4.1-x86_64 и build-4.1-i586 |
- | # генерируем ssh | + | # создаём конфиги: один общий и по одному для каждого репозитория, например, так: |
- | # | + | :* gb-sh-conf-girar-builder |
- | # | + | |
- | + | ||
GB_GEARS_DIR=/gears/ | GB_GEARS_DIR=/gears/ | ||
GB_SRPMS_DIR=/srpms | GB_SRPMS_DIR=/srpms | ||
Строка 41: | Строка 38: | ||
GB_BUGZILLA_FROM= | GB_BUGZILLA_FROM= | ||
GB_REPO_SIGNER=org@altlinux.org | GB_REPO_SIGNER=org@altlinux.org | ||
- | + | :* gb-sh-conf-4.1 | |
+ | GB_REPO_LABEL=4.1 | ||
GB_REPO_DIR=/4.1 | GB_REPO_DIR=/4.1 | ||
GB_REPO_UP_NAME= | GB_REPO_UP_NAME= | ||
Строка 48: | Строка 46: | ||
GB_REPO_REL_SUFF_MUST_HAVE= | GB_REPO_REL_SUFF_MUST_HAVE= | ||
GB_REPO_CODENAME=4.1 | GB_REPO_CODENAME=4.1 | ||
- | + | :* gb-sh-conf-4.0 | |
GB_REPO_LABEL=4.0 | GB_REPO_LABEL=4.0 | ||
GB_REPO_DIR=/4.0 | GB_REPO_DIR=/4.0 | ||
Строка 57: | Строка 55: | ||
GB_REPO_CODENAME=4.0 | GB_REPO_CODENAME=4.0 | ||
- | == Добавление пользователей | + | == Несколько замечаний == |
- | #кладём ключ через реального пользователея в системе | + | * Некоторые вещи надо отключать, например, автозакрытие багов в багзиле |
- | #запускаем команду SUDO_USER= | + | * Список выполняемых действий можно редактировать в gb-run-task |
- | # например SUDO_USER=admin;girar-add user /home/admin/user | + | * Рекомендуется пользоваться -x для отладки. |
- | # после этого пользователь может работать с git но не может управлять заданиями | + | * На машине должен быть один большой / без всяких отдельных /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? | * Как иницировать ACL? | ||
* sisyphus прибит гвозядми | * sisyphus прибит гвозядми | ||
- | + | ||
+ | == Примечания == | ||
+ | {{примечания}} | ||
+ | |||
+ | {{Category navigation|title=git.alt|category=git.alt|sortkey={{SUBPAGENAME}}}} | ||
+ | {{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}} |
Текущая версия на 17:35, 11 декабря 2015
Содержание |
Приборы и материалы
- управляющая машина
- по машине на каждую архитектуру-бранч (полный перебор) — то есть для сизифа, 4.1, 4.0 и архитектур i586, x86_64 нам нужно 6 машин.
Конечно, все эти машины могуть быть (и обычно так и делается) контейнерами openvz.
Настраиваем собирающие машины
- здесь должно быть минимум всего
- должен быть ssh-доступ от управляющей машины (и больше ниоткуда)
- должна быть копия репозитория (можно readonly), находящаяся в той же директории, что и на упраляющей машине; из софта нужны только hasher и rsync
- должен быть юзер, от имени которого управляющая машина приходит по ssh (для этого нужно сгенерировать беспарольный ключ и разложить публичную часть по сборочницам, а приватную положить на управляющей); этот юзер должен иметь возможность запускать hasher (hasher-useradd)
Инструкция по установке
- Берём машину со свежим сизифом
- На машине должен работать ssh
- apt-get install git hasher gear sisyphus_check rpm-build qa-robot[1]
- клонируем girar.git, собираем, ставим
- создаем эталонный 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
- пользователь и группа girar-builder создаются автоматически при установке пакета girar; если используюся какие-либо bind mounts, стоит явно указать UID подальше от потенциально имеющих право на запись туда
- создаем каталоги (или ссылки на каталоги) /people /gears /srpms с владельцем и группой girar-builder
- добавляем имена репозиториев в /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 путь_к_ключу[2] gecos
- например SUDO_USER=admin;girar-add user /home/admin/user "Vladimir vladimirovich <vvp@gov.ru>
- после этого пользователь может работать с git, но не может управлять заданиями; для того, чтобы он мог управлять заданиями, надо сделать girar-build-enable user
Непонятно, замечания
- Как иницировать ACL?
- sisyphus прибит гвозядми