Jenkins 是一款流行的开源持续集成工具,在项目中广泛应用。具有自动化构建、测试和部署等功能。它提供了上千种插件,几乎所有的需求都可以通过安装插件完成
2. 使用 docker 安装 Jenkins- 拉取 Jenkins 镜像
docker pull jenkins/jenkins
- 创建 Jenkins 挂载目录并授权
# 创建挂载目录 mkdir -p /data/jenkins_home/ # 给目录授权 chmod 777 /data/jenkins_home/
- 创建并启动 Jenkins 容器
docker run -di --name=jenkins -p 8080:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins
注意:
- Jenkins 需要开放两个端口:8080 和 50000,阿里云的安全组端口也要开放
- -v /etc/localtime:/etc/localtime:让容器和服务器的时间同步
- 查看 Jenkins 容器是否启动成功
docker ps
- 配置镜像加速
# 进入到 Jenkins 挂载的目录下 cd /data/jenkins_home # 修改 hudson.model.UpdateCenter.xml 的内容配置镜像加速 vi hudson.model.UpdateCenter.xml
修改前:
default https://updates.jenkins.io/update-center.json
修改后:将 url 修改为清华大学官方镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
default https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
注意:修改之后要重新启动 Jenkins 容器
- 访问 Jenkins 页面:url 为:ip:8080
- 管理员密码获取方法:编辑 initialAdminPassword 文件查看,把密码输入登录中的密码即可,开始使用。
vi /data/jenkins_home/secrets/initialAdminPassword
- Jenkins 的简单使用
Jenkins->Manage Jenkins->Manage Plugins,点击 Available,搜索 “Chinese”
最后重启 Jenkins 的 docker 容器,就可以看到汉化版的 Jenkins 了
4. Jenkins 的凭证管理凭据可以用来存储需要密文保护的数据库密码、Gitlab 密码信息、Docker 私有仓库密码等,以便 Jenkins 可以和这些第三方的应用进行交互。
(1) 安装凭证管理插件:Credentials Binding重启 Jenkins 容器后,系统管理中多了一个凭据配置和 Manage Credentials,在这里管理所有凭证
(2) 可以添加的凭证可以添加的凭证有 5 种。我们常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH 密钥)
- Username with password:用户名和密码
- SSH Username with private key: 使用 SSH 用户和密钥
安装成功之后,重启 Jenkins 容器,Git 插件就会生效
Jenkins 容器中本来就安装有 Git 工具。如果没有 Git 工具,可以用如下命令安装
# 安装 yum install git -y # 安装后查看版本 git --version(4) 添加 gitee 的用户名密码凭据
系统管理->凭据配置,把我们常用的凭据都添加上
系统管理->Manage Credentials,添加凭据
保存之后,点击立即构建,就可以将代码拉取到 Jenkins 的工作空间了
SSH 免密登录示意图
在 Jenkins 容器中执行下面命令,生成公钥和私钥。(一路回车键就好)
ssh-keygen -t rsa
在/root/.ssh/目录保存了公钥和使用
# 以 root 用户的身份进入到容器中(为了能够访问 root 目录) sudo docker exec -it -u root jenkins /bin/bash # 进入到 /root 目录 cd /root # 查看目录下的全部文件(包括隐藏文件) ls -al # 进入到 .ssh 目录 cd .ssh
把公钥复制到 gitee 中,把私钥复制到 Jenkins 的凭证中
Jenkins 中 SSH 密钥凭证的配置
Pipeline 流水线是以一种编码的形式编写整个 Jenkins 的构建过程。包括:拉取代码、编译构建、部署等等的一些行为。
- Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法,一般我们都用声明式语法
- Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制中直接载入 Jenkinsfile Pipeline 这种方法)。
安装好 Pipeline 插件后,重启 Jenkins 容器,创建项目的时候多了“流水线”类型
刚刚我们都是在 Jenkins 的 UI 界面编写 Pipeline 代码,这样不方便脚本维护。所以我们要把 Pipeline 脚本放到项目中,一起进行版本控制,这样也不会因为 Jenkins 的崩溃而导致脚本丢失
-
在项目根目录建立 Jenkinsfile 文件,把内容复制到该文件中
编写好文件后,把代码推送到远程仓库 -
在 Jenkins 中引入该脚本文件



