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

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(вычитка, викификация)
Строка 1: Строка 1:
{{викифицировать}}
 
 
{{stub}}
 
{{stub}}
== Для работы сборочници нам необходимо: ==
+
 
#.управляющая машина
+
== Приборы и материалы ==
#.по машине на каждую архитектуру-бранч(полный перебор). Тоесть для сизифа,4.1,4.0 и архитектур i586,x86_64 нам нужно 6 машин.
+
# управляющая машина
Конечно все эти машины могуть быть(и обычно так и делается) контейнерами vz.
+
# по машине на каждую архитектуру-бранч (полный перебор) — то есть для сизифа, 4.1, 4.0 и архитектур i586, x86_64 нам нужно 6 машин.
+
Конечно, все эти машины могуть быть (и обычно так и делается) контейнерами openvz.
== Настраиваем собирающие машины: ==
+
 
 +
== Настраиваем собирающие машины ==
  
 
# здесь должно быть минимум всего
 
# здесь должно быть минимум всего
# должен быть ssh доступ от управляющей машины(и больше не от куда)
+
# должен быть ssh-доступ от управляющей машины (и больше ниоткуда)
# должена быть копия репозитария(можно readonly) находящаяся в той же директории что и на упраляющей машине из софтра нужен только hasher и rsync
+
# должна быть копия репозитория (можно readonly), находящаяся в той же директории, что и на упраляющей машине; из софта нужны только hasher и rsync
#должен быть юзер от которого управляющая машина приходит по ssh(для этого нужно сгерировать безпарольный ключ положить этому юзеру) этот юзер должен иметь возможность запускать hasher
+
# должен быть юзер, от имени которого управляющая машина приходит по ssh (для этого нужно сгенерировать беспарольный ключ и разложить публичную часть по сборочницам, а приватную положить на управляющей); этот юзер должен иметь возможность запускать hasher (hasher-useradd)
# source.list должен быть настроен на тот репозитарий и ту архетектуру под которую мы будем собирать на этой машине
+
# sources.list должен быть настроен на тот репозиторий и ту архитектуру, под которую мы будем собирать на этой машине
  
== Инструкция по установке сборочницы: ==
+
== Инструкция по установке ==
 
# Берём машину со свежим сизифом
 
# Берём машину со свежим сизифом
 
# На машине должен работать ssh
 
# На машине должен работать ssh
# установить git hasher gear sisyphus_check rpmbuild perl-RPM-Header qa-robot
+
# apt-get install git hasher gear sisyphus_check rpmbuild perl-RPM-Header qa-robot
# клонируем girar,собираем,ставим
+
# клонируем girar.git, собираем, ставим
# создаем эталнный git репозитарий для пакетов(mkdir /etc/girar/packages.git; cd /etc/girar/pacakges.git;git init-db —bare)
+
# создаем эталонный git репозиторий для пакетов (mkdir /etc/girar/packages.git; cd /etc/girar/pacakges.git;git init-db —bare)
 
# аналогично private
 
# аналогично private
 
# аналогично public
 
# аналогично public
# Создаем юзера girar-builder
+
# создаем юзера girar-builder
# содать дериктории /people /archive /gears /meta /srpms с владельцем и группой girar-builder
+
# создаем директории /people /archive /gears /meta /srpms с владельцем и группой girar-builder
# Добавить имена репозиториев в /etc/girar/repositories(через enter)
+
# добавляем имена репозиториев в /etc/girar/repositories (по штуке на строку)
# от пользователя girar-builder клонируем репозитарий с girar-builderом
+
# от пользователя girar-builder клонируем репозиторий с girar-builderом
# Копируем репозитарии. Он должен быть доступен на запись для girar-builder(наверное ему пренадлижать)
+
# копируем репозитории; они должны быть доступны на запись для girar-builder (наверное, ему принадлежать)
# генерируем ssh ключ на основной машине(безпарольный). Делаем чтобы она могла от юзера girar-builder ходить по тем сборщикам
+
# генерируем ssh-ключ на основной машине (беспарольный) и делаем, чтобы она могла от юзера girar-builder ходить по сборочным машинам
# Добавляем их ip в /etc/hosts так чтобы они назывались например так build-4.1-x86_64 и build-4.1-i586  
+
# добавляем их ip в /etc/hosts так, чтобы они назывались, например, build-4.1-x86_64 и build-4.1-i586
# Создаём конфиги. Сделаем 1 конфиг общий и по конфигу для каждого репозитария например так:
+
# Создаём конфиги — один общий и по одному для каждого репозитория, например, так:
## gb-sh-conf-girar-builder
+
:* gb-sh-conf-girar-builder
 
  GB_GEARS_DIR=/gears/
 
  GB_GEARS_DIR=/gears/
 
  GB_SRPMS_DIR=/srpms
 
  GB_SRPMS_DIR=/srpms
Строка 41: Строка 41:
 
  GB_BUGZILLA_FROM=
 
  GB_BUGZILLA_FROM=
 
  GB_REPO_SIGNER=org@altlinux.org
 
  GB_REPO_SIGNER=org@altlinux.org
##  gb-sh-conf-4.1
+
:* gb-sh-conf-4.1
 
  GB_REPO_LABEL=4.1
 
  GB_REPO_LABEL=4.1
 
  GB_REPO_DIR=/4.1
 
  GB_REPO_DIR=/4.1
Строка 49: Строка 49:
 
  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-sh-conf-4.0
 
  GB_REPO_LABEL=4.0
 
  GB_REPO_LABEL=4.0
 
  GB_REPO_DIR=/4.0
 
  GB_REPO_DIR=/4.0
Строка 59: Строка 59:
  
 
== Несколько замечаний ==
 
== Несколько замечаний ==
* Некоторые вещи надо отключать, например автозакрытие багов багзиле
+
* Некоторые вещи надо отключать, например, автозакрытие багов в багзиле
 
* Список выполняемых действий можно редактировать в gb-run-task
 
* Список выполняемых действий можно редактировать в gb-run-task
* Рекомендую пользоваться -x для отладки.
+
* Рекомендуется пользоваться -x для отладки.
  
== Добавление пользователей: ==
+
== Добавление пользователей ==
#кладём ключ через реального пользователея в системе
+
# кладём ключ через реального пользователея в системе
#запускаем команду SUDO_USER=имя реального пользователея; girar-add username путь_к_ключу(в хомнике реального пользователя) gecos
+
# запускаем команду SUDO_USER=имя_реального_пользователя; girar-add username путь_к_ключу<ref>в хомнике реального пользователя</ref> gecos
# например SUDO_USER=admin;girar-add user /home/admin/user «Vladimir vladimirovich <vvp@gov.ru>  
+
# например SUDO_USER=admin;girar-add user /home/admin/user "Vladimir vladimirovich <vvp@gov.ru>
# после этого пользователь может работать с git но не может управлять заданиями, для того чтобы он мог управлять заданиями надо сделать girar-build-enable user
+
# после этого пользователь может работать с git, но не может управлять заданиями; для того, чтобы он мог управлять заданиями, надо сделать girar-build-enable user
  
 
== Непонятно, замечания ==
 
== Непонятно, замечания ==
 
* Как иницировать ACL?
 
* Как иницировать ACL?
 
* sisyphus прибит гвозядми
 
* sisyphus прибит гвозядми
 +
 +
== Примечания ==
 +
{{примечания}}
 +
 
[[Категория:HOWTO]]
 
[[Категория:HOWTO]]

Версия 16:31, 30 декабря 2009

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)
  5. sources.list должен быть настроен на тот репозиторий и ту архитектуру, под которую мы будем собирать на этой машине

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

  1. Берём машину со свежим сизифом
  2. На машине должен работать ssh
  3. apt-get install git hasher gear sisyphus_check rpmbuild perl-RPM-Header qa-robot
  4. клонируем girar.git, собираем, ставим
  5. создаем эталонный git репозиторий для пакетов (mkdir /etc/girar/packages.git; cd /etc/girar/pacakges.git;git init-db —bare)
  6. аналогично private
  7. аналогично public
  8. создаем юзера girar-builder
  9. создаем директории /people /archive /gears /meta /srpms с владельцем и группой girar-builder
  10. добавляем имена репозиториев в /etc/girar/repositories (по штуке на строку)
  11. от пользователя girar-builder клонируем репозиторий с girar-builderом
  12. копируем репозитории; они должны быть доступны на запись для girar-builder (наверное, ему принадлежать)
  13. генерируем ssh-ключ на основной машине (беспарольный) и делаем, чтобы она могла от юзера girar-builder ходить по сборочным машинам
  14. добавляем их ip в /etc/hosts так, чтобы они назывались, например, build-4.1-x86_64 и build-4.1-i586
  15. Создаём конфиги — один общий и по одному для каждого репозитория, например, так:
  • 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 для отладки.

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

  1. кладём ключ через реального пользователея в системе
  2. запускаем команду SUDO_USER=имя_реального_пользователя; girar-add username путь_к_ключу[1] 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. в хомнике реального пользователя