问题
需要使用Jenkins搭建一套CI流,即通过git代码托管拉取代码,构建自定分支的代码,构建出jar,并进一步构建出docker镜像,并推送到docker私有库中。
准备
AWS云准备
这里假设已经在CodeCommit已经存在私有git代码仓库了。
创建IAM用户
设置用户名,如下图:
设置CodeCommit提交高级用户权限,如下图:
开启访问CodeCommit的Token
找到新建用户的安全凭证地方,开始新建SSH公有密钥,如下图:
上传公钥,如下图:
上传完成后,得到的SSH密钥ID就是我们的git用户名,如下图:
步骤
CodeCommit拉代码
输入项目名,选择多分支项目,如下图:
开始添加git源,如下图:
设置git源:
添加aws的codecommit的git访问用户设置,如下图:
遇到的问题,如下:
You’re using ‘Known hosts file’ strategy to verify ssh host keys, but your known_hosts file does not exist, please go to ‘Manage Jenkins’ -> ‘Security’ -> ‘Git Host Key Verification Configuration’ and configure host key verification.
在全局安全配置里面,设置先接收这个codecommit的主机域名,如下图:
等第一次拉git通过之后,我们在把这个配置改回Known hosts file
。
注意:在Jenkins运行的那台机器上面,得装好git,生成好公私钥文件。其实jenkins还是依赖本地git和公私钥文件。
设置需要检查的git分支,如下设置:
设置30分钟扫描一次,如下图:
总结
这里还遗留maven构建,SonarQube检查,docker构建,docker推送以及Argo CD部署到k8s的过程。算了有缘再写。
参考
- Using AWS CodeCommit with Jenkins
- Jenkins Multibranch Pipeline With Git Tutorial
- Git client