Настройка пользователя процесса Hudson на Mac + Tomcat - PullRequest
2 голосов
/ 22 ноября 2010

Сводка

У меня настроен Hudson на нашем Mac OS Server (Snow Leopard 10.6.5), работающем под стандартным Tomcat (т. Е. Tomcat 6), который включен с помощью ServerПриложение администратора.

Я бы хотел иметь возможность запускать свои сценарии Hudson как пользователь / логин Unix, который не является логином Tomcat.

Подробно

Моя работа в Hudson - это проект в стиле фристайл, который запускает сценарии bash, которые запускают xcodebuild (это проект iPhone) для очистки и сборки сборки.

Проблема заключается в том, что при использовании этой стандартной установки Hudson (asнасколько я могу видеть) работает с пользователем Unix Tomcat, который является _appserver.

Это означает, что _appserver - это пользователь, который вызывает xcodebuild и все сценарии, составляющие задание.

Iпредпочел бы, чтобы у Хадсона был свой собственный логин Unix, в комплекте с домашним каталогом и т. д. Помимо того, что он немного счастливее с разрешениями и т. д. логина, который пытается выполнить сборку, сам Xcode, похоже, предпочитает, чтобы пользовательесть домашний каталог, а журналы сборки заполнены такими предупреждениями, как:

2010-11-11 17: 29: 11.729 Интерфейсный конструктор Cocoa Touch Tool [58771: 1903] CFPreferences: домашний каталог пользователяв файле: // localhost / var / empty / библиотека / приложение% 20Support / iPhone% 20Simulator / User / недоступно.Пользовательские домены будут нестабильными.

и

Не удалось открыть общие возможности памяти GSCapabilities (Нет такого файла или каталога)

PlusЯ подозреваю, что заставить профили инициализации работать для построения сборок устройства было бы намного проще, если бы логин был стандартным логином, который может создавать цели из Xcode.

НО Я совершенно не могу найти какой-либо способ установитьвход в систему!Это похоже на то, что вы хотели бы сделать, но поиск информации в Интернете оказался безрезультатным.tomcat-users.xml чувствовал, что это может быть полезно, но, похоже, он не ссылается на "настоящего" (Unix) пользователя?

Другой подход может заключаться в том, чтобы жить с Хадсоном как _appserver, но иметь сами сценариизапустить как мой пользователь сборкиКажется, это указывает на использование sudo, но все кажется настолько заблокированным, что я не могу найти способ запустить скрипт от имени другого пользователя, даже тот, который я могу заблокировать, чтобы иметь минимальный доступ к безопасности ...?

Надеюсь, вы можете помочь людям!

1 Ответ

1 голос
/ 22 ноября 2010

Самый простой способ достичь того, чего вы хотите (и единственный способ, которым я знаю), будет:

Создайте нового подчиненного в Hudson и укажите его на сервере Hudson (ваша главная система теперь также будет новым slave); сделайте так, чтобы он входил с использованием SSH, но с учетными данными пользователя, которые вы хотите использовать для сборки (скажем, «hudson»).

Направьте ваш проект на раб. Таким образом, ваша работа зависит не от Tomcat (или его пользователя), а от имени подчиненного.

По шагам:

1) Click on 'Build Executor Status'
2) On the left sidebar, click on New Node
3) Give the slave a name, click "Dumb Slave", and "OK"
4) Number of executors = 1
5) remote FS root = /home/<hudson_user>
6) Launch method = UNIX SSH or JNLP
7) If launch = SSH: host = ip address of master, 
   username = hudson, password =     hatever_password
8) If launch = JNLP, log in as the hudson user, go to hudson and start 
    the web service from your hudson site
9) Configure your job to use your slave (restrict where this project can be run)
9a) Possibly, under configuration, turn off all executors on your master, 
    and use the new slave for anything you need to build.

Я знаю, это звучит немного запутанно, но если вам нужно больше объяснений или у вас есть вопросы, дайте мне знать.

...