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持续集成环境
ASP.NET Core + Docker +Jenkins 实现持续集成
来源:https://www.cnblogs.com/fmp/p/11486081.html