jenkins

一、概述

二、安装

1.安装

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins

或者下载rpm包来安装:

wget https://pkg.jenkins.io/redhat/jenkins-2.76-1.1.noarch.rpm
rpm -i jenkins-2.76-1.1.noarch.rpm

 2.jenkins配置文件:

/etc/sysconfig/jenkins:

还有一个是/etc/init.d/jenkins,这里配置的是JDK路径,准确来说是java命令所在路径,
如果JDK重装过,启动Jenkins报错"Failed to start LSB: Jenkins Automation Server.",
需要重新配置JDK。

3.启动jenkins,访问ip:8080,在配置插件的时候出现错误:

查看/var/jenkins/log:

2019-09-15 02:15:00.069+0000 [id=27]    WARNING hudson.model.UpdateCenter#updateDefaultSite: Upgrading Jenkins. Failed to update the default Update Site 'default'. Plugin upgrades may fail.
java.net.SocketTimeoutException: connect timed out
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
        at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
        at sun.net.www.protocol.http.HttpURLConnection.followRedirect0(HttpURLConnection.java:2735)
        at sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:2647)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1830)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268)
        at hudson.model.DownloadService.loadJSON(DownloadService.java:167)
        at hudson.model.UpdateSite.updateDirectlyNow(UpdateSite.java:189)
        at hudson.model.UpdateCenter.updateDefaultSite(UpdateCenter.java:2456)

注意Failed to update the default Update Site 'default':连接默认的站点超时。

看一下/var/lib/jenkins/hudson.model.UpdateCenter.xml

把这个url换成下面的清华大学镜像地址,上面是已经换过的。建议换之前备份文件。

jenkins插件清华大学镜像地址:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

4.jenkins目录:(引用自https://blog.csdn.net/miss1181248983/article/details/82840006

ll /var/lib/jenkins
jobs		浏览器上面创建的任务都会存放在这里
logs		存放jenkins相关的日志
nodes		多节点时用到
plugins		插件所在目录
secrets		密码秘钥所在目录				#jobs和plugins目录比较重要

jenkins存放数据不依靠数据库,所以在移植时只需要拷贝整个程序主目录即可。

三、配置

安装git:

yum -y install git #安装git

安装maven:https://blog.csdn.net/Ivorybeach/article/details/100866463

Global Tool Configuration配置JDK,Maven,Git:

Configure System邮箱配置:

163和qq的邮箱服务都需要手机验证,我这里配不了,暂略。

Configure System配置SSH:

首先生成密钥,不配密码,然后复制公钥到待部署服务器:

ssh-keygen -t rsa    #生成密钥
ssh-copy-id -p 22022 -i /root/.ssh/id_rsa.pub root@ip #复制公钥,注意待部署服务器的port:22022

SSH Server配置:

 

-------------------------------------------上面是正确操作,以下是过程中出现的错误-----------------------------------------

在Jenkins上TestConfiguration失败后查看日志:

9月 16 09:58:50 localhost.localdomain sshd[1856]: Address 192.168.43.208 maps to localhost.localdomain, but this does not map back to the address - POSSIBLE BREAK
9月 16 09:58:50 localhost.localdomain sshd[1856]: error: Received disconnect from 192.168.43.208 port 46514:3: com.jcraft.jsch.JSchException: Auth fail [preauth]
9月 16 09:58:50 localhost.localdomain sshd[1856]: Disconnected from 192.168.43.208 port 46514 [preauth]
9月 16 09:58:51 localhost.localdomain sshd[1859]: Address 192.168.43.208 maps to localhost.localdomain, but this does not map back to the address - POSSIBLE BREAK
9月 16 09:58:52 localhost.localdomain sshd[1859]: error: Received disconnect from 192.168.43.208 port 46516:3: com.jcraft.jsch.JSchException: Auth fail [preauth]
9月 16 09:58:52 localhost.localdomain sshd[1859]: Disconnected from 192.168.43.208 port 46516 [preauth]

百度一下上面的错误,Address 192.168.43.208 maps to localhost.localdomain, but this does not map back to the address - POSSIBLE BREAK,这个是说ip可以连到主机名,但是主机名对不上ip,也就是Ping主机名Ping不到192.168.43.208,这在SSH是不允许的,所以会报错。解决的话,一是就这个思路去解决,二是修改/etc/ssh/ssh_config和/etc/ssh/sshd_config中的GSSAPIAuthentication no,将no改为yes,这样ssh就不会验证ip和主机名必须对应了。

上面的排错思路来自于:https://blog.51cto.com/qmdanxie/912535

四、使用

新建一个item,配置好git。

在构建中,配置Send files or execute commands over SSH:

配置项说明:

Source files:要传输的文件所在目录,注意是相对于工作空间根目录,默认的是在JENKINS_HOME下的workspace,如果填的是'**/**',表示传输workspace下所有文件。

上面的解释似乎不对,此处存疑:jenkins发布的时候是从git上拉取的项目,要发布也只会发布所拉取的项目,怎么会从workspace中上传呢?workspace应该只是存放构建的项目的目录。此处存疑。。。。

Remove Prefix:配置的Source file路径中要移除的前缀

Remote Directory:远程目录,在之前的Remote Directory配置的"/"的基础上。

Exec Command:通过SSH连接目标服务器后,要执行的脚本

其他配置说明:

 

保存后,点进test2,选择立即构建:

#1代表第一次构建。

查看控制台输出:

到SSH server上查看/var/www/html目录,成功部署:

 

附:jenkins忘记密码:

需要找到jenkins的config.xml文件,目录为/var/lib/jenkins/config.xml,<useSecurity>改成false:

修改之后进入jenkins不再需要密码,然后重新在jenkins中配置管理员及密码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值