电子说
前言****
华为云 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
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
创建项目****
点击左侧导航栏 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
把生成的公钥填写在 gitlab 的 wangwu 用户中
查看公钥并写入 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 ..." 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实例直播建站服务器-华为云
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !