Jenkins на Ubuntu - множественные (связанные) проблемы - PullRequest
4 голосов
/ 08 сентября 2011

Я использую Hardy Heron и Jenkins 1.429, установленные вручную (т.е. скачали пакет и установили его, а не по обычным инструкциям здесь * Установите Jenkins в Ubuntu из-за ошибки 302.

Предыстория ... Я неопытен как в Ubuntu, так и в Jenkins. Мне поручено настроить то, что я считаю «базовым» блоком Jenkins CI для создания двух проектов Java Maven и, в конечном счете, проекта C ++. Мы используем Synergy CM в качествеSCM, для которого я установил невыпущенный плагин Synergy для Jenkins (я скачал код и собрал его сам). В настоящее время у меня не включена защита в Jenkins.

Моя проблема заключается в том, что при выполнении сборкиневозможно получить доступ к дереву каталогов исходного кода (например, удалить целевую папку во время чистой фазы). Это происходит потому, что пользователь 'jenkins' является не владельцем исходных каталогов, а скорее моим пользователем менеджера сборки (первым созданнымПользователь Ubuntu).

Как мне решить эту проблему? Мои мысли изначально

1. Смена владельца дерева каталогов

ИЛИ

2. Получите права пользователей, т. Е. Выполняйте задания от имени пользователя моего менеджера сборки, которому принадлежат каталоги,Я читал темы о запуске Jenkins (или заданий) от имени другого пользователя, но, похоже, я заблудился.

3. Я даже не вижу пользователя jenkins, созданного во время установки пакета Jenkins, когда я запускаю инструмент администратора пользователя, но если я пытаюсь добавить пользователя 'jenkins', он говоритменя это уже существует.

Извините, если это вопрос новичка, но хотел бы знать, как правильно это сделать.Заранее спасибо.

Редактировать: я запускаю Jenkins как демон в соответствии с настройками по умолчанию.

Редактировать 2: «Как первый может захватывать вещи, недоступные для второго?».Я понимаю, что вы говорите, и вы правы. Я проверил код через другого пользователя, а не позволил пользователю jenkins сделать это.Но мне все равно нужно запускать сборку как мой пользователь сборки, если я не сделаю пользователя jenkins точно таким же, как мой пользователь сборки, что потребует создания пользователя 'jenkins', созданного в UNIX-боксе, на котором работает сервер Synergy, и, возможно, других вещей.Я бы предпочел просто запустить сборку от имени этого пользователя, если смогу.Я безуспешно пытался добавить строку JENKINS_USER=myuser, а также изменить DAEMON_ARGS=--name=jenkins ..., чтобы он был моим пользователем вместо 'jenkins'.

Ответы [ 3 ]

5 голосов
/ 09 сентября 2011

В основном вам нужно будет изменить JENKINS_USER в файле / etc / default / jenkins, как сказал bmargulies.Это устанавливает, какой пользователь будет использоваться для запуска jenkins.Если вы сделаете это и перезапустите jenkins, то ничего не получится, поэтому вам нужно запустить chown для некоторых каталогов для нового пользователя:

chown -R <user>:<group> /var/run/jenkins/war 
chown <user>:<group> /var/log/jenkins
chown <user>:<group> /etc/init.d/jenkins
chown <user>:<group> /etc/default/jenkins

Я думаю, что все это было, самое главное, то, что журналправильное разрешение, так что вы можете проверить журнал на наличие ошибок, если он не запускается ;-) Плохая новость: прямо сейчас, если вы обновите jenkins из репозитория, он перезапишет разрешения, и вам придется выполнять танец чоун.после каждого обновления.Я думаю, что для этого есть сообщение об ошибке, поэтому, возможно, они исправят это в ближайшее время.

Надеюсь, это поможет.

5 голосов
/ 10 февраля 2012

Мне также пришлось chmod несколько других путей на моем:

/var/lib/jenkins
/var/cache/jenkins
/var/run/jenkins
2 голосов
/ 08 сентября 2011

Если вы следовали инструкциям, у вас есть /etc/init.d/jenkins.И там есть место для установки имени пользователя, от которого вы хотите работать.

Далее, чтобы увидеть, какие пользователи у вас действительно есть, вам нужно просто взглянуть на /etc/passwd, а не вставать в какую-нибудь оболочку графического интерфейсаили другой.

Однако, все это не имеет смысла, если только вы не включили NFS в каталог dir рабочей области.Каким бы ни был пользователь Jenkins, этот пользователь запускает проверку SCM, а затем сборку, так как первый может захватывать вещи, недоступные второму?

В любом случае ls -l твой друг, видящий, кому на самом деле принадлежат какие режимы и какие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...