大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步!
什么是jenkins?
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
jenkins的功能
- 持续的软件版本发布/测试项目
- 监控外部调用执行的工作
依赖环境
- jdk1.5及以上(建议使用1.8)
使用docker快速搭建
查看版本
[root@test ~]# docker --version
Docker version 20.10.8, build 3967b7d
[root@test ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
下载jenkins镜像
jenkins官方镜像网站:请点我### 使用docker指令拉取镜像
bash docker pull jenkins/jenkins:latest
当发现一直卡在下载进度条时(如下图),主要是因为拉取国外镜像的限速问题,这时我们可以更换国内的加速源解决此问题。
### 更换docker加速镜像
bash [root@test ~]# vim /etc/docker/daemon.json { "registry-mirrors": ["https://yxzrazem.mirror.aliyuncs.com"] } [root@test ~]# systemctl daemon-reload [root@test ~]# systemctl restart docker
更换完加速镜像后重新拉取jenkinsj即可
### 查看jenkins镜像
bash [root@test ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins latest 55860ee0cd73 10 months ago 442MB
### 查看jenkins版本
bash [root@test ~]# docker inspect jenkins/jenkins|grep -i jenkins.*version "JENKINS_VERSION=2.328",
### 创建jenkins存储目录
bash [root@test ~]# mkdir /root/jenkins_home
### 构建jenkins容器
bash [root@test ~]# docker run -u root -d --name jenkins -p 9988:8080 -p 50000:50000 -v /root/jenkins_home:/var/jenkins_home jenkins/jenkins 8cbfeeccb96163f29d4eb64b9ee9b46b6206bbb5ceb2adb9bdf5b9aa233d8007
--name jenkins 代表容器名称
-p 50000:50000 ,这个端口映射要保持一致,为agent服务端口
/root/jenkins_home:/var/jenkins_home 为服务挂载到宿主机的路径
登录jenkins页面
浏览器访问 http://192.168.120.178:9988,出现下图页面即为正常
查看密码文件
[root@test ~]# docker exec -ti jenkins bash
root@8cbfeeccb961:/# cat /var/jenkins_home/secrets/initialAdminPassword
b117506d55844bf7bc4aa5bf349cf1ea
#也可以直接在宿主机操作cat /root/jenkins_home/secrets/initialAdminPassword ,是一样的效果
将查询到的密码复制粘贴到管理员页面,并登录
安装完插件后,点击使用admin账户继续
设置访问jenkins仓库的根地址,默认即可
配置jenkins插件更新源
安装插件
如 pipeline/git等插件
重启jenkins
添加agent节点
命令行代理方式
在命令行中启动节点
curl -sO http://192.168.120.178:9988/jnlpJars/agent.jar
java -jar agent.jar -jnlpUrl http://192.168.120.178:9988/manage/computer/build/jenkins-agent.jnlp -secret 4c439cd1b1091a4499b4b5274d2cf4f376b0b0b8767830527a91a1c98d1e2ac2 -workDir "/opt/jenkins"
Or run from agent command line, with the secret stored in a file:
echo 4c439cd1b1091a4499b4b5274d2cf4f376b0b0b8767830527a91a1c98d1e2ac2 > secret-file
curl -sO http://192.168.120.178:9988/jnlpJars/agent.jar
java -jar agent.jar -jnlpUrl http://192.168.120.178:9988/manage/computer/build/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins"
权限管理
安装授权插件 Role-based Authorization Strategy 用户项目授权。
点击系统管理-全局安全配置进行策略管理。
系统配置界面出现一个 “Manage and Assign Roles”,点击进入
凭据管理
点击系统管理-Manage Credentials 设置凭据
用户管理
新增用户
点击create user,填写相关信息后确认。
系统版本及插件信息
点击系统管理-关于jenkins,即可查看插件版本等信息。
新建任务
点击面板新建任务
选择构建一个自由模式的软件项目,比较常用、通用
出现以下页面即为创建成功,输入项目描述
点击源码管理,可以设置源码管理方式(可选择Git CVS等,插件管理手动安装即可,我这里只安装的git,所以只显示git和none),以及触发器等(图中设置的是每天0点执行)。
任务构建的主角:构建环境
选择shell,即支持shell命令
选择shell之后,设置需要定时执行的指令,如不需要可以手动删除
构建完成之后,点击保存
如下图,出现绿色标记即为成功(前面多次失败是因为容器内没有free命令,临时换了echo命令)
查看控制台输出详情
至此,jenkins搭建、配置、及任务创建完成。
码字不易。如果文章对您有希望的话,请三连支持一波。
如有问题,欢迎留言,一起探讨,感谢。
也可关注早九晚十二微信公众号,看到留言后会第一时间回复。