如何在gcp上搭建一个jenkins?
sorry,我也想知道。哈哈哈,上当了吧,不能全是干货的好吧。
华丽丽的分割线===============================================
具体内容会更新到github上,稍后上传github地址。敬请期待……
如何部署一个jenkins?production级的,如何把jenkins部署在k8s内?今天就要解决这两个问题:
如何部署一个production级别的jenkins?
如何部署jenkins到gcp上?涉及到如果在gcp上部署一个service以及如何在jenkins上引入gke上的pod作为node
先说这个,上面的是基础,这个有现成的案例:
两方面,首先在gcp上创建kubernetes,这个kubernetes是生成了一个cloudbees(商业版的jenkins)的service然后在jenkins里配置引用gcp上的镜像作为pod template。可能需要在jenkins上安装插件。
k8s上部署cloudbees的过程:先创建一个cluster,然后创建service,之前要推进一堆的镜像维护在gcr上(gcp的container registry)。这些全部都是通过terraform创建的,terraform是干啥的?他篇介绍terraform的具体用法。terraform中最重要的是通过命令执行一个yaml
还有一个前提,gcp的登录credential配置:
搭建cli环境(SDK)并使用teraform操作:
1.安装google sdk:https://cloud.google.com/sdk/docs/downloads-yum,直接yum安装未必能安装成功,要么网络问题要么没有那个包,需要按照文档内配置一个yum的源
2.配置credential:采用service account(IAM下的service account可以找到,选中或者新增一个,每创建一个就会自动下载一个private key的json文件)的方式进行授权。具体方法:
命令:gcloud auth activate-service-account --key-file xxx.json即可;
或者配置个变量然后……
export GOOGLE_PROJECT=g-dso-ksc-cloudbees
export GOOGLE_CREDENTIALS=account.json
还要配置project
通过terraform操作gcp,在gke上创建cloudbees服务。的过程:
1.先配置backend的路径用于存储生成的状态文件,即state的存储路径,语法如下:
terraform {
backend "gcs" {
bucket = "xxxxx"
prefix = "xxx/区域/路径一/dev/xxxxx"
region = "xxxx"
}
}
2.创建一个google的service account,这个类似于一个user,用来操作这个service的user。
2.创建cluster。
3.创建service。