CentOS 7.2安装Jenkins自动构建Git项目

1.环境

本文使用VMWare虚拟机进行实验。

最终实现目标,在Jenkins服务器上新建构建任务,从Git服务器上拉取master HEAD(不编译,仅演示),部署到"目标服务器",再执行一个脚本。

Jenkins服务器

  • 2核CPU,4GB内存,20GB硬盘,IP:192.168.118.145(要求能上网,装插件)
  • CentOS 7.2最小安装(CentOS-7-x86_64-Minimal-1511.iso)

Git远程库服务器

  • IP: 192.168.118.148
  • 已经存在一个git repo: hello-jenkins.git

目标服务器

  • IP: 192.168.118.147

2.需求

  • Jenkins 2.89
  • JRE 8u162
  • Git 1.8.3.1
  • Supervisor 3.1.4

3.安装

3.1安装软件

yum -y install git supervisor

3.2安装JRE

官网下载Java SE Runtime Environment 8u162 Linux x64

jre-8u162-linux-x64.tar

tar zxvf jre-8u162-linux-x64.tar -C /opt
export JAVA_HOME=/opt/jre1.8.0_162
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/toos.jar

3.3安装Jenkins

官网下载Jenkins,安装

rpm -ivh jenkins-2.89.3-1.1.noarch.rpm

得到war包  /usr/lib/jenkins/jenkins.war

其实到现在已经可以运行Jenkins服务了,但我们先来配置下开机自动启动(利用supervisor)

3.4配置Jenkins开机自启

为jenkins创建supervisor配置文件

vi /etc/supervisord.d/jenkins.ini

添加如下内容,蓝色加粗的是有用的,分号开头的已经被注释掉了,需要的话自己开、自己配

[program:jenkins]
;command=/bin/cat
command=/opt/jre1.8.0_162/bin/java -jar /usr/lib/jenkins/jenkins.war ; the program (relative uses PATH, can take args)
;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
;numprocs=1                    ; number of processes copies to start (def 1)
;directory=/tmp                ; directory to cwd to before exec (def no cwd)
;umask=022                     ; umask for process (default None)
;priority=999                  ; the relative start priority (default 999)
autostart=true                ; start at supervisord start (default: true)
autorestart=true              ; retstart at unexpected quit (default: true)
startsecs=10                  ; number of secs prog must stay running (def. 1)
;startretries=3                ; max # of serial start failures (default 3)
;exitcodes=0,2                 ; ‘expected‘ exit codes for process (default 0,2)
;stopsignal=QUIT               ; signal used to kill process (default TERM)
;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
;user=chrism                   ; setuid to this UNIX account to run the program
;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
;stdout_capture_maxbytes=1MB   ; number of bytes in ‘capturemode‘ (default 0)
;stdout_events_enabled=false   ; emit events on stdout writes (default false)
;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups=10     ; # of stderr logfile backups (default 10)
;stderr_capture_maxbytes=1MB   ; number of bytes in ‘capturemode‘ (default 0)
;stderr_events_enabled=false   ; emit events on stderr writes (default false)
;environment=JAVA_HOME=/opt/jre1.8.0_162,CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/toos.jar           ; process environment additions (def no adds)

添加supervisor开机自启,注意现在不要启动(start),一会儿我们手动启动

systemctl enable supervisord

4.运行

java -jar /usr/lib/jenkins/jenkins.war

初次运行Jenkins会开始安装、配置,注意控制台会输出admin的密码(类似下面蓝色粗体),密码要记住,新建用户后这密码就找不到了...

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

d4b41da7b70048c8b2a4eb5786100996

This may also be found at: /root/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

默认Jenkins服务器端口为8080

浏览器访问 http://192.168.118.145:8080/,把密码填进去,下一步

会让你选择安装插件,其实安装建议的就行,但这里选择自己安装插件

注意Git要勾选,

另外勾选“Publish Over SSH”,部署的时候会用到

然后确定开始下载安装插件,看网速...完了之后会进入账户设置,

设置完就进入主界面了

到这里就Jenkins安装好了,系统重启会自动启动Jenkins服务。

5.部署demo

最终实现目标,在Jenkins服务器上新建一个构建任务,这个任务从Git服务器上拉取master HEAD(不编译,仅演示),部署到"目标服务器",再执行其中一个脚本。

5.1配置ssh key

这个Key用于访问git、访问“目标服务器”

在Jenkins服务器上,-C后面的注释随便写,交互shell中不用管,一路回车就行

ssh-keygen -t rsa -C "[email protected]"

生成的公钥文件/root/.ssh/id_rsa.pub、私钥文件/root/.ssh/id_rsa.pub

为了ssh无密码访问(使用root用户),我们要把公钥注册到目标上

在Git服务器上,把公钥内容复制填进去,保存。

vi /root/.ssh/authorized_keys

在目标服务器(见环境一节介绍)上,把公钥内容复制填进去,保存。

vi /root/.ssh/authorized_keys

5.2注册Jenkins SSH Server

主界面---系统管理---系统设置---Publish over SSH(在最下面)

Path to key 填私钥文件路径(公钥刚才已经传到目标服务器上了)

SSH Server,Name起一个名字,hostname填“目标服务器”IP,root登录,Remote Directory是部署的目录(/表示部署到根目录下),不懂的最右边有个问号可以点,有帮助。

5.3新建一个Job

填一个名字,下面选第一项”构建一个自由风格的软件项目“,点确定。

源码管理一栏,添git路径(就是一般git clone XXX中的XXX)

Credentials点右边Add,配置秘钥访问git

Kind选 SSH Username with private key

Username填root

Private Key选 From the Jenkins master ~/.ssh (私钥路径/root/.ssh/id_rsa,公钥刚才已经传到git服务器上了)

Description随便填,便于自己区分

填完之后回到之前的页面,选择使用这个凭证:root(sshKeyToGit)

构建后操作,选刚才添加的SSH Server

Source files填**,表示所有文件

Remote directory填first-ci,刚才配了部署目录是/,综合得到部署路径 /first-ci

Exec command填的是文件传输完成后执行的命令,这里执行的是git库中一个脚本

保存,进入这个界面,点“立即构建”,左下区域是构建情况(图上是构建了4次,蓝色表示成功,黄色表示出了点问题)

点“#4”,点“Console Output”,可以查看整个构建过程的输出,

一般构建出错也是在这里看错在哪了,比如下面这图#3

5.4验证部署结果

在目标服务器上,

可以看到部署的文件(也是部署后执行的脚本)

以及执行脚本的结果(可见登录后的目录为用户home目录)

TODO:

Jenkins用户管理....

原文地址:https://www.cnblogs.com/nidey/p/8387597.html

时间: 2024-10-14 14:28:32

CentOS 7.2安装Jenkins自动构建Git项目的相关文章

配置Jenkins自动构建打包项目

需求说明 1.给A项目配置jenkins每2小时无条件自动构建一次,无论是否有代码提交.2.给B项目配置jenkins每15分钟检查一次是否有代码提交,如果有,就自动构建一次:如果没有commit,就不构建 配置操作 1 配置每15分钟检查更新,有更新就构建 1.1 创建一个测试项目iot-new-Dev 根据项目实际情况,选择的是pipeline 1.2 配置"构建触发器" 在"构建触发器" ==> 选择"Poll SCM" ==>

jenkins 自动构建gitlab项目

安装的plugin: - kubernetes:1.7.1    - workflow-aggregator:2.5    - workflow-job:2.21    - credentials-binding:1.13    - git:3.6.4    - gitlab-hook:1.4.2    - ansicolor:0.5.2 ----------------------------------------- create a free-style project token 是我自

关于Jenkins构建Git项目出现java.lang.StackOverflowError解决记录

今日配置Jenkins来构建Git项目,遇到以下问题,导致无法构建 Parsing POMs Injecting SonarQube environment variables using the configuration: sonarqube-5.5 FATAL: null java.lang.StackOverflowError at sun.reflect.GeneratedMethodAccessor7533.invoke(Unknown Source) at sun.reflect.

码云Webhook触发Jenkins自动构建 - Jenkins演练(一)

今天自己看着插件文档摸索了一下,实现了git push后Webhook自动触发Jenkins进行代码构建,可通用gitlab.github等平台,中文关于这方面自动部署的文档比较少,所以把我的学习过程记录下来,让其他人少走点弯路. 模拟场景:开发人员在dev分支提交代码后,Jenkins自动构建和部署,非dev分支提交代码不会触发. 实战环境:码云(git.oschina.net).Jenkins(可在公网访问).插件Generic Webhook Trigger 步骤1: 码云新增一个项目,新

手工触发jenkins自动构建

手工触发jenkins自动构建 点击项目的配置 2. 设置手工构建连接 3.在浏览器里输入来触发jenkins的项目构建

在CentOS 7上安装Jenkins

在CentOS 7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/RedHat/jenkins.repo sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.keysudo yum install jenkins 如果没有java的话要安装java sudo yum ins

如何在 CentOS 8 上安装Jenkins

在CentOS 8 上安装Jenkins需要使用root账号或具有sudo权限的账号.因为Jenkins是使用Java编写的,所以需要安装Java环境1.安装OpenJDK.sudo dnf install java-1.8.0-openjdk-devel2.启用Jenkins存储库.运行以下命令下载并导入GPG密钥sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.

jenkins自动构建与发布服务

安装jenkins构建使用插件 插件名 大概功能 Maven Integration plugin jenkins集成maven插件 Hudson Blame Subversion Plug-in 获取svn信息,数据同步 Subversion Partial Release Manager plugin svn版本发布管理器 Subversion Revert Plugin 构建失败时自动回滚svn Subversion Workspace Cleaner 清空svn工作空间 Deploy t

SVN怎么触发Jenkins自动构建

通常,有几种方式可以在SVN仓库发生改变时触发Jenkins进行构建.第一种是,Jenkins主动轮询SVN仓库:第二种是,在SVN客户端(如TortoiseSVN)创建客户端hooks来触发构建:第三种是,在SVN服务器端,创建仓库hooks来触发构建.而我所要介绍的就是这第三种. 在http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks这里可以找到如何创建仓库hooks