实验条件2个服务器,

git服务器  ip地址:192.168.200.151

Jenkins服务器 ip地址:192.168.200.132

操作系统:centos7.5

[root@git ~]# cat /etc/redhat-release
CentOS Linux release 7.5. (Core)
[root@git ~]# uname -r
3.10.-.el7.x86_64
[root@git ~]# systemctl stop firewalld
[root@git ~]# systemctl disable firewalld
[root@git ~]# systemctl stop NetworkManager
[root@git ~]# systemctl disable NetworkManager
[root@git ~]#

在git服务器上操作

[root@git ~]# yum -y install git

[root@git ~]# useradd git
[root@git ~]# echo "" | passwd --stdin git
Changing password for user git.
passwd: all authentication tokens updated successfully.

用git账号创建项目仓库

[root@git ~]# su - git
[git@git ~]$ mkdir repos
[git@git ~]$ cd repos/
[git@git repos]$ mkdir app.git
[git@git repos]$ cd app.git/
[git@git app.git]$ pwd
/home/git/repos/app.git
[git@git app.git]$ git --bare init
Initialized empty Git repository in /home/git/repos/app.git/
[git@git app.git]$ ls
branches config description HEAD hooks info objects refs
[git@git app.git]$

在Jenkins服务器上测试推送代码

[root@jenkins ~]# yum -y install git
[root@jenkins ~]# mkdir -p /test
[root@jenkins ~]# cd /test

[root@jenkins test]# git clone git@192.168.200.151:/home/git/repos/app.git
Cloning into 'app'...
The authenticity of host '192.168.200.151 (192.168.200.151)' can't be established.
ECDSA key fingerprint is SHA256:gm/RhqGrfDo5Rgcr/LmBAaqPv6tmni7cRpXjGEWZQpg.
ECDSA key fingerprint is MD5:ae:f6:0b:6e:80:96:67:cf:bd:e8:f5:b5:c4:e0:da:11.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.200.151' (ECDSA) to the list of known hosts.
git@192.168.200.151's password:
warning: You appear to have cloned an empty repository.
[root@jenkins test]# ls
app

[root@jenkins test]# cd app
[root@jenkins app]# touch test.sh
[root@jenkins app]# echo "hello" >> test.sh
[root@jenkins app]# git add *
[root@jenkins app]# git commit -m "first"

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@jenkins.(none)')
[root@jenkins app]# git config --global user.email "493115250@qq.com"
[root@jenkins app]# git config --global user.name "cash_su"

[root@jenkins app]# git commit -m "first"
[master (root-commit) 731ab6e] first
1 file changed, 1 insertion(+)
create mode 100644 test.sh
[root@jenkins app]# git push -u origin master
git@192.168.200.151's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 207 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.200.151:/home/git/repos/app.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

给git做一个免秘钥

[root@jenkins app]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:toacG+JZEW1VNmQKQcp9slNyCHCaq55K9Ym82EZcboU root@jenkins
The key's randomart image is:
+---[RSA ]----+
| ..o.+..o* |
| = = + + . |
| o = B = |
| E + B |
| ..+ o S |
| o+o+.= o |
| .oooo* o |
|..o+.+ + |
|.o+oo . |
+----[SHA256]-----+
[root@jenkins app]#
[root@jenkins app]#
[root@jenkins app]# ssh-copy-id -i ~/.ssh/id_rsa.pub git@192.168.200.151
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: key(s) remain to be installed -- if you are prompted now it is to install the new keys
git@192.168.200.151's password: Number of key(s) added: Now try logging into the machine, with: "ssh 'git@192.168.200.151'"
and check to make sure that only the key(s) you wanted were added. [root@jenkins app]# ssh git@192.168.200.151
Last login: Sun Dec ::
[git@git ~]$ exit

准备安装Jenkins

Jenkins官网:https://jenkins.io/

redhat版Jenkins官网下载页面:https://pkg.jenkins.io/redhat-stable/

下载了rpm包以后通过localinstall直接安装

yum -y localinstall 安装包名

利用yum直接安装Jenkins

[root@jenkins app]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
#导入证书秘钥

[root@jenkins app]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

[root@jenkins app]# yum -y install jenkins

#用命令查看安装路径


[root@jenkins app]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
[root@jenkins app]#

 

安装java

[root@jenkins ~]# tar xf jdk-8u171-linux-x64.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# mv jdk1..0_171/ jdk
[root@jenkins local]# vim /etc/profile
[root@jenkins local]# tail - /etc/profile
export JAVA_HOME=/usr/local/jdk/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

[root@jenkins local]# source /etc/profile
[root@jenkins local]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
[root@jenkins local]#

安装maven

[root@jenkins ~]# tar xf apache-maven-3.5.-bin.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# mv apache-maven-3.5./ maven
[root@jenkins local]# vim /etc/profile
[root@jenkins local]# tail - /etc/profile
MAVEN_HOME=/usr/local/maven
export PATH=${MAVEN_HOME}/bin:$PATH

[root@jenkins local]# source /etc/profile
[root@jenkins local]# mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_171, vendor: Oracle Corporation
Java home: /usr/local/jdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
[root@jenkins local]#

启动jenkins

[root@jenkins ~]# ln -s /usr/local/jdk/bin/java /usr/bin/
[root@jenkins ~]# systemctl start jenkins
[root@jenkins ~]# ss -antup | grep
tcp LISTEN ::: :::* users:(("java",pid=,fd=))
[root@jenkins ~]#

添加到开机自启

[root@jenkins ~]# systemctl enable jenkins
jenkins.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig jenkins on
[root@jenkins ~]# echo $?

开始使用Jenkins

查看解锁码
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
6c2b251fde9348e1ba5f3ecd968f0917
[root@jenkins ~]#

使用默认的插件即可

权限管理

开发人员用的   生产环境项目代码版本发布(A/B测试等)

测试人员用的        测试环境自动部署

运维人员用的            生产环境项目代码版本回滚

安装控制角色的插件

测试创建2个用户,一个开发,一个测试的

同样主从user2测试的账号密码

最终的权限选项

创建2个项目来实验权限,空项目即可

超户视角

测试视角

开发视角

在超户上构建两个项目的视图

超户视角

开发视角

测试视角

测试开发的构建功能

超户改变配置

构建成功

带参数的构建(在超户里修改配置)

在开发视角开始构建

构建成功

安装插件Extended可以让用户自己选分支

在超户修改配置,进行多项选择实验

我们可以将参数写到文件里,让其引用这个文件,就可以有参数了

[root@jenkins ~]# vim /opt/jenkins.property
[root@jenkins ~]# cat /opt/jenkins.property
ok=can1.can2,can3

用git参数化构建

安装插件

添加私钥到全局凭据

[root@jenkins ~]# cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA11fzf+Ur3ENQRFazuqNn3WgSca9s9b4mT71WYjSx0OlwRQKW
cAht2NAhR7ZYWFcu8kXJiPYNiuNWvNzRaPRQLNdELrplI4mJlznjUYlogVKlJTEi
vXlWnI/sCnwOADAYMeMCB+vvMuHs+XAzShoBPa7spZ2zOsUEgkdQ9b/nnRdI6rgz
A/V0xMOoChXQviis2fdUgxt5se6AVIzjhEJGC1L28Zy/Q+2oWDUgQW3ewlW4tdxQ
25ddNjxWuhUvL6/7mx2PKTV4gtyIk3r/7yUqsHWuWEVSoswFj1A2lVMIvTbiAMhH
FLECFlQU7uNIbETQw7H0UCoy28WecBU4aSrIQQIDAQABAoIBAQCIheUFR3hoG3Du
8nzdra0yrEFNO+d7YMMPOL1kY338MZMQ3VQc0Os7UrBWs58M2rETvfTIVR4+2GRs
Nh65SHLwCsXaTifCwPavHm8kiVXs70Vt79nTf/LOLVx7RSznJ5afQglOlmC+xIcl
mOGbcCMrRRQY54LylmeGZMpKExE3AJpnr2+HH0ivzIdEtODPdoeGhlWvmtt/iAUf
9sdpfiBlOmFIZO6Zx4FNCfz+Ovaa6+Vt0EjlAXh32BHOcaDhwC67jMqD//3Ft/rk
j8KJrJN3KUgZ5He7pEBBXap8LsehWcCvT83syKEQAivq5qS86thPSDLTjhN+Pruc
dUM5u4XxAoGBAP8e5gMVn4089719kReQpURFz0KPqEHOJm4u9FEpEyi+YWtTfqzn
UoQ886gU7nchiaBPzpSooTgDB+iuc8s1kGT2BXtW1e7A4OjXyzKB9mV5DqjFxnYb
bFAmGJF0PvtetmS2ghSRcXO4tsOlVzF/i40DgvbY+cZUILezkgn3tAKVAoGBANgV
9Lueas4YfuX2n33Pg03IUEpaUUSz/ZKLW7aW9vwbXsvSIXRRRLVbrXQ0XCG9dP1L
41DSk5QXSMCXu1i0nC5qBYAaftO9TUCoz3JgdwF5/YABHSNF+H/p92nSDPMEGwxD
2EhbfdL8x9ArJksKX/p476gKDx14kNjKvWiZx4/9AoGBAMqnZbjPhWUxJ+4q/4VD
jjRUa9YIvXRAaICf5c1Onnx/9mzF71sziXWn4TkEH4Uca/GfU479AMu4hKDNawfh
rai1URdvnBLCviXXvP6LBAoJBp8EM6kAEaL9EAkC2UDeNG5+F4h1HDT7Zpq1DTUx
hs3mGzMwmgB0NWUXTIuEa0adAoGANJzb8ta2oKm8NBfha4ucJ9MvIXtuMDE2+3ht
Az8sseOkKDJorN6gwRuqVxHsoNZ1ZrsUhPhQsI0ezK3lEsse//oWjsNkv/9mkOjJ
Ycr1Dun5/DHJO25s/BAmiqB3QLBuOYVHYw7LyxR7PkdTUpAbIGxTxfF1DrLtaaur
hI101q0CgYEA8IQKMINCF4SuJ+TSAtzav0WKBqayOWi1mdVoOZl7MoqxjUywFXw5
V4oKxxty3tWvTa5MR6R0jfY0Om92LWXKmicZWnq6pZC/26H3ZuuMwO1WlGE5OBmo
ZpuYlD1okBWUhVSzKmzLp6MzCpUgUbu2ffuSjeaSv6bVEYdS0l/uX9Q=
-----END RSA PRIVATE KEY-----
[root@jenkins ~]#

修改配置文件

节点主从构建,

创建全局凭证,

测试用新的节点构建

在git服务器上查看Jenkins工作的目录有没有拉取下来

[root@git A-web]# pwd
/var/lib/jenkins/workspace/A-web
[root@git A-web]# ls
test.sh
[root@git A-web]# cat test.sh
hello
[root@git A-web]#

jenkins的应用与搭建的更多相关文章

  1. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  2. Jenkins+ANT+SVN快速搭建持续集成环境

    伟大的语言都从helloworld开始,这里我们用Jenkins+ANT+SVN来搭建这一套持续集成环境. 环境准备: 一台已经配置好Jenkins和Ant的机器. 项目准备: 用Ecplise建立一 ...

  3. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...

  4. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...

  5. Jenkins持续集成学习-搭建jenkins问题汇总

    目录 Jenkins持续集成学习5-搭建jenkins问题汇总 目录 前言 问题列表 nuget还原包问题 编译问题 SVN更新问题 参考文档 Jenkins持续集成学习5-搭建jenkins问题汇总 ...

  6. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...

  7. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

  8. 谁能告诉我如何通过Jenkins完成分布式环境搭建并执行自动化脚本

    ​今天我们接着昨天的内容,看一看如何完成Jenkins分布式环境的搭建和使用,因为我之前也是自己一个人摸索的,如果有不对的地方,请各位看官私信指出. 新增分布式部署节点 在系统管理/节点管理中点击新建 ...

  9. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)

    前言     但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A ...

  10. Jenkins+Maven+SVN快速搭建持续集成环境

    http://www.cnblogs.com/sunzhenchao/archive/2013/01/30/2883289.htmlhttp://blog.csdn.net/pein_zero/art ...

随机推荐

  1. HTTP If-Modified-Since引发的浏览器缓存汇总

    在看Spring中HttpServlet的Service方法时,对于GET请求,代码逻辑如下: if (method.equals(METHOD_GET)) { long lastModified = ...

  2. ubuntu下安装mkfs.jffs工具

    一.环境 Os: ubuntu 16.04 二.安装 2.1安装依赖库 sudo apt install zlib1g-dev liblzo2-dev uuid-dev 2.2编译安装mtd-util ...

  3. ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer 最大生成树 lca

    大概就是要每两个点 只能有一条路径,并且约束,最短的边用来砌墙,那么反之的意思就是最大的边用来穿过 故最大生成树 生成以后 再用lca计算树上两点间的距离 (当然防止生成树是一条链,可以用树的重心作为 ...

  4. Sass常用写法

    Sass使用变量,变量以$开头 $bgcolor:#f40; background-color:$bgcolor; 如果变量需要嵌套在字符串当中,就需要写在#{}之中 $direction:left; ...

  5. 分布式事务之——tcc-transaction分布式TCC型事务框架搭建与实战案例(基于Dubbo/Dubbox)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/73731363 一.背景 有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了 ...

  6. Axure RP 8.0 Licence

    新版本:(比如 Axure RP 8.0.0 3319)Licensee:米 业成 (STUDENT)Key:nFmqBBvEqdvbiUjy8NZiyWiRSg3yO+PtZ8c9wdwxWse4W ...

  7. shell 浮点运算

    浮点运算 let 和 expr 都无法进行浮点运算,但是 bc 和 awk 可以. 范例:求 除以 ,保留 位有效数字 $ echo "scale=3; 1/13" | bc . ...

  8. 使用 dplyr 管道操作处理数据框

    关于数据操作的另一个流行的包是dplyr,它发明了一种数据操作语法.dplyr 扩展包并没有使用构建子集函数([ ]),而是定义了一系列基础的变形函数作为数据操作模块,并且引入了一个管道操作符,利用管 ...

  9. queue_01

    A.添加/移除 void queue::push(elemValue); // 尾部添加 viud queue::pop();  // 尾部移除 B.随机存取 C.数据存取 T queue::back ...

  10. js中如何访问对象和数组

    js中如何访问对象和数组 一.总结 一句话总结:js访问对象点和中括号,访问数组的话就是中括号 对象 . [] 数组 [] 1.js访问对象的两种方式? . [] 可以使用下面两种方式访问对象的属性和 ...