828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署Gitea服务器
前言
随着云计算技术的不断进步,
华为云Flexus云服务器X实例
凭借其专为中小企业和开发者定制的柔性算力特性,在众多云服务产品中脱颖而出,以强劲的性能和出色的性价比赢得了市场的广泛认可。通过本文的详尽步骤,读者将能够顺利完成Gitea的部署,并进一步探索其在实际应用中的潜力。Gitea作为一个开源的轻量级代码托管平台,提供了许多吸引人的特点,使其成为个人开发者和小团队的理想选择。华为云Flexus X实例的强大性能和稳定性,确保了部署过程的顺畅及后续使用的高效体验。借助这一平台,用户不仅能够轻松部署Gitea,还能充分发挥其功能,提升开发效率。此次部署不仅展示了华为云Flexus X实例的技术优势,也为寻求可靠云解决方案的专业人士提供了一个值得尝试的组合。
一、Flexus云服务器X实例介绍
1.1 Flexus云服务器X实例简介
- 官网地址: 华为云Flexus云服务器X实例
华为云
Flexus云服务器X实例
是新一代面向中小企业和开发者的柔性算力云服务器。它能够智能感知业务负载的变化,自动调整资源配置。这款服务器特别适用于中低负载的应用场景,例如电商直播、企业网站建设、开发测试环境、游戏服务器以及音视频服务等。X实例的设计理念旨在为用户提供更加灵活和高效的计算资源管理方式。通过智能调整,它可以更好地满足不同业务的需求,提高资源利用率。
1.2 Flexus云服务器X实例特点
-
提供丰富的公共镜像:Flexus云服务器X实例提供多种公共镜像供用户选择,方便快速部署各种应用和服务。
-
可灵活自定义vCPU内存配比:用户可以根据自己的需要灵活调整虚拟CPU和内存的配比,以满足不同场景的需求。
-
智能感知业务动态升降配:Flexus云服务器X实例能够智能感知业务的负载情况,并根据需要自动升降配,以满足业务的需求,提高系统的稳定性和性能。
-
负载范围更高:相对于Flexus应用服务器L实例,Flexus云服务器X实例能够处理更高的负载,适用于更复杂和繁忙的场景。
1.3 Flexus云服务器X实例使用场景
Flexus云服务器X实例针对不同的使用场景展现出其独特的优势:
-
电商直播:利用X实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。
-
企业建站:面向博客、论坛和企业门户等应用场景,X实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。
-
个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过X实例便捷获取,不仅提高了搭建效率,而且降低了成本。
-
游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。
二、Gitea介绍
2.1 Gitea简介
Gitea
是一个轻量级的、开源的代码托管平台,类似于 GitHub 和 GitLab,但它更侧重于简单性和易用性。Gitea 能够让用户在自己的服务器上搭建一个私有的 Git 仓库托管服务,非常适合那些希望拥有自己代码仓库的企业或个人开发者。
2.2 Gitea主要特点
-
开源且免费:Gitea 是完全开源的软件,基于 MIT 许可证发布,这意味着用户可以自由地查看源代码、修改和分发。这不仅增加了透明度,也为用户提供了定制的可能性。
-
轻量级:相比其他类似的服务,Gitea 占用较少的系统资源,可以在较低配置的服务器上高效运行。这使得它成为一个经济实惠的选择,尤其是在资源有限的情况下。
-
易于部署:Gitea 支持多种部署方式,包括 Docker、Snap 包、二进制包等,使得安装和配置过程简单快捷。无论是新手还是经验丰富的系统管理员都能轻松上手。
-
用户友好的界面:Gitea 提供了一个简洁直观的用户界面,方便用户进行代码管理、问题跟踪、代码审查等操作。界面设计注重用户体验,使得操作更加顺畅。
-
高度可定制:用户可以根据需要定制 Gitea 的外观和功能,包括自定义主题、插件等。这为用户提供了极大的灵活性,可以根据具体需求进行个性化配置。
-
支持多种认证方式:除了基本的用户名/密码认证之外,Gitea 还支持 LDAP、OAuth2、SAML 等多种身份验证方式,增强了系统的安全性,并且方便与现有的企业级身份管理系统集成。
-
支持 Webhooks:Gitea 支持 Webhooks,可以与其他工具和服务集成,实现自动化的工作流。这对于自动化构建、测试和部署流程非常有用。
-
跨平台支持:Gitea 可以在 Windows、Linux 和 macOS 上运行,提供了广泛的兼容性,使得用户可以在多种操作系统上使用。
-
安全性:Gitea 注重安全性,提供了包括两步验证在内的多种安全措施,确保用户的数据得到保护。
-
社区支持:作为一个开源项目,Gitea 拥有一个活跃的社区,用户可以获得来自社区的帮助和支持,同时也能够参与到项目的开发和改进中去。
三、本次实践介绍
3.1 本次实践简介
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为云华为云Flexus云服务器X实例,使用的操作系统为openEuler 22.03 LTS;
3.本次实践在Docker环境下部署Gitea服务器。
3.2 本次环境规划
服务器类别 | 公共镜像选择 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
华为云Flexus云服务器X实例 | openEuler | 192.168.0.169 | 26.1.3 | openEuler 22.03 LTS |
四、远程连接华为云Flexus云服务器X实例
4.1 购买Flexus云服务器X实例
进入华为云官网:https://activity.huaweicloud.com/,登录自己的华为云账号,进入华为云首页。
- 可参考以下基础配置,进行购买:
1.计费模式:包年/包月,这里选择此模式;
2.区域:华北—北京四,可用区:随机即可;
3.实例规格:关闭性能模式,选择自定义,4vCPUs | 12GiB;
4.镜像:公共镜像,Huawei Cloud EulerOS,版本,Huawei Cloud EulerOS 2.0 Standard 64 bit(10GiB);
5.应用加速:这里选择不加速;
6.存储:系统盘,通用型SSD100G;
7.网络:选择默认即可;
8.安全组:选择默认即可;
9.弹性公网IP:选择“现在购买”,全动态BGP,带宽3Mbit/s;
10.云服务器名称:可自定义设置,这里选择默认的名称;
11.登录凭证:自定义设置密码;
12.云备份:暂不购买;
其余配置默认即可。
- 确认配置及购买
在确认配置页面,检查Flexus云服务器X实例的各项配置是否正确。检查完毕后,点击“立即购买”。付款完毕后,华为云Flexus云服务器X实例购买成功。
4.2 查看Flexus云服务器X实例状态
进入华为云Flexus云服务的控制台,选择Flexus云服务器X实例,可以看到已经正在运行的Flexus云服务器X实例。
4.3 使用Xshell远程连接
- 复制Flexus云服务器X实例的弹性公网IP地址
- 主要填写Flexus云服务器X实例的弹性公网IP地址,输入其登录用户和密码,连接即可。
五、检查Flexus云服务器X实例系统环境
5.1 检查操作系统版本
检查Flexus云服务器X实例的操作系统版本,本次实践选择的版本为
openEuler 22.03 LTS
[root@flexusx-51a1 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"
5.2 检查内核版本
检查当前操作系统的内核版本,当前内核版本为
5.10.0-60.109.0.136.oe2203.x86_64
。
[root@flexusx-51a1 ~]# uname -r
5.10.0-60.109.0.136.oe2203.x86_64
5.3 检查Docker版本
部署该项目需要提前安装Docker环境,检查Docker版本,当前安装的Docker版本为
26.1.3
。
[root@flexusx-51a1 ~]# docker -v
Docker version 26.1.3, build b72abbb
5.4 检查Docker服务状态
检查Docker服务状态,确保Docker服务正常。
[root@flexusx-51a1 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2024-09-04 21:23:44 CST; 15min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 10018 (dockerd)
Tasks: 10
Memory: 196.3M
CGroup: /system.slice/docker.service
└─ 10018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
5.5 检查Docker compose版本
检查docker compose版本,当前默认安装版本为
v2.29.1
。
[root@flexusx-51a1 ~]# docker compose version
Docker Compose version v2.27.0
六、部署Gitea服务器
6.1 下载Gitea镜像
执行以下命令,下载Gitea镜像。
docker pull gitea/gitea:latest
docker pull mysql:8.0
6.2 创建部署目录
执行以下命令,创建项目部署目录
/data/gitlab/
。
mkdir -p /data/gitea/ && cd /data/gitea/
6.3 编辑docker-compose.yaml文件
本次使用使用docker compose方式部署,需要新建及编辑docker-compose.yaml文件,内容如下。在部署文件中,可以自定义修改数据库账号密码及宿主机映射端口等信息,注意防止端口冲突。
vim docker-compose.yaml
[root@flexusx-51a1 gitea]# cat docker-compose.yaml
version: "3"
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=mysql
- DB_HOST=db:3306
- DB_NAME=gitea
- DB_USER=gitea
- DB_PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- /data/gitea/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "8012:3000"
- "1222:22"
depends_on:
- db
db:
image: mysql:8.0
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
- /data/gitea/mysql:/var/lib/mysql
networks:
gitea:
external: false
- 相关变量解释:
USER_UID
和USER_GID
:这两个环境变量用于设置容器内部用户的用户 ID (UID) 和组 ID (GID),确保容器内的文件权限与宿主机一致。
DB_TYPE
:指定数据库的类型,这里是 MySQL。
DB_HOST
:指定数据库服务的主机名和端口,这里是 db:3306,表示数据库服务运行在名为 db 的容器上,端口为 3306。
DB_NAME
:指定数据库的名称,这里是 gitea。
DB_USER
和DB_PASSWD
:分别指定数据库的用户名和密码,都是 gitea。
MYSQL_ROOT_PASSWORD
:MySQL 根用户的密码,这里是 gitea。
MYSQL_USER
和MYSQL_PASSWORD
:MySQL 用户名和密码,均为 gitea。
MYSQL_DATABASE
:MySQL 中的数据库名称,这里是 gitea。
6.4 创建Gitea容器
执行以下命令,快速创建Gitea容器。
[root@flexusx-51a1 gitea]# docker compose up -d
WARN[0000] /data/gitea/docker-compose.yaml: `version` is obsolete
[+] Running 3/3
✔ Network gitea_gitea Created 0.0s
✔ Container gitea-db-1 Started 0.2s
✔ Container gitea Started 0.3s
6.5 查看Gitea容器状态
检查Gitea容器状态,确保Gitea容器正常启动。
[root@flexusx-51a1 gitea]# docker compose ps
WARN[0000] /data/gitea/docker-compose.yaml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
gitea gitea/gitea:latest "/usr/bin/entrypoint…" server 3 minutes ago Up 3 minutes 0.0.0.0:1222->22/tcp, :::1222->22/tcp, 0.0.0.0:8012->3000/tcp, :::8012->3000/tcp
gitea-db-1 mysql:8.0 "docker-entrypoint.s…" db 3 minutes ago Up 3 minutes 3306/tcp, 33060/tcp
6.6 查看Gitea容器日志
检查Gitea容器日志,确保Gitea服务正常运行。
docker compose logs
6.7 查看资源使用情况
检查Gitea的资源占用情况后,我们发现Gitea容器不仅资源占用极少,还高效地利用了服务器的各项资源,确保了系统的平稳运行与高性能表现。
docker stats gitea
七、访问前准备工作
7.1 关闭防火墙
执行以下命令,关闭防火墙。
systemctl stop firewalld
如果想要开启防火墙,则需要在防火墙上放行cockpit服务。
sudo firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload
- 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
7.2 Flexus云服务器X实例安全组配置
进入Flexus云服务器X实例控制台,进行安全组规则配置。在安全组入方向规则上,放行8012和1222端口。
八、Gitea初始配置
8.1 访问Gitea初始页
浏览器访问地址:http://弹性公网IP地址:8012,将IP替换为自己服务器IP地址。浏览器打开后,进入Gitea初始页。
8.2 初始配置
数据库配置和一般配置中系统已自动填写,默认即可,注意服务器域名可以填写华为云Flexus云服务器X实例的弹性公网IP地址。
管理员账号配置,自定义配置即可。
8.3 访问Gitea首页
在初始化页面,点击“立即安装”后,完成初始化安装,系统自动跳转到Gitea首页。
九、创建代码仓库
9.1 新建仓库
在Gitea右上角的“+”号中,点击“创建仓库”。
填写仓库名称后,选择创建仓库即可。
9.2 查看新建仓库
在Gitea首页中,仓库列表点击刚才新建的仓库即可。
进入测试仓库后,可以看到当前的仓库状态。
十、上传项目到Gitea
10.1 生成SSH密钥
使用ssh-keygen生成SSH密钥时,程序首先提示确认密钥的保存位置及文件名,通常默认为~/.ssh/id_rsa,按Enter接受即可。接着会让你输入密钥口令,留空则无需密码即可使用密钥。整个过程中,只需一直按Enter接受默认选项。最终会在.ssh目录下生成id_rsa私钥和id_rsa.pub公钥文件。
ssh-keygen -t rsa -C "邮箱地址"
10.2 将公钥添加到Gitea
执行以下命令,查看并复制本地公钥。
cat ~/.ssh/id_rsa.pub
在Gitea的设置——SSH/GPG密钥——管理SSH密钥,点击新增密码,将刚才复制的SSH公钥文件内容粘贴即可。
10.3 创建本地Git仓库
创建本地Git仓库目录
mkdir -p /data/myproject && cd /data/myproject
本地Git仓库基本信息配置
git config --global user.name "jeven"
git config --global user.email "123456@qq.com"
git config --global color.ui true
初始化本地仓库
git init
可以自由创建、拷贝一些测试文件,用于上传到远程的Gitea仓库。
[root@flexusx-51a1 myproject]# touch test{01..03}
[root@flexusx-51a1 myproject]# ls
test01 test02 test03
[root@flexusx-51a1 myproject]# cp /data/gitea/docker-compose.yaml .
[root@flexusx-51a1 myproject]# ls
docker-compose.yaml test01 test02 test03
提交文件到本地仓库
git add .
git commit -m "1.0 master-jeven create item for test "
10.4 修改配置文件
在gitea的挂载目录
data/gitea/conf/
下,修改app.ini
配置文件中的SSH端口为1222端口。
vim data/gitea/conf/app.ini
SSH_PORT = 1222
SSH_LISTEN_PORT = 1222
10.5 添加远程仓库
查看远程仓库地址,将其复制。
添加自己Gitea的远程仓库,其中仓库地址填写格式为“ git@服务器IP地址:jeven/mytest.git”。
git remote add origin ssh://git@服务器IP地址:1222/jeven/mytest.git
10.6 开始上传项目
执行以下命令,开始将测试项目上传到Gitea。
git push -u origin master
10.7 查看Gitea仓库效果
回到Gitea页面中,刷新页面,我们可以看到已经将本地代码推送到Gitea的mytest仓库master分支。
十一、使用体验与总结
在本次实践中,我们成功地在
华为云Flexus云服务器X实例
上部署了Gitea系统,整个部署过程及后续使用体验极为顺畅。华为云Flexus X实例凭借其卓越的性价比、强大的计算性能、可靠的稳定性和高标准的安全保障,在众多云服务选项中脱颖而出。该实例的网络连接始终保持稳定,操作过程毫无延迟或卡顿,确保了高效的用户体验。Gitea作为一个开源的轻量级代码托管平台,提供了许多吸引人的特点,使其成为个人开发者和小团队的理想选择。此次部署不仅彰显了华为云Flexus X实例作为云服务器的强大优势,还验证了当高质量云服务与高效工具相结合时,能够显著提升工作效率。这样的组合值得每一个寻求可靠云解决方案的专业人士尝试,充分体现了华为云Flexus X实例在实际应用中的卓越表现。
趁着华为云828 B2B企业节的热潮,快来探索Flexus X实例的超值优惠,感受技术与创新的完美融合;从高性能计算到智能监控,每一个细节都彰显出华为云对品质的坚持与追求;加入华为云大家庭,不仅是一次技术升级,更是向未来迈出的坚实一步;让我们携手并进,共创云端新辉煌!