Jenkins服务器搭建

Jenkins作为Boathouse流水线的底层工具,需要一台VM作为运行环境。本文档描述了如何配置一台Ubuntu 16.04 LTS的虚拟机作为Jenkins的运行环境。

登录虚拟机

使用ssh登录vm1

  1. ## 如果使用DevOps实验室环境,请使用实验室环境资源中提供的用户名
  2. ## 我们提供了2台VM,请自行决定2台VM的角色
  3. ssh <username>@<ip/hostname>

安装Docker和Docker-Compose工具

由于整个环境我们都使用容器的进行部署,所以需要在环境中先安装Docker以及docker-compose,执行以下shell命令安装。

  1. ## 更新包管理数据库
  2. sudo apt-get update
  3. ## 安装docker
  4. sudo apt install docker.io
  5. sudo usermod -a -G docker {你当前的登录用户名}
  6. ## 安装docker-compose
  7. ### docker-compose 官方安装地址(如果此地址安装不成功,请使用以下国内镜像地址)
  8. sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  9. ## docker-compose 国内镜像
  10. sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  11. sudo chmod +x /usr/local/bin/docker-compose
  12. ## 启动 docker 服务
  13. sudo systemctl daemon-reload
  14. sudo systemctl restart docker
  15. ## 设置 docker 用户权限
  16. sudo groupadd docker
  17. sudo gpasswd -a $USER docker
  18. newgrp docker

注意,如果运行sudo usermod -a -G docker ghuser 出错,请执行sudo apt-get remove unscd后再执行一次。

运行完以上命令重新登陆虚拟机,并执行以下命令,测试Docker是否安装成功

  1. # docker
  2. docker --version
  3. # docker-compose
  4. docker-compose --version

2. 搭建Jenkins

使用以下命令完成Jenkins的安装

  1. sudo mkdir ~/jenkins_home
  2. sudo chown -R 1000:1000 ~/jenkins_home
  3. sudo docker run -d -p 8080:8080 -p 50000:50000 --env JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true -v ~/jenkins_home:/var/jenkins_home -u 0 jenkins/jenkins:lts
  4. docker ps

如果在拉取Jenkins镜像过程中速度较慢,请联系支持团队获取国内镜像登录以及拉取命令

image.png

获取管理员账号密码

  1. sudo cat jenkins_home/secrets/initialAdminPassword

image.png

复制上面的输出结果

启动Jenkins网站

在浏览器中打开jenkins站点,粘贴上面的管理员密码,并点击 Continue 按钮 image.png

选择安装建议插件

image.png

注意,如果vm在国内,插件很有可能安装不上去,如果装不上去,请参考这个文档 ,步骤如下

  1. 1. sshjenkins所在的vm,执行 dockker ps,获取容器id
  2. 1. 进入容器:sudo docker exec -it [容器id] /bin/bash
  3. 1. 执行: bash -c "$(curl -fsSL https://gitee.com/hummerstudio/jenkins-update-center-changer/raw/master/jenkins-update-center-changer.sh)"
  4. 1. 进入插件中心: http://[jenkins url]/pluginManager/advanced, 点击最底部的 get
  5. 1. 重新进入插件初始化页面。
  6. 1. 如果无法打开插件初始化页面,可手动删除jenkins_home文件,重启容器,重复上面的步骤。

初始化管理员账号密码,都填写为admin即可,然后点击 Save and Continue

image.png

保持默认的URL设置

image.png

完成服务器搭建,启动Jenkins

image.png


Jenkins 配置

Jenkins流水线中的各个任务的运行需要跑在一台代理机上,因此我们需要给Jenkins添加构建节点。 在本示例中将使用本机同时作为 Jenkins VM 作为代理机。

代理机安装JDK

  1. sudo apt-get install openjdk-8-jdk
  2. java -version

image.png

安装Maven

  1. sudo apt install maven

代理机添加 vm帐号(当前登陆账号)至Sudoers

  1. 添加 ghuser 至sudo组:
    1. sudo usermod -aG sudo <当前用户用户名>
  2. 添加 ghuser 至sudoers文件:
    1. pkexec visudo #(或者是sudo vim /etc/sudoers)
    2. 在# /etc/sudoers文件最末尾添加下面代码:
    3. ghuser ALL=(ALL) NOPASSWD:ALL

代理机创建Jenkins工作目录, 并创建文件确保目录在非sudo下可写

  1. mkdir jenkins_workspace
  2. cd jenkins_workspace
  3. touch test
  4. ls

image.png

Jenkins添加构建节点

  1. 在jenkins管理界面进行节点管理,Manage Jenkins

image.png

  1. 点击 Manage Nodes

image.png

  1. 点击 New Node

image.png

  1. 按照下图输入代理名称并勾选Permanent Agent,然后点击 OK

image.png

  1. 在创建节点界面输入参数: | 参数名 | 参数值 | |—|—| | # of executors | 1 | | Remote root directory | /home/ghuser/jenkins_workspace | | Labels | vm-slave (此处很关键,后面JenkinFile流水线文件中会根据此label选取代理机) | | Launch method | Launch agents via SSH | | Host | vm-tools 虚拟机公网IP地址 | | Host Key Verification Strategy | Non verifying Verification Strategy |

  2. 创建链接到salve容器认证 image.png

  3. 在认证编辑界面输入参数: | 参数名 | 参数值 | |—|—| | Username | {vm-tools虚拟机用户名} | | Password | {vm-tools虚拟机密码} | | ID | vm-slave | | Description | vm-slave |

  4. 然后点击 Add image.png

  5. 返回节点编辑界面后,选择刚才新建的认证 image.png

  6. 完成节点编辑,点击Sava image.png

  7. 回到列表页面后启动节点 image.png

  8. 按照下图手动点击启动节点 image.png

  9. slave正常启动 image.png

  10. 回到节点列表 image.png

  11. 节点显示正常 image.png

Jenkins安装插件
  1. 打开Jenkins控制面板首页,在左侧菜单中选择 管理Jenkins ,进入管理页面后,点击 管理插件,安装插件: Cobertura、Kubernetes Continuous Deploy、SSH Pipeline、Blue Ocean image.png
  2. 进入插件页面, 选择项目的 可用 tab,并在上面搜索框中输入 cobertura 找到cobertura插件,选择安装 image.png
  3. 进入插件页面, 选择项目的 可用 tab,并在上面搜索框中输入 Kubernetes Continuous Deploy 找到k8s CD 插件,选择安装 image.png
  4. 进入插件页面, 选择项目的 可用 tab,并在上面搜索框中输入 SSH Pipeline 找到SSH Pipeline Steps插件,选择安装 image.png
  5. 进入插件页面, 选择项目的 可用 tab,并在上面搜索框中输入 Blue Ocean 找到blueocean插件,选择安装 image.png
  1. 请确保所有插件安装成功,如有失败情况,需要卸载插件重新安装,如下图失败示例:

image.png

  1. 重启Jenkins服务器

打开重启界面,http://ip:8080/restart 点击是,如下图所示:

image.png

重启中,如下图所示:

image.png

至此,团队环境中的Jenkins设置完毕。