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= ; number of processes copies to start (def )
;directory=/tmp ; directory to cwd to before exec (def no cwd)
;umask= ; umask for process (default None)
;priority= ; the relative start priority (default )
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= ; max # of serial start failures (default )
;exitcodes=, ; 'expected' exit codes for process (default ,)
;stopsignal=QUIT ; signal used to kill process (default TERM)
;stopwaitsecs= ; max num secs to wait b4 SIGKILL (default )
;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= ; # of stdout logfile backups (default )
;stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default )
;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= ; # of stderr logfile backups (default )
;stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default )
;stderr_events_enabled=false ; emit events on stderr writes (default false)
;environment=JAVA_HOME=/opt/jre1..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 "jenkins@admin.com"
生成的公钥文件/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用户管理....
CentOS 7.2安装Jenkins自动构建Git项目的更多相关文章
- 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!
写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...
- Jenkins自动构建gitlab项目(jenkins+maven+giltlab+tomcat)
环境准备: System:CentOS 7.3 (最小化安装) JDK: 8u161 (1.8_161) tomcat: 8.5.29 Jenkins: Jenkins 2.107.1 Gitlab: ...
- jenkins自动构建前端项目(window,vue)
我们把一个多人协作的vue前端项目发布服务器,一般要经过以下步骤: git更新最新的代码 构建项目 把构建后的代码上传到服务器 如果用jenkins来构建的话,只需要点击一次构建按钮,就可以自动完成以 ...
- jenkins 自动构建gitlab项目
安装的plugin: - kubernetes:1.7.1 - workflow-aggregator:2.5 - workflow-job:2.21 - credentials-b ...
- Linux下Jenkins与GitHub自动构建Node项目(Vue)
根据上篇文章<Linux下Jenkins与GitHub自动构建NetCore与部署>,我们知道了Jenkins的强大功能,自动构建,部署了一个NetCore的Web,让开发人员专注于开发, ...
- 使用Docker+Jenkins自动构建部署
环境 Windows 10 Docker Version 18.06.1-ce-win73 (19507) 运行jenkins 运行jenkins 容器 docker run -d --name ln ...
- 实战:向GitHub提交代码时触发Jenkins自动构建
当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建 ...
- DEVOPS技术实践_02:jenkins自动构建项目
一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...
- Gitlab源码库里代码提交后,如何触发jenkins自动构建?
版本库里代码提交后,如何触发jenkins自动构建?这是一个面试题,感觉自己回答的并不好,因为并没有用过这个功能,之前公司实际项目用的是svn版本管理,一般都用立刻构建,和定时任务构建(不管代码是否有 ...
随机推荐
- 修路 BZOJ 4774
修路 [问题描述] 村子间的小路年久失修,为了保障村子之间的往来,法珞决定带领大家修路.对于边带权的无向图 G = (V, E),请选择一些边,使得1 <= i <= d, i号节点和 n ...
- gdbt原理解析
链接: http://note.youdao.com/noteshare?id=aeb1c7a30c5f4b70e3fff51f28ee5c47 懒得复制到这里了,一开始是在有道云笔记上写的,这里的公 ...
- Oracle11g服务详细介绍及哪些服务是必须开启的?
中的方法成功安装Oracle 11g后,共有7个服务, 这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service: Oracle卷映射拷贝写入服务,VSS(Volu ...
- Bootstrap开启模态框后对数据处理(标记模态框的开启与关闭状态)
JS用全局变量标记状态,方法中动态修改全局变量以标记状态是一个重要思想. 需求:组合条件查询数据,查询完之后填充到模态框中,开启模态框,模态框中有组合条件查询,此时查询只需要更新模态框表格数据不需要开 ...
- php——数据库操作之规范性
今天在写一个项目,上传到服务器的时候出现500的错误,找了半天最后是因为数据库更新数据的语句写的不规范, 询问同事之后,同事说,数据库的增删改查语句写的不规范的时候有的时候会报错有的时候不会: 所以总 ...
- Redis对象的设计与实现
一.Redis对象结构Redis中的每个对象都由一个redisObject结构表示: typedef struct redisObject { unsigned type;//类型 unsigned ...
- js-判断当前页面是否在微信浏览器中打开
方案一:推荐 var ua = navigator.userAgent.toLowerCase(); var isWinxin = ua.indexOf('micromessenger') != -1 ...
- 【WEB基础】HTML & CSS 基础入门(5)边框与背景
前面(HTML图片) 漂亮的网页肯定少不了边框与背景的修饰,本篇笔记就是说明如何为网页上的元素设置边框或者背景(背景颜色和背景图片). 之前,先了解一下HTML中的图片元素,因为图片标签的使用非常简单 ...
- codevs3249搭积木
3249 搭积木 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description Petya有一个A×B×C的长方体积木,积 ...
- 解决Eclipse中SVN版本信息不显示的问题
eclipse 中使用 svn 插件,原本正常,未作任何更改,最近几天突然eclipse 中查看文件时,文件后面的 版本号 . 文件的状态图标 等等都不见了.以为有插件冲突,卸载了好多其他的相关的插 ...