跳转至

在物理机/虚拟机上集成 Jenkins

风险

由于 Jenkins 部署在物理机或虚拟机中,集成之后会有一些基于 K8s 的功能可能无法使用。

  • 由于应用工作台将流水线放在 WorkspaceID 同名的文件夹下,这会导致已经存在的流水线无法被发现和展示在工作台的界面中
  • 所有基于 casc 的配置都会失效,包括 SonarQube 集成、全局邮件配置
  • 如果 Jenkins 不是使用 KubernetesCloud 运行,那么相关的语法会失效,需要手动调整 Jenkinsfile

插件

必需的插件

安装 Jenkins 时会自动安装以下依赖的插件:

可选的插件

  • Kubernetes 插件:如果希望流水线运行在 K8s 集群上,则需要安装此插件
  • Docker 插件:如果希望流水线以容器的形式与物理机隔离运行,则需要安装此插件
  • Chinese 插件:这是中文社区提供的汉化插件

配置节点

有关物理机节点的准备工作,请参阅 Using Jenkins agents

Jenkins 配置

EventDispatcher

首先确保 generic-event 插件正常安装并且已经启用。
查看 amamba-devops-server:

# 获取 amamba-devops-server 的 svc
kubectl get svc amamba-devops-server -n amamba-system

NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)            AGE
amamba-devops-server   ClusterIP   10.233.45.104   <none>        80/TCP,15090/TCP   230d

要确保 Jenkins 可以正常和 amamba-devops-server 通信,通过 NodePort 或 LB 暴露出来,然后 host 填对应 IP。

Note

此操作不太安全,这个服务不适合直接暴露出去。

将 amamba-devops-server 的地址填入到 Jenkins 系统管理配置的 Event Receiver 输入框中,可参考以下格式。

http://<hostIP:Port>/apis/internel.amamba.io/devops/pipeline/v1alpha1/webhooks/jenkins

SonarQube

有关 Sonarqube 的配置信息,参阅 Jenkins 接入 Sonarqube

邮件配置

获取 Ghippo 的邮件配置。

kubectl get ghippoconfig smtp -n ghippo-system -o yaml

下面是一个简单的样例:

apiVersion: ghippo.io/v1alpha1
kind: GhippoConfig
metadata:
  labels:
    k8slens-edit-resource-version: v1alpha1
  name: smtp
spec:
  from: test@163.com
  host: smtp.163.com
  password: test
  port: 25
  ssl: false
  starttls: false
  user: test@163.com

在 Jenkins 里配置邮件服务。
进入系统管理系统配置,输入管理员邮件地址 test@163.com,设置 SMTP 邮件服务器 smtp.163.com, 选择 SMTP 认证填入用户名和密码,设置 SMTP 端口,进入用户设置页面,设置邮件地址 test@163.com

评论