推出 Blue Ocean 之后,Jenkins 似乎沉默了很久,终于在 3.21 发布了名为Jenkins X
的项目,这一项目对开发人员和云端的 CI/CD 环境之间的交互过程进行了审视和反思,结合自动化、工具链以及 DevOps 最佳实践。为开发团队提供了新的生产效率增长点。
Jenkins X 解决的不仅仅是安装问题,其中还带有在云原生应用 CI/CD 平台方面的最佳实践。
新的命令行工具jx
,支持 OSX、Linux 平台,用接近 50 个命令,为用户提供了从集群安装、环境管理一直到应用发布的整个大环节的支持。甚至还贴心的提供了支持 Bash 以及 zsh 的自动完成能力。
列举几个有意思的命令:
jx create cluster
:创建 Kubernetes 集群。jx install
:在 Kubernetes 上安装 Jenkins X。jx create spring
:创建 Spring boot 应用。jx promote
:将应用的制定版本升级到某环境。包括 Maven、Docker Registry、Monocular、CharMuseum 等工具的直接整合,并且内置了众多插件,各个服务之间的调用关系也已经设置完毕。常用的 Slave 构建、Mvn 构建、Git WebHook 等功能都会根据要求自动完成。
Jenkins X 将 Git 仓库、Kubernetes 命名空间、升级策略等内容结合在一起,成为了一个环境的定义,并且同 Github flow 结合在一起,让工作流程和环境切换有机结合,在工具链整合之外,又提供了工作流整合的完善支持。
例如 JX 的预览功能,在收到 Pull Request 时候,会根据这一请求构建镜像,并发布到用于预览的命名空间,同时还会在这一 Request 中注明预览环境就绪等待测试。
http://jenkins-x.io/getting-started/install/
提供了几种系统下的安装说明:
brew tap jenkins-x/jx && brew tap jenkins-x/jx
curl -L https://github.com/jenkins-x/jx/releases/download/v1.1.10/jx-darwin-amd64.tar.gz | tar xzv && mv jx /usr/local/bin
jx create cluster
支持多种公有云的创建。
配置好集群和对应的 kubeconfig 访问之后,就可以使用jx install
进行安装了。
过程中几个需要注意的点:
watch kubectl get pods -n jx
查看进程状况。JX 会为用户建立三个环境分别是,Dev、Staging 以及 Production。
运行命令jx console
,会打开浏览器进入 Jenkins 登录页面。
登录之后我们会看到正在进行构建,如果是一个排队状态,可能是因为正在创建 Worker Pod,可以使用kubectl
查询具体情况。
构建完成,会看到这一示例中包含了拉取、构建、Helm、环境等几个步骤,可以作为工作的基础环节来进行使用。
接下来就可以做几个善后工作
jx get addons
查看支持的插件列表,进行安装。import
或者create spring
/create quickstart
,进行项目工作。最后要注意的一点是,Jenkins X 目前的升级频率非常高。不建议生产使用。