GitLab + Jenkins + Harbor 工具链快速落地指南( 四 )

假如日志不够和谐,那就,那就,,,debug 吧 。
4.2、网络配置前面 GitLab + Jenkins + Harbor 三个工具的配置文件里我们都设置了域名,如果是 kubeadm 直接部署的 k8s 集群,你可以直接将这些域名与 IP 的映射关系配置到 DNS 服务器里 。
如果没有 DNS 服务器,你也可以直接将域名与 IP 的映射关系配置到 /etc/hosts 以及 CoreDNS 的 ConfigMap kube-system/coredns 里让域名生效 。比如:

  1. 修改 /etc/hosts 文件,添加这条记录(记得替换成你自己的 IP):
    44.33.22.11 gitlab.example.com jenkins.example.com harbor.example.com
  2. 修改 CoreDNS 的配置,在 ConfigMap kube-system/coredns 中添加静态解析记录:
    1. 执行命令:kubectl edit cm coredns -n kube-system;
    2. 在 hosts(第20行左右) 部分添加和 /etc/hosts 一样的记录 。
这样 Jenkins 才能通过域名访问到 GitLab 。
4.3、验证工具链部署结果来,看下新部署的 GitLab、Jenkins、Harbor 是不是都能访问到 。
4.3.1、GitLab不出意外的话,你可以在自己的 PC 里配置 44.33.22.11 gitlab.example.com 静态域名解析记录,然后在浏览器里通过 http://gitlab.example.com:30080 访问到 GitLab:
GitLab + Jenkins + Harbor 工具链快速落地指南

文章插图
然后通过执行如下命令,你就能获得 GitLab 的初始 root 密码了:
【GitLab + Jenkins + Harbor 工具链快速落地指南】docker exec gitlab cat /etc/gitlab/initial_root_password | grep Password:拿到 root 密码后,你可以尝试用 root/YOUR_PASSWORD 来登录 GitLab 。因为后面我们需要用到 GitLab 的 token,所以这时候可以顺手创建一个 token:
GitLab + Jenkins + Harbor 工具链快速落地指南

文章插图
4.3.2、Jenkins在浏览器里通过 http://jenkins.example.com:32000 就可以访问到 Jenkins 了:
GitLab + Jenkins + Harbor 工具链快速落地指南

文章插图
Jenkins 的 admin 用户初始登录密码是 changeme,如果你仔细看了前面 dtm 使用的配置文件,可以发现这是在配置文件里指定的 。我们尝试用 admin/changeme 登录 Jenkins 检查功能是否正常,不过这时不需要在 Jenkins 上进行任何额外的操作 。
GitLab + Jenkins + Harbor 工具链快速落地指南

文章插图
4.3.3、Harbor我们可以通过 docker login harbor.example.com:80 命令来尝试登录 Harbor,也可以直接通过 http://harbor.example.com:30180 访问 Dashboard:
GitLab + Jenkins + Harbor 工具链快速落地指南

文章插图
Harbor 的 admin 用户初始登录密码是 Harbor12345,我们尝试用 admin/Harbor12345 登录 Harbor:
GitLab + Jenkins + Harbor 工具链快速落地指南

文章插图
4.4、流水线配置工具有了,下一步就是配置流水线了,咱继续准备第二个配置文件(config-pipeline.yaml):
---varFile: "" # If not empty, use the specified external variables config filetoolFile: "" # If not empty, use the specified external tools config filepluginDir: "" # If empty, use the default value: ~/.devstream/plugins, or use -d flag to specify a directorystate: # state config, backend can be local, s3 or k8s  backend: local  options:    stateFile: devstream-2.state---tools:- name: repo-scaffolding  instanceID: springboot  dependsOn: [ ]  options:    destinationRepo:      owner: root      repo: spring-demo      branch: master      repoType: gitlab      baseURL: http://gitlab.example.com:30080    sourceRepo:      owner:  devstream-io      repo: dtm-repo-scaffolding-java-springboot      repoType: github- name: jenkins-pipeline  instanceID: default  dependsOn: [repo-scaffolding.springboot]  options:    jenkins:      url: http://44.33.22.11:32000      user: admin      enableRestart: true    scm:      cloneURL: http://gitlab.example.com:30080/root/spring-demo      branch: master    pipeline:      jobName: test-job      jenkinsfilePath: https://raw.githubusercontent.com/devstream-io/dtm-jenkins-pipeline-example/main/springboot/Jenkinsfile      imageRepo:        url: http://harbor.example.com:80        user: admin

经验总结扩展阅读