持续集成环境搭建

2023年 9月 30日 70.7k 0

本节我们将一起来搭建持续集成(CI)的基本环境,涉及到代码仓库gitlab的搭建和jenkins的安装与设置。因为之前我们为centos搭建好了docker环境(包括docker-compose工具的安装,参考docker安装与设置 - 掘金 (juejin.cn)),在此基础上搭建CI环境将变得非常简单。开干!

搭建gitlab

执行步骤:

  • 查看GitLab镜像

    docker search gitlab
    
  • 拉取GitLab镜像

    docker pull gitlab/gitlab-ce
    

    这里我们拉取的是最新版的,实则为14.6.1版。

  • 准备docker-compose.yml文件

    路径位于/usr/local/docker/devops/gitlab

    version: '3.1'
    services:
      gitlab:
        image: 'gitlab/gitlab-ce:latest'
        container_name: gitlab
        restart: always
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'http://192.168.0.114:8929'
            gitlab_rails['gitlab_shell_ssh_port'] = 2224
        ports:
          - '8929:8929'
          - '2224:22'
        volumes:
          - './config:/etc/gitlab'
          - './logs:/var/log/gitlab'
          - './data:/var/opt/gitlab'
    
  • 启动容器(需要稍等一小会……)

    docker-compose up -d
    
  • 访问地址:http://192.168.0.114:8929

  • 查看root用户初始密码

    docker exec -it gitlab cat /etc/gitlab/initial_root_password
    

登陆进来后,修改root密码,在右上角点Preferences -> User Settings | Password

输入之前的原密码,新密码改为12345678,重新登陆root/12345678

搭建Jenkins

安装

在机器dev-1上安装,步骤如下:

  • 先拉取image:

    docker pull jenkins/jenkins:2.414.1-lts
    
  • 在路径/usr/local/docker/jenkins下新建docker-compose.yml

    新建一个data目录:

    chmod -R a+w data/
    

    docker-compose.yml

    version: "3.1"
    services:
      jenkins:
        image: jenkins/jenkins:2.414.1-lts
        container_name: jenkins
        restart: always
        ports:
          - 8080:8080
          - 50000:50000
        volumes:
          - ./data/:/var/jenkins_home/
    
  • 启动

    docker-compose up -d
    
  • 访问页面

    http://192.168.0.113:8080

    输入查看的密码:

    docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
    

    先停掉容器,重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站

    # 修改数据卷中的hudson.model.UpdateCenter.xml文件
    
    
      
        default
        https://updates.jenkins.io/update-center.json
      
    
    # 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
    
    
      
        default
        http://mirror.esuni.jp/jenkins/updates/update-center.json
      
    
    # 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    
  • 进入页面,安装推荐的插件

  • 设置第一个管理员账号

    都是root,邮箱root@root.root

    image.png

  • 使用默认的实例

    http://192.168.0.113:8080/

  • 开始使用

    进入jenkins页面

  • 下载必要的插件

    image.png

    下载Git Parameter、Publish over ssh

    安装完成后重启Jenkins即可。

基本配置

设置全局环境变量

我们将在容器内添加java和gradle的环境变量

docker-compose.yml

version: "3.1"
services:
  jenkins:
    image: jenkins/jenkins:2.414.1-lts
    container_name: jenkins
    restart: always
    environment:
      JAVA_HOME: /var/jenkins_home/jdk8
      GRADLE_USER_HOME: /var/jenkins_home/.gradle
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - ./data/:/var/jenkins_home/

把jdk-8u291-linux-x64.tar.gz丢到data下,路径为:/usr/local/docker/jenkins/data/jdk-8u291-linux-x64.tar.gz,解压并改名:

tar -zxvf jdk-8u291-linux-x64.tar.gz
# 改名
mv jdk1.8.0_291/ jdk8/

把gradle7.tar.gz丢到data下,解压并改名为gradle7。

再创建一个.gradle目录

mkdir .gradle
chmod -R a+w .gradle/

把两个全局配置文件丢到.gradle目录下:

gradle.properties

# 设置gradle工作时使用的jvm最大堆内存
org.gradle.jvmargs=-Xmx1024M
# 可选配置:all,none,summary,用来设置gradle构建时控制台输出警告信息的模式,all为打印所有警告信息,summary为只打印概要信息,none为不输出警告信息,因为警告并不影响gradle构建成功,因此这里我们把它屏蔽掉。
org.gradle.warning.mode=none

init.gradle

allprojects {
    repositories {
		mavenLocal()
	    maven{ url 'https://maven.aliyun.com/repository/public'}
		maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
		maven{ url 'https://maven.aliyun.com/repository/spring'}
		maven{ url 'https://maven.aliyun.com/repository/spring-plugin'}
    }
}

部署的结构如下图:

image.png

重启下Jenkins:

docker-compose restart

配置JDK

进入系统管理、全局配置

image.png

配置gradle

image.png

配置连接服务器

系统管理 -> 系统配置

拉到最下面,新增服务器:

image.png

高级中设置密码:

image.png

最后点测试配置,success则ok

最后点Save按钮。

找回管理员密码

Jenkins在首次安装时会分配一个密码串,当初始化完成了,密码文件会被删除,如果没有及时修改密码,就找不回来了,下面说下解决办法。

备份配置文件,删除默认的认证设置:

image.png

重启jenkins服务

docker-compose restart

再次登录Jenkins页面的时候,发现已经不需要登录了,可以直接进入页面,并且是管理员权限。

先做如下设置:

image.png

再进入root用户的设置中,

image.png

image.png

设计密码为好记的12345678,保存。

最后恢复config.xml文件内容,并重启Jenkins服务,重新用root/12345678登录即可。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论