实验条件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. 【域名配置】Tomcat外网发布域名配置

    1.修改端口 首先,访问服务器时默认的是80端口,tomcat中的server.xml文件直接修改,这里要说明的是如果一个服务器上有多个tomcat的话,修改端口需要注意的是要修改 <Serve ...

  2. 网络压缩论文整理(network compression)

    1. Parameter pruning and sharing 1.1 Quantization and Binarization Compressing deep convolutional ne ...

  3. Darknet卷基层浅层特征可视化教程

    目录 Darknet浅层可视化教程 说明 处理步骤 使用python可视化txt文件 Darknet浅层可视化教程 说明 针对YOLO官方提供的c语言版的darknet进行了修改,添加了一些函数,进行 ...

  4. 处理div 在IE6 IE7 IE8 不居中的问题

    具体处理方式如下:1 .html 顶部加入:DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  5. Gym - 100342J Triatrip (bitset求三元环个数)

    https://vjudge.net/problem/Gym-100342J 题意:给出一个邻接矩阵有向图,求图中的三元环的个数. 思路: 利用bitset暴力求解,记得最后需要/3. #includ ...

  6. windows与kali双系统安装基本教程

    以前写过一篇在虚拟机中安装kali的基本教程的文章,那时候的kali还是1.0时代,现如今已经kali2.0了,在虚拟机中运行kali还是会受到性能的影响,所以还是装到自己电脑上跑起来最爽.当然如果你 ...

  7. FastJson之JsonObject, JsonString, JavaBean,List快速转换

    // 将json字符串转换为json对象 JSONObject jsonObject = JSON.parseObject(jsonStr); // {"retState":&qu ...

  8. HDU 4054 Number String

    HDU 4054 Number String 思路: 状态:dp[i][j]表示以j结尾i的排列 状态转移: 如果s[i - 1]是' I ',那么dp[i][j] = dp[i-1][j-1] + ...

  9. 554C - Kyoya and Colored Balls

    554C - Kyoya and Colored Balls 思路:组合数,用乘法逆元求. 代码: #include<bits/stdc++.h> using namespace std; ...

  10. Python -- Scrapy 命令行工具(command line tools)

    结合scrapy 官方文档,进行学习,并整理了部分自己学习实践的内容 Scrapy是通过 scrapy 命令行工具进行控制的. 这里我们称之为 “Scrapy tool” 以用来和子命令进行区分. 对 ...