跳转至

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

风险

由于jenkins部署在物理机或虚拟机中,集成之后会有一些基于k8s的功能可能无法使用。 - 由于应用工作台将流水线放在WorkspaceID同名的文件夹下,这会导致已经存在的流水线无法被发现和展示在工作台的界面中 - 所有基于casc的配置都会失效,包括:SonarQube集成,全局邮件配置 - 如果Jenkins不是使用KubernetesCloud运行,那么相关的语法会失效,需要手动调整Jenkinsfile

必要的插件

下面的插件安装时会自动安装依赖的插件: - Folders Plugin - Pipeline: REST API Plugin - Pipeline: Declarative - Pipeline: Declarative Extension Points API - Pipeline: Model API - Git - Blue Ocean - Generic Webhook Trigger - Sonar(SonarQube Scanner for Jenkins) - generic-event

可选择安装的插件

  • 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。(但这是不安全的,这个服务不适合直接暴露出去)

把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

评论