我正在做一个教程来学习更多关于adminsys和linux上的服务。我来到了一个关于Tomcat和Jenkins的章节。它是关于将Jenkins安装为Tomcat servlet的。我正在按照说明进行操作,当我试图按照教程中的建议更改Jenkins的默认配置目录时,我遇到了麻烦。
1.好的,我首先单独安装了tomcat,默认的网页显示在http://www.example.com:8080/
1.我下载Jenkins使用:wget https://get.jenkins.io/war-stable/2.361.2/jenkins.war
1.我使用以下命令移动了/var/lib/tomcat9/webapps
中的.war文件:sudo mv jenkins.war /var/lib/tomcat9/webapps
现在,问题就来了:该教程指出,Jenkins默认情况下将配置、日志和构建文件放在/root/.jenkins/
中,并建议将其更改为放在/var/lib/jenkins/
中。
1.为此,我首先创建了目录:sudo mkdir /var/lib/jenkins
1.我更改了权限,以便tomcat可以访问它,使用:sudo chown tomcat:tomcat /var/lib/jenkins
1.我进入了/etc/tomcat9/context.xml
。我在<Context />
标签中添加了:
<Context>
...
<Environment name=”JENKINS_HOME” value=”/var/lib/jenkins” type=”java.lang.String” />
</Context>
1.我编辑了tomcat服务文件/lib/systemd/system/tomcat9.service
,通过在[Service]
部分的# Security
子部分中添加以下内容来避免jenkins的读写问题:
ReadWritePaths=/var/lib/jenkins/
1.我使用sudo systemctl daemon-reload
重新加载了systemd守护进程以采用新的文件服务配置
1.我重新加载了Tomcat:sudo systemctl restart tomcat9
1.我转到http://www.example.com:8080/jenkins访问Jenkins安装。我看到Jenkins徽标,但出现错误:
Error
Unable to create the home directory ‘/var/lib/tomcat/.jenkins’. This is most likely a permission problem.
To change the home directory, use JENKINS_HOME environment variable or set the JENKINS_HOME system property. See Container-specific documentation for more details of how to do this.
显然有一个权限问题,但我找不到问题所在,我对这些技术和linux的知识太少了。在视频教程中,老师做了我做的事情,一切都很完美。我在stackoverflow和google上搜索了很多,但没有找到类似的东西。
不过,奇怪的是jenkins想在/var/lib/tomcat/.jenkins
创建home目录,就像我在/var/lib/jenkins
中指定的那样,所以看起来好像是这样,也许,即使我重新启动并重新加载了所有文件,我所做的更改也没有被考虑在内。
谢谢你的帮助:)
1条答案
按热度按时间z31licg01#
我找到了一个解决方案来解决这个问题,这要归功于一条消息,该消息指示在
/var/lib/tomcat
目录中创建了.jenkins
,而不是在context.xml
配置文件中指定的/var/lib/jenkins
。当您查看
/etc/passwd
文件时,会看到一个 tomcat 用户的主目录是/var/lib/tomcat
。然后运行
sudo systemctl daemon-reload
和sudo systemctl restart tomcat9
,它对我很有效。我在stackoverflow和google上也没有找到其他的解决方案。我仍然不明白为什么 tomcat daemon 不考虑
context.xml
文件,而是选择自己的home目录来安装jenkins。如果有人有更干净的解决方案,我很感兴趣。