jenkins
     分类:Dev     有: 0 条评论

jenkins

     分类:Dev     有: 0 条评论

jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。

jenkins 安装

Ubuntu

法一:apt-get

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb https://pkg.jenkins.io/debian-stable binary/" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install jenkins

jenkins地址是:http://IP:8080

法二:war包
下载地址:https://jenkins.io
mark
下载的jenkins.war,放到tomcat/webapp目录下,启动tomcat
tomcat默认端口为8080(可以自行修改),jenkins地址是:http://IP:8080/jenkins

启动jenkins和停止jenkins可以用下面这两条命令:

sudo service start
sudo service stop

安装完成,启动报错见下面配置设置,网页打不开看看防火墙有没有放行端口。


Centos

安装前检查jdk

java --version
yum list *openjdk*

法一:yum

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

jenkins地址是:http://IP:8080

法二:war包
下载地址:https://jenkins.io
mark
下载的jenkins.war,放到tomcat/webapp目录下,启动tomcat
tomcat默认端口为8080(可以自行修改),jenkins地址是:http://IP:8080/jenkins

启动jenkins和停止jenkins可以用下面这两条命令:

sudo /etc/init.d/jenkins start
sudo /etc/init.d/jenkins stop

安装完成,启动报错见下面配置设置,网页打不开看看防火墙有没有放行端口。

Window、Mac

下载地址:https://jenkins.io
mark
直接点图中war包旁边小三角选择下载安装
jenkins地址是:http://IP:8080


Docker

DockerHub官方jenkins镜像: https://registry.hub.docker.com/_/jenkins/

github源码: https://github.com/jenkinsci/docker

官方jenkins镜像中所使用的jenkins是Jenkins的LTS(Long Term Support)发布版本。

docker官方的jenkins镜像启动容器

运行命令为

docker run --name myjenkins -p 8080:8080 -v /var/ jenkins_home jenkins

运行docker run命令时,如果本地没有镜像,则默认会从DockerHub pull镜像,将镜像缓存到本地,然后再启动基于镜像创建的容器。
查看镜像信息:docker images

过一会儿就能看到启动日志了,此时注意日志输出的密码。
mark
查看日志也可以

docker ps
docker logs [image_name/CONTAINER ID]

提示说密码在/var/jenkins_home/secrets/initialAdminPassword能看到,于是进入交互模式

docker run -i -t [image_name/CONTAINER ID] /bin/bash

就可以直接像一台主机一样操作啦,但我没有找到该文件。

之后浏览器输入http://IP:8080就能看到Jenkins页面了,输入刚刚的密码。下一步按需要选择;输入账户密码;进入管理界面。
mark

源码构建jenkins镜像并运行容器

需要JDK环境

git clone https://github.com/jenkinsci/docker.git
cd docker
docker build -t leolan/jenkins .   #使用docker build+Dockerfile(文件在docker目录下)构建jenkins镜像

mark
镜像构建成功后(总共21个Step,Dockerfile共21条指令),使用docker images查看镜像,leolan/jenkins和官方的jenkins镜像大小相同,使用docker ps查看运行的容器信息。
使用docker stop [image_name/CONTAINER ID]停止之前基于官方jenkins镜像启动的容器
启动新容器:docker run --name leolan_jenkins -p 8080:8080 -v /var/jenkins_home leolan/jenkins
之后浏览器输入http://IP:8080就能看到Jenkins页面了,输入刚刚的密码。下一步按需要选择;输入账户密码;进入管理界面。
mark

用cSphere希云管理Docker

参考:http://csphere.cn/hub/jenkins


配置设置

jenkins安装目录(WAR包会放在这里):/usr/lib/jenkins/
jenkins配置文件:/etc/sysconfig/jenkins
默认的JENKINS_HOME:/var/lib/jenkins/
Jenkins日志文件:/var/log/jenkins/jenkins.log

端口设置vim /etc/sysconfig/jenkins
找到2处修改端口号:
JENKINS_PORT="8080"
JENKINS_AJP_PORT="8009"
重启服务:service jenkins restart

错误:“Starting Jenkins -bash: /usr/bin/Java: No such file or directory”。表示找不到Jenkins找不到java。
查看java版本java -version,编辑文件vi /etc/init.d/jenkins,找到类似这样的一段,在最后加上:

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/bin/java
/usr/java/jdk1.8.0_111/bin/java  #新增加的

重启服务:service jenkins restart


jenkins 插件

Git Parameter Plug-In 插件

本节是根据烂泥大神分享的笔记摘录的!
Git Parameter Plug-In插件可以参数化构建git 可以根据不同的分支或者tag进行构建。

安装Git Parameter Plug-In插件

Git Parameter 文档
https://wiki.jenkins-ci.org/display/JENKINS/Git+Parameter+Plugin
插件下载https://updates.jenkins-ci.org/download/plugins/git-parameter/

下面这个截图是根据分支进行构建

如果是根据tag进行构建的话,如下进行配置

这次我们是根据分支进行构建

注意以上两张截图中name就是下面我们要配置的变量:


通过上图,我们可以看到下载git仓库中有两个分支master和wxy,我们可以选择其中任意一个进行构建即可。
这次我们选择wxy分支进行构建,如下:


ansible plugin插件

本节是根据烂泥大神分享的笔记摘录的!

首先要注意把yml文件存放到jenkins的工作目录下,否则jenkins会提示无权限操作。

cat /var/lib/jenkins/yml/dir.yml
 
- hosts: '{{ host }}'
  remote_user: root
  tasks:
   - name: test make dir
     file: path=/etc/ilannitest state=directory mode=0755




也可以保存到文件中主机地址,如下:

cat /etc/ansible/hosts 

[h5]
114.55.101.252  ansible_ssh_user=root ansible_ssh_private_key_file=/var/lib/jenkins/key/dongyin```
![](https://image.leolan.top//blog/jenkins014.png)
![](https://image.leolan.top//blog/jenkins015.png)
![](https://image.leolan.top//blog/jenkins016.png)

---
## 多仓库Multiple SCMs plugin插件
**本节是根据[烂泥大神](http://www.ilanni.com/)分享的笔记摘录的!**

插件地址:http://mirror.xmission.com/jenkins/plugins/multiple-scms/
![mark](https://image.leolan.top/blog/20161117/090622750.png)
![mark](https://image.leolan.top/blog/20161117/090639726.png)
这个设置是为了防止前一个仓库的代码覆盖后一个仓库代码
![](https://image.leolan.top/blog/20161117/090424777.png)
![mark](https://image.leolan.top/blog/20161117/090652844.png)
![mark](https://image.leolan.top/blog/20161117/090702854.png)


---
(●゚ω゚●)