前言****
华为云 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/
环境规划****
部署流程****
拉取镜像****
[root@flexusx-251f~]# docker pull gitlab/gitlab-ce
Usingdefault 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|grepgit
ad00474916begitlab/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'
33external_url 'http://123.249.27.118'
# 大概在 69 行,修改为 ssh 主机 ip
67 # gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'
68gitlab_rails['gitlab_ssh_host']= '123.249.27.118'
# 大概在 700 行,修改 ssh 连接端口
700 # gitlab_rails['gitlab_shell_ssh_port'] = 22
701gitlab_rails['gitlab_shell_ssh_port']= 3002
创建项目****
点击左侧导航栏 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 -ygit
git 客户端要连接仓库,就要先生成 ssh key,ssh key 有公钥和私钥,生成后把公钥填到 git 站点上,现在生成 ssh key
设置用户名
•admin01 为自己的用户名,可以随便填,注意提交记录的时候会显示这个用户名
[root@flexusx-251f~]# git config --globaluser.name 'admin01'
设置邮箱
•这个邮箱也是可以随便填,一般填员公在公司的邮箱
[root@flexusx-251f~]# git config --globaluser.email 'admin01@qq.com'
生成 ssh key
•输入命令之后,一直默认回车即可
[root@flexusx-251f~]# ssh-keygen -trsa -C"admin01@qq.com"
Generatingpublic/private rsa key pair.
Enterfile in which to save the key(/root/.ssh/id_rsa):
Enterpassphrase(emptyfor no passphrase):
Entersame passphrase again:
Youridentification has been saved in /root/.ssh/id_rsa
Yourpublic key has been saved in /root/.ssh/id_rsa.pub
Thekey fingerprint is:
SHA256:dYROjGaOek4RJcFLmlau+NkmX9MXe7wDUh4QQk2GP1Madmin01@qq.com
Thekey'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
把生成的公钥填写在 gitlab 的 wangwu 用户中
查看公钥并写入 key 中
[root@flexusx-251f.ssh]# cat id_rsa.pub
ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABgQDHHXiSuHbfab8EzQ0B6zTOPNPF5HyISXh8Ldl5u5mNAx17M9ib7C36EHFxNtYnVSNbnn2cIeP6hOXXfNhDmGgg9PGHzAzuXj8rOBegEeY9F1Lg2NF1zbnnmiwzKmgkBukicQuQlqcn1m3L6pA4V9eIj7WDrUt2sHjyhaPLb3AktxYR44PvN2aaOmAZQhv858gePGFJnbmYVVK6nIDa+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-251fcode]# git clone ssh://git@123.249.27.118:3002/root/my_java_project01.git
Cloninginto 'my_java_project01'...
Theauthenticity 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-251fcode]# cd my_java_project01/
[root@flexusx-251fmy_java_project01]# ls
README.md
[root@flexusx-251fmy_java_project01]# echo 11111 >1.txt
[root@flexusx-251fmy_java_project01]# cat 1.txt
11111
将文件添加到暂存区
[root@flexusx-251fmy_java_project01]# git add *
[root@flexusx-251fmy_java_project01]# git status
Onbranch main
Yourbranch is up to date with 'origin/main'.
Changesto be committed:
(use"git restore --staged ..."to unstage)
newfile: 1.txt
提交文件到本地仓库
[root@flexusx-251fmy_java_project01]# git commit -m'提交一个文档'
[main6512959] 提交一个文档
1file changed, 1 insertion(+)
createmode 100644 1.txt
通过 root 用户,修改 wangwu 用户角色,因为开发人员不可进行提交,只能查看 master 分支
推送代码到项目
[root@flexusx-251fmy_java_project01]# git push
Enumeratingobjects: 4, done.
Countingobjects: 100%(4/4),done.
Deltacompression using up to 4 threads
Compressingobjects: 100%(2/2),done.
Writingobjects: 100%(3/3),290 bytes|290.00KiB/s, done.
Total3(delta0),reused 0(delta0),pack-reused 0
Tossh://123.249.27.118:3002/root/my_java_project01.git
42ac110..6512959main ->main
这里把本地仓库同步到远程仓库,到远程仓库看一下就能看到提交记录了
体验和感受****
在追求高效协作与持续创新的数字化时代,GitLab 作为领先的 DevOps 平台,为企业提供了从代码托管到 CI/CD 的一站式解决方案。而今,华为云 Flexus X 服务器的出现,更是为 GitLab 的云端部署开启了新篇章。
华为云 Flexus X 实例以其卓越的算力性能、灵活的扩展能力和稳定可靠的服务质量,成为了 GitLab 云端部署的理想选择。它不仅支持高并发访问,确保团队协作的流畅无阻,还通过智能的资源调度,帮助企业优化成本结构,实现资源的最大化利用。
在 828 华为云企业上云节这个节日里,让我们一起走进云端世界,Flexus X 实例的高可用性和 GitLab 的丰富功能相互补充,将为团队带来前所未有的开发效率和协作体验。点击下方链接,立即行动,享受专属优惠,让 Flexus X 与 GitLab 携手助力您的企业数字化转型之路,这一完美结合将引领您走向更加辉煌的未来!
产品链接:华为云Flexus云服务器X实例直播建站服务器-华为云
审核编辑 黄宇
-
华为云
+关注
关注
3文章
2605浏览量
17475
发布评论请先 登录
相关推荐
评论