Jenkins

旧时模样 提交于 2020-01-21 04:45:46

Jenkins安装

在宿主机安装Jenkins

#open jdkyum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel#查看版本java -version#方式一:官方仓库(太慢太慢太慢)sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key#安装Jeckinsyum install jenkins -y#方式二:先下载再安装,也慢,不到100k/s  慢慢等算了   wget https://pkg.jenkins.io/redhat-stable/jenkins-2.176.3-1.1.noarch.rpmrpm -ivh jenkins-2.156-1.1.noarch.rpm

 

使用docker运行jenkins(推荐)

#一句搞定  -u 0 :run as a root user (uid=0)(否则docker run 的时候 没有写入权限)docker run -u 0 -p 8080:8080 -p 50000:50000 -d  -v /home/jenkins-home-docker:/var/jenkins_home  jenkins/jenkins#浏览  http://ip:8080 #查看token (提示找不到,感觉run的时候 -v 映射卷,没有映射上)cat /var/jenkins_home/secrets/initialAdminPassword#进入容器内部docker exec -it fcdba184a17f  /bin/bash #再查看容器内部的token,就有了cat /var/jenkins_home/secrets/initialAdminPassword#在jenkins的容器内部,参考第三条,配置镜像加速,不然构建容器的时候会很慢;
#退出容器,回到宿主机ctrl+p & ctrl+q

 Jenkins配置

基础配置

#Jenkins时区设置为北京时间 :打开 【系统管理】->【脚本命令行】运行下面的命令
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')#配置发件人邮箱和SMTP

安装插件

#安装插件
Git:从Git拉去代码
Chinese: 中文
Docker : 提供docker 构建和发布 
SSH : 提供通过SSH在远程主机执行命令,用于部署服务 
maven : 支持maven

 

Docker配置

目的:

#系统管理-系统设置-云 :新增
Name:Docker
Docker Host URI:tcp://10.6.66.229:2375

SHH主机配置

#系统管理-系统设置-SSH remote hosts  SSH sites:新增  Hostname:10.6.66.229  Port:22  Credentials: (需要添加一个docker宿主机的用户,作为凭证)  serverAliveInterval:0  timeout:0

 

Git配置

创建公钥和私钥,以便从git拉去代码

[root@Jenkins ~]# 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:5SGYye8oxCKFJjddb4W8JC0RAQhBWCvuG8aZL8eMJs4 root@Jenkins
The key's randomart image is:
+---[RSA 2048]----+
|==....=* ..      |
|...o oo==.       |
|+.= . =++.o      |
|++ o   o.+ .     |
|... o   S .      |
|o.oo   o         |
| B+ . . .        |
|++++ .           |
|+Eo.             |
+----[SHA256]-----+
[root@Jenkins ~]# cat /root/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6N5UGSP0jKobEsVeDn//OgSnkSHA78QZaLkglSX5jbb0clgr5KkcyuxYhiDBugZ9EFP3ttdYlAmDWPkEQhbyWtkHsJJY6voFakM91zNhKffjBBN0oL8JPa6dQvP1m9DF48rKNb6aTjO09OOriLUGQbSVCifVj04bFlwCmwPlCE/rH69QbP7qN2y9Ls+jA6YM9wRj4p57F2ZXdRWBb4MCjgMRi7AM73bWERo1xuUcXu1EPnVhGtQoFI11TpQwH/ly2OoVmZMcTh5N/UzUhRiDsu993blldtwBCpu0i5a9J5LPoV6RWPcmd7ZbAJQhS+nXTKJlX4+C9A4JZXZGDADfd root@centos-t001
[root@Jenkins ~]# cat /root/.ssh/id_rsa

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAujeVBkj9IyqGxLFXg5//zoEp5EhwO/EGWi5IJUl+Y229HJYK
+SpHMrsWIYgwboGfRBT97bXWJQJg1j5BEIW8lrZB7CSWOr6BWpDPdczYSn34wQTd
KC/CT2unULz9ZvQxePKyjW+mk4ztPTjq4i1BkG0lQon1Y9OGxZcApsD5QhP6x+vU
Gz+6jdsvS7PowOmDPcEY+KeexdmV3UVgW+DAo4DEYuwDO921hEaNcblHF7tRD51Y
RrUKBSNdU6UMB/5ctjqFZmTHE4eTf1M1IUYg7Lvfd25ZXbcAQqbtIuWvSeSz6Fek
Vj3Jne2WwCUIUvp10yiZV+PgvQOCWV2RgwA33QIDAQABAoIBAAj8CYqmFuCNerce
v1Qwcg0qmjTTcebSeDX9qaly5FAzyT4J1zmyWoEOGcFAauXKBz8nrCC99zkN5lIv
6r+7VCAJZyDXmw/2hRMzjW7nlT/y1/+oFmuL8loWnZn9pFRFT+W///FnA6h20jNz
/ZEwEcvAGF4ffeF1ITmDUZq6EMypSQJH4XXPh7FqfFTM3s3zwjtcxbwXQVw/KXmR
iI4k20zsw1WSPLPg2JPbvws7QZddut5M1TCHn9AvU4y4KrigCPoqLLGElvmKzkaW
Z9pjk7kk07u4lU6YuE2NLYRf7j/WqYC+/IrAIYlhY6fS6JL/nzmWu0yTLyiSExdO
mih2VwECgYEA6EdXtiJcMQu5d7195cV98P/BUL7iL0huIBmlU0c+7+/cvea6V587
V1c4B8s+NpyDIfkSHVOZdLhmRg78nXT7BuSWcRwOLJn61h2oJ03GlEZL/emrreH4
cRb2hO8O4uAJFKUSGeHogdZAYQb21FpSmzSEQiMbJXCP3bwwqEKp8r0CgYEAzTwD
YQiD4YSLzAP+V5nlpWuUgBmhXwOci5CJshsoGCCcEfRgHrrJ1xNI5zXriL1WxLPL
jhFSSQyv1a+MydWp/GvcMm7UNzSWob3otf/pRqQgJN6Ix7lvTmEqaQxf5Ye9ZVei
YVjp5v1cKiDtZtKWgpj6aWXOvo6UDhNnaJkxO6ECgYEApfkcbpOcxpr3Gt13EXEN
7eACVV0gJ+Mcdal9ncUh7ra5R6SPcD7iWyWCbudGfCVX+jWMQRJUa7e7tMHOtgA5
wxIhgY8nfa1FNCwa1ILZq2eTs0p+FxCJwt1Cp3hebbTiKDNPfNkUl3ntpKciRliI
AEkFXHDTW+xTkICBUCnaYA0CgYAXwy8Q+Q9r+RDGml/EfMkeEgqrmkwY2C4z6pRG
zuYhhQUM/yJx7GaaRF1Yh+Gxf1qgg8C5vj+svY9OSnkelWKNG1/vZu2jRq96Iqbj
C7JSv4YJPsrPdSTyCkYCy6/+v2yqYy8l3kmWuRcGubFDCnbqwBOeSG9bmN6DkrOS
ZMpSgQKBgQCvEiVGLIgo2L/1k8cELQZfBcY3RuA8gvkaJfIpgXdt7qkJbvMpZP6e
rX/sANXrY8+PX2DfbsHmZ0HGjEWA0F4ncNloI1jPqN6U/GRSHa/t/nO4/RzL8rpx
lKw190pEZ/sEHv9KXeVZdT5noyw1Y67ssUapX3BRU67/7kOhakMJVg==
-----END RSA PRIVATE KEY-----

凭据配置

 Docker registry 凭据

 

Jenkins使用

新建任务

#新建任务:选择自由风格#源码管理:  1.选择Git,Repository URL:填写项目的git地址  2.按上一步创建公钥和私钥  3.在gitlab中添加公钥id_rsa.pub  4.添加凭据:    类型:选择SSH    UserName:git    选择Enter directly, 点击Add ,填写上一步生成的 私钥id_rsa#构建触发器  1.选择:轮询 SCM    输入 H/2 * * * * 设置两分钟拉取一次  2.使用webhooks远程出发构建
  
#构建:见下一步  

 

构建流程

第0步:在Docker Swarm Manager节点上的主机目录上,编写docker-compose.yml,编排容器和服务;

第1步:先从Git拉取代码

第2步:添加构建步骤:Build / Publish Docker Image

  1.根据代码中的Dockerfile构建Images;

  2.将构建好的Image,push到仓库;

第3步:添加构建步骤:Execute shell script on remote host using ssh  

cd /data/dicker/compose/xplan   #docker-compose.yml所在目录
docker stack down xplan      #下线
docker stack deploy -c docker-compose.yml xplan  #重新部署

 

第4步:提交代码,等待构建和发布;

 

 

 参考: 

【★】Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境

Jenkins与网站代码上线解决方案 

ASP.NET Core + Docker +Jenkins 实现持续集成 

Jenkins持续集成 & .NET

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!