CentOS配置Jenkins

本文分享了在CentOS上安装Jenkins并配置Git、Maven等工具的实践经验,包括解决Git版本过低、SSH key配置及Maven手动安装等问题,并介绍了如何实现自动部署WAR包到Tomcat。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要记录自己在CentOS安装Jenkins时遇到的问题。希望对大家有所帮助:


安装步骤比较简单,Centos安装tomcat,部署Jenkins的包,然后根据需要安装插件(如git、maven等)即可。这里不再赘述。

然后在Jenkins的“系统管理”->“Global Tool Configuration”中配置JDK、Git、Maven。如下图所示:



1、遇到的第一个问题:Git安装后,配置项目的git路径后,Jenkins马上在工程的git路径下面提示如下错误:

Failed to connect to repository : Command "git config --local credential.helper store --file=/tmp/git2956041026506359040.credentials" returned status code 129:
stdout: 
stderr: error: unknown option `local'
usage: git config [options]

Config file location
    --global              use global config file
    --system              use system config file
    -f, --file <FILE>     use given config file

Action
    --get                 get value: name [value-regex]
    --get-all             get all values: key [value-regex]
    --get-regexp          get values for regexp: name-regex [value-regex]
    --replace-all         replace all matching variables: name value [value_regex]
    --add                 adds a new variable: name value
    --unset               removes a variable: name [value-regex]
    --unset-all           removes all matches: name [value-regex]
    --rename-section      rename section: old-name new-name
    --remove-section      remove a section: name
    -l, --list            list all
    -e, --edit            opens an editor
    --get-color <slot>    find the color configured: [default]
    --get-colorbool <slot>
                          find the color setting: [stdout-is-tty]

Type
    --bool                value is "true" or "false"
    --int                 value is decimal number
    --bool-or-int         value is --bool or --int
    --path                value is a path (file or directory name)

Other
    -z, --null            terminate values with NUL byte
原因:git版本过低。原来我是用yum install git安装的git,执行git --version,发现版本是1.7.1。而Jenkins需要1.7.4以上的git版本,才支持--local选项。

解决方法:网上搜了一些文章,可以自行下载git 2.1.2的源码,下载gcc然后自己编译。文章在这里,大家可以参考我转载的这篇文章Centos 6.5升级git版本的办法

完成后,不再报此错误。


2、遇到的第二个问题:git提示新的问题:

Failed to connect to repository : Command "/usr/local/git/bin/git -c core.askpass=true ls-remote -h http://www.xxx.com/gitlab/root/test.git HEAD" returned status code 128:
stdout: 
stderr: fatal: Unable to find remote helper for 'http'
或者

Failed to connect to repository : Command "git ls-remote -h git@xxxxx.com:xxx/dev_test.git HEAD" returned status code 128:
stdout: 
stderr: Permission denied, please tryagain. 
Permission denied, please try again. 
Permission denied(publickey,gssapi-keyex,gssapi-with-mic,password). 
fatal: The remote end hung up unexpectedly
原因:没有配置git的ssh key。

解决方法:执行下面的命令,生成key

ssh-keygen -t rsa -C "admin@example.com"
然后将~/.ssh/目录下的id_rsa.pub中的公钥,放到git的ssh key中。再在Jenkins中创建新的Credentials。类型是SSH Username with private key。Username使用ssh-keygen中用到的邮箱,Private Key中选择“From the Jenkins master ~/.ssh”即可。

修改后,问题解决。


3、安装Maven。

Maven不支持通过Centos的yum进行安装,需要手工安装。大家可以参考我转载的这篇文章:《Centos6.5安装Maven


4、自动部署war包到tomcat

工程配置如下图:


配置很简单,这里需要说明一下配置过程中遇到的问题:

1)无权限连接tomcat的问题。提示信息如下:

Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://10.1.41.8:8081//manager/text/list

查了tomcat ,这里是权限配置错误导致的。需要为用户配置manager-script权限,而不是manager-gui权限。

修改后问题解决。

2)打算将war部署到/ROOT目录下,以便通过http://10.1.41.8:8081可以直接访问。但是系统始终报下面的错误:

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Context / is defined in server.xml and may not be undeployed

注:如果不部署到根目录下,没有任何问题。部署到根目录下,context path需要填“/”。

后来查来查去,发现是由于server.xml的后面有一行下面的代码,导致无法自动undeploy。(本来这段代码是用来确保可以人工发布到/ROOT目录下的)

 <Context path="/" reloadable="true" docBase="/opt/application/settlement/settlement.war" workDir="/opt/application/settlement/tmp"/>

将这段代码屏蔽后,问题解决。可以自动部署了。


【2016-9-1】调整说明

最近通过上面的配置deploy编译好的war包到tomcat时一直出错,导致构建失败。提示仍然是

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Context / is defined in server.xml and may not be undeployed
后来看下来,貌似是程序中有quartz,关闭tomcat时job没有被关闭,结果deploy失败。
查询代码发现quartz来源于shiro,无法进行修改。所以只能想别的办法进行部署。方法如下:

1、重新打开server.xml中被注释掉的这一句<Context path="/" reloadable="true" docBase="/opt/application/settlement/settlement.war" workDir="/opt/application/settlement/tmp"/>,将系统部署改成人工部署。

这样,部署过程就变成了:先将war包拷贝到docBase指定的目录下,然后停掉tomcat,然后删除webapps/ROOT目录,然后重启tomcat,就会完成自动部署。

这些操作,需要通过shell完成。

2、删除原来通过工具deploy的部分,在maven编译完成后,增加Execute shell操作,执行如下command:scp /root/.jenkins/workspace/Settle-1.1-settlement/settlement-web/target/settlement.war root@10.1.41.8:/opt/application/settlement/,将war包拷贝到远程机器上。(注:默认scp需要输入密码。解决办法请见《两台Centos服务器之间建立信任关系》

3、然后,利用jenkins的ssh plugin插件,在远程机器(10.1.41.8)上执行如下shell,完成tomcat停掉,删除ROOT和重启tomcat的操作。

/opt/tomcat/tomcat-settlement/bin/shutdown.sh
rm -rf /opt/tomcat/tomcat-settlement/webapps/ROOT/
/opt/tomcat/tomcat-settlement/bin/startup.sh

4、配置完成后,重新执行构建。没有再出过问题。

shell相关配置请见下图:


<think>好的,用户想在CentOS系统中找到并查看Jenkins配置文件的位置。首先,我需要回忆一下JenkinsCentOS上的默认安装路径和相关配置。根据之前的知识,Jenkins在Linux系统中通常会将主目录放在/var/lib/jenkins,而配置文件可能在这个目录下。 接下来,我需要确认是否正确。记得引用中提到在CentOS7中安装Jenkins是通过Systemd管理的,启动命令是sudo systemctl start jenkins。这说明Jenkins作为服务运行,其配置文件可能位于服务定义文件中,比如/etc/sysconfig/jenkins或者/etc/default/jenkins。不过不同的安装方式可能会有不同的位置,比如通过yum安装的默认路径可能不同。 用户需要定位配置文件,可能需要检查几个常见的路径。首先,Jenkins的主配置文件通常是jenkins.xml或者config.xml,位于主目录下。主目录的位置可能在/etc/sysconfig/jenkins中指定,或者通过查看systemd的服务文件来确定。例如,查看/usr/lib/systemd/system/jenkins.service文件,里面可能有环境变量或参数指定主目录。 另外,参考引用[1]中提到启动Jenkins服务的方式,说明用户可能已经通过Systemd安装了Jenkins,这种情况下默认的配置文件路径应该是/etc/sysconfig/jenkins。而主配置文件如config.xml应该在/var/lib/jenkins目录下。 因此,我需要分步骤指导用户:首先检查/etc/sysconfig/jenkins文件,确认JENKINS_HOME的路径;然后进入该目录查找config.xml等配置文件。同时,可能需要使用ls命令列出目录内容,并用cat或vim查看文件内容。 还需要提醒用户权限问题,可能需要使用sudo来访问这些目录和文件。此外,如果用户修改了配置文件,需要重启Jenkins服务使其生效,这涉及到systemctl restart jenkins命令,如引用[1]中提到的启动方法。 可能用户的问题还涉及到如何确认Jenkins的安装方式,是否是yum安装,或者手动安装,这可能会影响配置文件的位置。但根据引用中的信息,用户使用的是yum安装,因此默认路径应该适用。 最后,确保回答结构清晰,分步骤说明,并引用相关参考资料,如引用[1]和[2]提到的配置和密钥设置,但主要关注配置文件位置的指引。</think>### 分步定位和查看Jenkins配置文件的方法 #### 1. 确认Jenkins配置文件路径 Jenkins的主配置文件通常存储在$JENKINS_HOME$目录下的$config.xml$,默认安装路径为: ```bash /var/lib/jenkins/config.xml ``` 可通过以下命令验证: ```bash ls -l /var/lib/jenkins/config.xml ``` #### 2. 查看系统服务配置 Jenkins服务配置文件可能包含环境变量定义,路径为: ```bash /etc/sysconfig/jenkins # CentOS系统 ``` 使用以下命令查看服务配置: ```bash cat /etc/sysconfig/jenkins | grep JENKINS_HOME ``` #### 3. 检查Systemd单元文件(可选) 查看服务定义文件确认启动参数: ```bash systemctl cat jenkins | grep -i ExecStart ``` #### 4. 查看配置文件内容 定位到配置文件后,使用文本编辑器查看: ```bash sudo vim /var/lib/jenkins/config.xml # 需要root权限 ``` 或使用快速查看命令: ```bash sudo cat /var/lib/jenkins/config.xml ``` #### 5. 查找其他相关配置 其他重要配置文件包括: - $jenkins.CLI.xml$ (CLI配置) - $credentials.xml$ (凭据存储) - $hudson.plugins.git.GitSCM.xml$ (Git插件配置) 均位于$JENKINS_HOME$目录下。 ### 配置修改后的操作 修改任何配置文件后,需要重启服务生效: ```bash sudo systemctl restart jenkins # 引用[1]中的服务管理命令 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑再鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值