828华为云征文 | 云端代码管理新体验,华为云Flexus X实例上GitLab部署与使用的实战指南

前言

华为云Flexus X云服务器携手GitLab,为开发者和企业带来了云端部署的全新选择。Flexus X实例以其灵活高效的柔性算力,结合GitLab强大的版本控制、CI/CD等功能,为企业打造高效、安全的研发环境。正值828华为云企业上云节,我们一同体验这一强强联合的云端解决方案。Flexus X的高性价比与GitLab的先进项目管理工具,将助您实现快速上云、高效开发,推动企业数字化进程加速前行。

链接直达华为云Flexus云服务器X实例

在这里插入图片描述

gitlab介绍

GitLab 是一个开源的一体化 DevOps 平台,具有代码托管、代码审查、持续集成与持续部署(CI/CD)、问题跟踪、Wiki 和文档管理以及安全与权限管理等功能。它提供安全可靠的代码存储仓库,支持强大的分支管理和标签功能;允许团队成员进行代码审查和评论,跟踪代码变更历史;内置 CI/CD 工具,可定义各种任务阶段;用于记录和跟踪问题、缺陷和任务,并支持分配、设置优先级和截止日期等;允许创建和维护项目文档和 Wiki 页面;提供细粒度的权限控制和多种身份验证方式,还具有安全审计功能。总之,GitLab 能帮助团队提高代码质量,实现高效的协作和项目管理。

官方网站:https://about.gitlab.com/

在这里插入图片描述

环境规划

操作系统gitgitlabdockerdocker-compose连接方式
Huawei Cloud EulerOS 2.02.33.0gitlab/gitlab-ce27.1.12.29.1本地shell

部署流程

拉取镜像

[root@flexusx-251f ~]# docker pull gitlab/gitlab-ce
Using default tag: latest
latest: Pulling from gitlab/gitlab-ce
857cc8cb19c0: Pull complete
2abc51628ee2: Pull complete
a098af47633d: Pull complete
79eb1bbe5e7f: Pull complete
45c3937be5ff: Pull complete
052407fbe787: Pull complete
a57c8c923e60: Pull complete
65ef322a34d3: Pull complete
807b20aca09b: Pull complete
Digest: sha256:9e0d464e7c5fc03e29af190802708fd9270136ef0c423dba8ee7ad1f8480ea48
Status: Downloaded newer image for gitlab/gitlab-ce:latest
docker.io/gitlab/gitlab-ce:latest

创建容器

3001做管理页面端口,3002做ssh端口,拉去项目代码使用

[root@flexusx-251f ~]# mkdir -p /gitlab/etc
[root@flexusx-251f ~]# mkdir -p /gitlab/opt
[root@flexusx-251f ~]# mkdir -p /gitlab/log
[root@flexusx-251f ~]# docker run -itd \
> -p 3001:80 \
> -p 3002:22 \
> -v /gitlab/etc:/etc/gitlab  \
> -v /gitlab/log:/var/log/gitlab \
> -v /gitlab/opt:/var/opt/gitlab \
> --restart always \
>  --privileged=true \
>  --name gitlab \
>  gitlab/gitlab-ce:latest
ad00474916beb674b2bd3da2e29018d739247252bd5f1612d94c711a4729f5a1

查看容器运行状态

[root@flexusx-251f ~]# docker ps | grep git
ad00474916be   gitlab/gitlab-ce:latest   "/assets/wrapper"        7 seconds ago   Up 6 seconds (health: starting)   443/tcp, 0.0.0.0:3002->22/tcp, :::3002->22/tcp, 0.0.0.0:3001->80/tcp, :::3001->80/tcp   gitlab

修改配置文件

docker安装gitlab,创建项目时,默认项目URL访问地址显示的是容器主机地址(容器id),所以我们需要修改为一个固定可以外部访问的地址及宿主机地址,这样才可以进行pull/push代码

[root@flexusx-251f ~]# vim /gitlab/etc/gitlab.rb
# 大概在32行,取消external_url注释,地址为宿主机地址,不需要设置端口
32 # external_url 'GENERATED_EXTERNAL_URL'
33 external_url 'http://123.249.27.118'

# 大概在69行,修改为ssh主机ip
67 # gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'
68 gitlab_rails['gitlab_ssh_host'] = '123.249.27.118'

# 大概在700行,修改ssh连接端口
 700 # gitlab_rails['gitlab_shell_ssh_port'] = 22
 701 gitlab_rails['gitlab_shell_ssh_port'] = 3002
 
 # 重新启动容器
[root@flexusx-251f ~]# docker restart gitlab

测试访问

配置安全组,放行端口号:3001,3002

在这里插入图片描述

浏览器地址栏输入:http://主机IP:3001

在这里插入图片描述

查看root密码

用户名root用户进行登录

# 查看root密码
[root@flexusx-251f ~]# docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Password: d8CuKk5ULxD8sVPS8dT8Z3C5/rGEXDsQNkMiJAoK2C8=

也可以进行root密码修改再进行登录

[root@flexusx-251f ~]# docker exec -it gitlab /bin/bash

root@ad00474916be:/# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 3.1.5p253 (2024-04-023 revision 1945f8dc0e) [x86_64-linux]
 GitLab:       17.3.2 (951fd632abf) FOSS
 GitLab Shell: 14.38.0
 PostgreSQL:   14.11
------------------------------------------------------------[ booted in 21.74s ]
Loading production environment (Rails 7.0.8.4)
irb(main):001:0> user = User.where(id:1).first
=> #<User id:1 @root>
irb(main):002:0> user.password='abc123456'
=> "abc123456"
irb(main):003:0> user.save!

输入用户名和密码进行登录

在这里插入图片描述

登录成功

在这里插入图片描述

基本使用

注册账号

输入姓名,用户名密码等信息,点击注册

在这里插入图片描述

root账户进行授权

在这里插入图片描述

在这里插入图片描述

进行登录

在这里插入图片描述

登陆成功

在这里插入图片描述

配置关闭注册账号功能

  • gitlab默认是开放注册账号功能的,在企业里面使用是不允许的,用户的账号是通过管理员创建出来的
  • 进入配置页面,取消勾选 sign-up enabled

在这里插入图片描述

创建项目

点击左侧导航栏 projects,点击 create a project

在这里插入图片描述

点击 create blank project,创建一个空项目

在这里插入图片描述

自定义项目名称(project name),选择组或者命名空间,能见度生产环境一般为私有的,我们在这也选择 private,之后点击 create project

在这里插入图片描述

创建项目成功

在这里插入图片描述

创建用户

点击左下角设置admin,选择 new user

在这里插入图片描述

输入用户名、邮箱信息

在这里插入图片描述

创建成功,点击 edit进行编辑设置密码

在这里插入图片描述

输入完成,点击 save changes

在这里插入图片描述

邀请用户

将用户加入到项目中来,进入项目,点击左侧导航栏 Manage,点击二级菜单 Members,之后点击右上角 invite members

在这里插入图片描述

选择用户,选择角色,并设置过期时间,之后点击 invite

在这里插入图片描述

添加成功

在这里插入图片描述

wangwu用户登录进行测试,首次登入需要修改密码

在这里插入图片描述

在该用户可以看到之前创建的项目,已经有了对应的权限

拉取项目

配置git

在华为云实例上安装git

[root@flexusx-251f ~]# yum install -y git

git客户端要连接仓库,就要先生成ssh key,ssh key有公钥和私钥,生成后把公钥填到git站点上,现在生成ssh key

设置用户名

  • admin01为自己的用户名,可以随便填,注意提交记录的时候会显示这个用户名
[root@flexusx-251f ~]# git config --global user.name 'admin01'

设置邮箱

  • 这个邮箱也是可以随便填,一般填员公在公司的邮箱
[root@flexusx-251f ~]# git config --global user.email 'admin01@qq.com'

生成 ssh key

  • 输入命令之后,一直默认回车即可
[root@flexusx-251f ~]# ssh-keygen -t rsa -C "admin01@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:dYROjGaOek4RJcFLmlau+NkmX9MXe7wDUh4QQk2GP1M admin01@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|     .o++*+o.    |
|      =.=o*.E    |
|     * B +.o.    |
|    + = ..=.o    |
|   o o .S  =..   |
|  . o o  .. o+   |
|   . *  o ..o.o  |
|    + +. . . ... |
|     +.       .. |
+----[SHA256]-----+

[root@flexusx-251f ~]# cd /root/.ssh/
[root@flexusx-251f .ssh]# ls
authorized_keys  id_ed25519  id_ed25519.pub  id_rsa  id_rsa.pub

把生成的公钥填写在gitlabwangwu用户中

在这里插入图片描述

查看公钥并写入key

[root@flexusx-251f .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHHXiSuHbfab8EzQ0B6zTOPNPF5HyISXh8Ldl5u5mNAx17M9ib7C36EHFxNtYnVSNbnn2cIeP6hOXXfNhDmGgg9PGHzAzuXj8rOBegEeY9F1Lg2NF1zbnnmiwzKmgkBukicQuQlqcn1m3L6pA4V9eIj7WDrUt2sHjyhaPLb3AktxYR44PvN2aaOmAZQhv858gePGFJnbmYVVK6nIDa+xEm/kas/wIQoSvYQfeyPTWpCB6M1y6lqpkmdBciv57PYBd9s2vJD/Guf77BSNHM2dFNt/IB/P+bo2pu/r0qoRyb7HtIfM4igUlYuu+G5Q8LshemnSd5kCm9SOKaJJ99ovabwyWSA5PjGFr5guDMRx7UA/+4NKboMjlKbIrhRkkcaINp9UK97s7LBZWs/a+A9GExz9EWtyIIXpzyEquLov1T1LlmYTsaip/c7bIalkfn4Q6sxNk3hSsnujYlS5Q5nAkv06AO9Hu2SNHyLiSGcmWg9yYZOsOHZz/8MCVFIx0Wc2s= admin01@qq.com

在这里插入图片描述

克隆项目

找到项目的ssh地址,也可以通过http地址

在这里插入图片描述

创建文件夹并拉取文件

[root@flexusx-251f ~]# mkdir code
[root@flexusx-251f ~]# cd code/
[root@flexusx-251f code]# git clone ssh://git@123.249.27.118:3002/root/my_java_project01.git
Cloning into 'my_java_project01'...
The authenticity of host '[123.249.27.118]:3002 ([123.249.27.118]:3002)' can't be established.
ED25519 key fingerprint is SHA256:L0vK441j2nwCcNuZegnkiAcWe2TIjjGLJrLOE7GzAEQ.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[123.249.27.118]:3002' (ED25519) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (3/3), done.

# 克隆成功
[root@flexusx-251f code]# ls
my_java_project01
提交文件

创建一个新文件,并写内容

[root@flexusx-251f code]# cd my_java_project01/
[root@flexusx-251f my_java_project01]# ls
README.md
[root@flexusx-251f my_java_project01]# echo 11111  > 1.txt
[root@flexusx-251f my_java_project01]# cat 1.txt
11111

将文件添加到暂存区

[root@flexusx-251f my_java_project01]# git add *
[root@flexusx-251f my_java_project01]# git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   1.txt

提交文件到本地仓库

[root@flexusx-251f my_java_project01]# git commit -m '提交一个文档'
[main 6512959] 提交一个文档
 1 file changed, 1 insertion(+)
 create mode 100644 1.txt

通过root用户,修改wangwu用户角色,因为开发人员不可进行提交,只能查看master分支

在这里插入图片描述

推送代码到项目

[root@flexusx-251f my_java_project01]# git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 290 bytes | 290.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To ssh://123.249.27.118:3002/root/my_java_project01.git
   42ac110..6512959  main -> main

这里把本地仓库同步到远程仓库,到远程仓库看一下就能看到提交记录了

在这里插入图片描述

体验和感受

在追求高效协作与持续创新的数字化时代,GitLab作为领先DevOps平台,为企业提供了从代码托管到CI/CD的一站式解决方案。而今,华为云Flexus X服务器的出现,更是为GitLab的云端部署开启了新篇章。

华为云Flexus X实例以其卓越的算力性能、灵活的扩展能力和稳定可靠的服务质量,成为了GitLab云端部署的理想选择。它不仅支持高并发访问,确保团队协作的流畅无阻,还通过智能的资源调度,帮助企业优化成本结构,实现资源的最大化利用

在828华为云企业上云节这个节日里,让我们一起走进云端世界,Flexus X实例的高可用性和GitLab的丰富功能相互补充,将为团队带来前所未有的开发效率和协作体验。点击下方链接,立即行动,享受专属优惠,让Flexus X与GitLab携手助力您的企业数字化转型之路,这一完美结合将引领您走向更加辉煌的未来!

产品链接华为云Flexus云服务器X实例_直播_建站服务器-华为云

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cloud Traveler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值