Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

从零开始搭建JENKINS+GITHUB持续集成环境【多图】 #51

Open
reng99 opened this issue Nov 12, 2019 · 0 comments
Open

从零开始搭建JENKINS+GITHUB持续集成环境【多图】 #51

reng99 opened this issue Nov 12, 2019 · 0 comments
Labels

Comments

@reng99
Copy link
Owner

reng99 commented Nov 12, 2019

POST的这篇文章是讲解从无到有的JENKINS+GITHUB持续集成环境的搭建。JENKINS和其他平台的结合搭建,比如码云啥的,大同小异。下面我们STEP BY STEP地讲解一下,如有不合理地地方,还请指出☞

购买一个服务器

为什么要购买服务器呢?因为你本地搭建jenkins环境之后,你跟github联通不了啊,要通过ip来github的webhooks的。当然,还有什么其他操作可以联通的,还望指出:)

注意:如果你在本地运行你的jenkins,那么你的webhooks可能是https://localhost:8080/github-webhook/,这不会起作用的,因为webhooks只在网络中起作用。你可以参考文章Adding a GitHub Webhook in Your Jenkins Pipeline了解一下。

这里,我购买了阿里云的低配服务器,操作系统是centos7。购买好服务器之后,我简单通过NGINX来代理,展示一个简单的静态页面。当然,这里不是我们的重点,所以就不展开来说了。

需要注意的是,你需要配置你的安全组,你才能看到你的静态的站点,我配置如下图:

jenkins_01

在上传了资源的时候,你打开阿里云上相关的ip地址,如果你没有看到期望的页面,请检查一下安全组的设置。

准备一款终端

为什么要准备呢?

我们不可能老是登录自己的阿里云账号,然后切换到自己的服务器那里,然后再屁颠屁颠的操作程序吧~

如果你喜欢,那你就保留那种操作习惯吧。只能说你时间真多~

在这里,在mac prodell电脑上我都安装了SecureCRT【一款支持SSH(SSH1和SSH2)的终端仿真程序】,远程控制自己的服务器。我觉得挺好用的,喜欢!

搭建JENKINS环境

服务器和远程控制的仿真程序都已经准备完成了,我们在服务器上面搭建下所需的环境。

安装java环境

先在服务器上安装java环境,可参考文章,安装好java sdk后,配置好环境。

你可以通过java -version进行查看,下面是自己在服务器上的java安装信息和相关路径的设置:

jenkins_02

1、路径/usr/lib/java是在本机下载好的jdk-8u231-linux-x64.tar.gz压缩文件上传到服务器的存放路径,解压后可以将其压缩包删除。

2、/usr/java/java8我是我在服务器上的解压文件路径。

安装jenkins

按照下面的命令行进行操作:

$ yum install yum-fastestmirror -y  #安装自动选择最快源的插件
#添加Jenkins源:
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
$ yum install jenkins               #安装jenkins

安装完毕后,你就可以启动jenkins了:

sudo service jenkins start

当然,启动之后,你可能出现下面的问题。

jenkins_03

那就是你的java的引入路径有问题了~上图意思是:启动程序找不到java

那么,你需要进入文件vim /etc/init.d/jenkins修改其路径就行了,如下:

jenkins_04

备注:linux 使用find .|xargs grep -ri "要查找的字符串"命令查找包含某字符串的文件

顺利启动后,控制台有个success的提醒。你在浏览器上输入http://your server ip:8080就可以打开了,jenkins的默认端口号是8080,当然,你可以进入vim /etc/sysconfig/jenkins修改端口号等。

jenkins_05

同上,如果网页不能打开,请查看下阿里云那里有没有设置好安全组了~

嗯,接下来就是一步步解锁Jenkins了。

Jenkins的使用

我们能在自己的服务上面成功安装并运行了jenkins,下面我们来升级打怪,使用jenkins

解锁

jenkins_05

根据提示,我们执行cat /var/lib/jenkins/secrets/initialAdminPassword得到Administrator password,然后点击继续按钮,往下走。

jenkins_06

我们选择安装推荐的插件,等待安装完毕,如果有安装失败的可以跳过,之后可以根据需求安装。

jenkins_07

初始化账号和密码

你可以创建你自己的管理员用户信息,当然你也可以点击使用admin账号继续跳过。

jenkins_08

设置完成之后,进入界面:

jenkins_09

关联 github

我们的目的是要将github和jenkins结合起来,进行自动化发布。现在,我们来关联下github。我进入自己的github进行配置。

生成 secret text

secret text这里在github上称为token吧。

进入github --> Settings --> Developer settings --> Personal access tokens -> Generate new token

jenkins_10

之后生成一个新的token:

jenkins_11

填写好toke的名称,勾选完上面的两个选项,之后按Generate token按钮进行确认:

jenkins_12

自己先保存此token,如果丢失,之后再也无法找到这个token

设置 github webhooks

接着,选择你自己的一个github项目,这里我拿自己的博客仓库https://github.com/reng99/blogs作为例子:

进入github上指定的项目 --> Settings --> Webhooks --> Add Webhook --> 输入刚刚部署jenkins的服务器的IP

jenkins_13

Payload URL的内容就是http://your_ip:port/github-webhook/

jenkins的github配置

正确安装之后,那么我们来配置Github Plugin,如果你还没安装github plugin,那就进入系统管理 --> 插件管理 --> 可选插件进行安装。(新版本的Jenkins)中已经帮你做了这一步。

这里默认已经安装了github plugin,下面来配置~

配置GitHub Plugin

系统管理 --> 系统设置 --> GitHub --> 添加Github服务器

如下图所示:

jenkins_14

API URL 输入 https://api.github.com,凭证Credentials点击添加,类型选择Secret Text,具体如下图所示:

jenkins_15

点击添加按钮后,下拉选择凭证,选择你新增的那个,然后点击连接测试按钮,提示Credentials verified for user xxx, rate limit: xxx,则表明有效。

jenkins_16

创建一个freestyle任务

进入主页 --> 新建任务

jenkins_17

General设置

填写GitHub project URL,也就是你的主页https://github.com/your_name/your_repo_name,我这里使用我的博客仓库进行尝试https://github.com/reng99/blogs

jenkins_18

配置源码管理

勾选Git选项之后,就会出现相关的填写项,根据下图的指引来填写就行了~

jenkins_19

  1. 填写项目的git地址, eg. https://github.com/your_name/your_repo_name.git
  2. 添加github用户和密码(要是一个有写权限的账号,此步骤见下图)
  3. 选择githubweb源码库浏览器,并填上你的项目URL,这样每次构建都会生成对应的changes,可直接链到github上看变更详情

点击添加增加Credentials

jenkins_20

构建触发器

勾选GitHub hook trigger for GITScm polling即可~

jenkins_21

构建环境配置

勾选Use secret test(s) or file(s)即可~

jenkins_22

设置绑定

选择绑定 --> 点击新增按钮 --> 选择Secret text --> 下拉选择你之前设置的secret token --> 之后应用

jenkins_23

设置构建

我这里就没怎么操作,你可以根据自己的需求来编写构建的脚本了。

jenkins_24

构建后操作

jenkins_25

你可以根据需求更改构建后的操作,我这里都默认。

验证构建

上面的工作都完成之后,修改下我的blogs仓库的代码,提交后,刷新下自己的jenkins地址,出现下面的现象说明成功了~(ps: 第一次构建的时候比较耗时,请耐心等待,是不是刷新下页面了)

jenkins_26

jenkins_27

错误处理

重新安插插件

在进行初始化的时候,一些插件我们可能会安装失败。不过,不要在意,你可以进来之后再针对需要的插件进行安装。

jenkins_28

jenkins_29

jenkins_30

安装成功之后,进入/restart/路径对jenkins重启。

jenkins_31

再次进入就正常了,美滋滋~

jenkins_32

git command错误

jenkins_33

进入服务器查看是否安装了git

# git version

没有git,此时需要安装git。

# yum install git

构建触发器找不到github选项

在构建触发器的时候,找不到选项Build when a change is pushed to Github

那是因为新版的jenkins将其修改为GitHub hook trigger for GITScm polling了。

@reng99 reng99 added the jenkins label Nov 12, 2019
@reng99 reng99 changed the title 从零开始搭建JENKINS+GITHUB持续集成环境 从零开始搭建JENKINS+GITHUB持续集成环境【多图】 Nov 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant