Skip to content

Jenkins安装及使用

使用docker-compose创建应用

我们选择下载 jenkinsci/blueocean(这个是jenkins集成blueocean的插件,可视化流⽔线)

创建jenkins目录

bash
mkdir /software/docker/jenkins

创建docker-compose.yml文件

yaml
version: '3'
services:
  jenkins-blueocean:
    image: jenkinsci/blueocean
    restart: unless-stopped
    user: root
    environment:
      TZ: Asia/Shanghai
    ports:
      - '8080:8080'
    volumes:
      - './data:/var/jenkins_home'
      - '/var/run/docker.sock:/var/run/docker.sock'
      - '$HOME:/home'

运行docker-compose

bash
docker-compose up

注:-v /var/run/docker.sock:/var/run/docker.sock 或让jenkins使用宿主机的docker,docker也是jenkins默认的agent

运行成功后,我们就可以通过8080端口来访问到Jenkins了

开始使用Jenkins

这个密码 运⾏查看jenkins容器的⽇志,拉到最后可以看到

耐⼼的等待安装完成

创建第⼀个管理员⽤户

设置好地址并重启,刷新页面后进入到登录页面

使用刚才设置的管理员密码登录到首页

jenkins的⼊⻔教程必须要花时间先看⼀下,主要了解⼀下任务,声明式和脚本式的两种流⽔线写法,流⽔线步骤

必要插件和前期准备

为了让我们的工作流能能够正常的跑起来,我们需要给jenkins安装些必要的插件和配置

先来升级下我们的插件

先别重启,切换到可选插件tab安装些其他的插件

Build Timestamp

这个插件可以让我们在流水线中使用BUILD_TIMESTAMP这个环境变量,并且我们可以配置它的格式。安装好后,我们去配置下

点击 系统管理 -> 系统配置 找到Build Timestamp部分

我们可以对时间的格式进行设置,比如我们想要的格式20210826,同时也可以增加一些其他的变量来获得一些其他格式的时间。修改完后记得点保存

Docker

让流水线具备使用docker命令的能力

SSH Pipeline Steps

为Jenkins 流水线步骤提供 SSH配套工具,例如用于持续交付的命令执行或文件传输。详见

Multibranch Scan Webhook Trigger

用于我们在创建多分支流水线任务时作为webhook触发器使用

好了,再安装好以上插件后让我们来重启下jenkins

在访问地址后加上restart点击是即可重启jenkins,如过没有自动刷新请手动刷新页面

开始我们的第一个任务

创建一对公私钥

为了能够让jenkins能够拉取到git仓库(我们使用的码云)的代码,我们需要创建一对公私钥,将私钥上传至jenkins的凭据中,公钥上传至码云的ssh公钥中

bash
ssh-keygen -t rsa -f jenkins-gitee -C "evanyung@zkjg.com"

passphrase可以设置为空,执行完后会看到生成的公私钥

下面我们将私钥上传到jenkins的凭据中

点击 系统管理 -> Manage Credentials

点击添加凭据,选择SSH Username with private key

ID、描述、username可以随意填写,将之前生成的私钥里的内容复制到key里面,passphrase没设置可以不填,点击确定生成凭据

接下来我们要将之前生成的公钥给配置到码云上,这样jenkins才能拉取到码云上的分支

配好之后就可以开始我们的第一个任务了

新建一个任务

点击新建任务 -> 输入任务名称 -> 选择”多分支流水线“ -> 点击确定

接下来点击分支源选择git,将码云仓库的ssh地址复制过来,凭据选择我们刚才创建的ssh凭据

然后我们需要添加一些策略,让jenkins选择扫描哪些分支

我们在这里选择只让jenkins扫描release和master分支

再下一步,来添加webhook,让码云主动告知jenkins该工作了

勾选Scan by webhook,trigger token为触发地址的token可以随意填(注意不要和别的任务冲突),webhook触发地址就为 JENKINS_URL/multibranch-webhook-trigger/invoke?token=[Trigger token]

JENKINS_URL为jenkins的访问地址 [Trigger token]为我们刚才填写的token

点击保存,这时候就能看到jenkins在扫描码云仓库上的分支了

下面我们在码云上配置下webhook吧

进入到码云仓库 -> 管理 -> WebHooks -> 添加 WebHook

配置我们的webhook地址点击添加

到这里整个创建任务算结束了,如果项目根目录中有Jenkinsfile文件的话,jenkins会执行文件中的流水线,打开 Blue Ocean就能可视化的看到整个流水线的过程