chinazjK零SK壹S
- 已编辑
前几天在用kubesphere的devops时,发现可以非常的方便使用官方的agent。如下
pipeline {
agent {
node {
label 'go'
}
}
}
在上面直接使用label就可以调用agent。但是官方的agent大多时候并不适合真实生产环境。
1. 创建镜像
预先准备好生产环境的虚拟机(包含必要的运行库,java1.8以上和sonar客户端)。在虚拟机中打包好文件。
tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .
2. 导入镜像
由于我没有创建镜像仓库,就直接将镜像导入到本机中
cat system.tar | docker import - centos:7.1
下面分别提供kubesphere加载agent和jenkins加载agent的两种方法
3.1 在jenkins页面上配置agent
- 进入jenkins 页面(http://***:30180/)
- 选择Manage Jenkins -> Configure System 在系统设置的最后面配置上自己想要的agent。下图是官方配置
注意:在我构建的镜像中/etc/profile 不起作用,所以我在配置agent的时候添加了环境变量。
3.2 在kubepshere设置jenkins的配置agent
在配置好agent之后,jenkins突然挂掉了。这样服务重启之后每次都需要重新配置。为此我们需要一劳永逸。
- 打开jenkins容器,选择casc配置文件。
- 修改配置并保存。
官方go的配置
- 在jenkins 页面上重新加载配置,Manage Jenkins -> Configuration as Code。
- 如果发生错误(非语法问题),请在jenkins容器中检查配置文件是否已更新。
cat /var/jenkins_home/casc_configs/jenkins.yaml
4. 在安装部署的时候使用自定义agent
- 修改源代码
ks-installer/roles/ks-devops/jenkins/templates/jenkins-casc-config.yml.j2
- 在ks-installer容器中修改
如果是用kubectl删除jenkins容器。即使在ks-installer容器中修改,也无法生效。ks-installer容器修改支持尚未使用devops功能。
在如下文件中修改vi /etc/kubesphere/jenkins/jenkins-casc-config.yml