/ / Як дістатися / var / lib / tomcat6 / webapps на віддаленому хості від Jenkins через модуль scp - tomcat, jenkins, jenkins-plugins

Як отримати / var / lib / tomcat6 / webapps на віддаленому хості від Jenkins через плагін scp - tomcat, jenkins, jenkins-plugins

Я використовую СКП плагін на Дженкінс, щоб передати СВІТ мого проекту, який він щойно створив, віддаленому хосту.

Вручну, я скопіював би ту війну своєму користувачеві на цьому хості, а потім сам би туди, отримав root (sudo) і скопіював би війну до / var / lib / tomcat6 / webapps де Tomcat миттєво розгорнув би його.

Однак, оскільки я не можу знайти спосіб використовувати tomcat6 як користувач СКП оскільки користувач tomcat6 не має пароля, який можна знайти, я втрачаю можливість говорити Дженкінсу, як це робити без моєї взаємодії з клавіатурою, - і використання Дженкінса для постійного розгортання марне.

Я запускаю Jenkins на сервері Precise, а віддалений сервер, на якому буде розгорнута WAR, також працює Precise.

Дякую кожному, хто читає це запитання, і рясний спасибі всім, хто може пояснити мені розумний спосіб зробити це.

Ось відповідні результати (помилки) від Дженкінса:

BUILD SUCCESSFUL
Total time: 29 seconds
[SCP] Connecting to app-1.site
[SCP] uploading file: "/var/lib/tomcat6/webapps/myapp.war"
ERROR: Failed to upload files
3: Permission denied
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:485)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:439)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:406)
at be.certipost.hudson.plugin.SCPSite.upload(SCPSite.java:239)
at be.certipost.hudson.plugin.SCPRepositoryPublisher.perform(SCPRepositoryPublisher.java:211)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776)
at hudson.model.Build$BuildExecution.post2(Build.java:183)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:726)
at hudson.model.Run.execute(Run.java:1600)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:241)
Build step "Publish artifacts to SCP Repository" changed build result to UNSTABLE
Finished: UNSTABLE

Є два рішення, які потрібно спробувати, але я не бачу ні одного з них хорошим. Реальним шляхом, на мій погляд, буде можливість використовувати tomcat6 як добросовісний користувач для початку. Для цього він повинен мати контрольований пароль.

Рішення, щоб спробувати

1) Наділити tomcat6 з паролем. Не знаю, чи а) це можна зробити, б) це спрацює, навіть якщо ми спробуємо, або в) чи це просто порушить інсталяцію Tomcat, чого я зараз не хочу робити. Потребує досліджень.

2) Джек привілеї на / var / lib / tomcat6 / webapps такі, що мого користувача чи іншого користувача я створюю спеціальнобо завдання може скопіювати на цей шлях І Tomcat буде готовий розгорнути все, що там буде скопійовано. Можливо, доведеться змінити дозволи на файл WAR від ant під час побудови.

Відповіді:

4 для відповіді № 1

Просто створіть підкаталог / var / lib / tomcat6 / webapps записаний

/var/lib/tomcat6 $ chmod a+w webapps

Це працює з мінімальними зусиллями, і я думаю, що кожен, хто дотримується дозволів у цьому підкаталозі, не буде надто здивований.