本文主要是介绍『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器部署Gogs服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道
文章目录
- 1. 亚马逊EC2云服务器和nginx介绍
- 2. 登录云服务器
- 2.2 EC2云服务器远程访问
- 3. Gogs部署
- 3.1 Docker 部署
- 3.2 部署Mysql数据库
- 3.3 部署Gogs
- 4. Gogs初始化配置
- 4. 总结
亚马逊EC2云服务器(Elastic Compute Cloud)是亚马逊AWS(Amazon Web Services)提供的一种云计算服务。EC2代表弹性计算云,它允许用户租用虚拟计算资源,包括CPU、内存、存储和网络带宽,以满足计算需求。
Gogs是一款极易搭建的自助Git服务软件,它的开发目的是提供一个最简单、最快速和最轻松的方式来搭建自助Git服务。Gogs使用Go语言开发,因此可以通过独立的二进制分发,并且支持Go语言支持的所有平台,包括Linux、Mac OS X、Windows以及ARM平台。
1. 亚马逊EC2云服务器和nginx介绍
亚马逊EC2云服务器的主要特点和优势包括:
- 灵活性:用户可以根据需要随时启动、停止、调整和删除EC2实例,以便满足不断变化的计算需求。
- 可靠性:亚马逊EC2服务器提供高可用性和容错性,确保用户的应用程序能始终保持运行状态。此外,亚马逊EC2的服务等级协议承诺为每个EC2地区提供99.99%的可用性。
- 安全性:亚马逊EC2服务器提供了多层安全措施,包括网络隔离、数据加密和身份验证,以保护用户的数据和应用程序免受攻击。
- 成本效益:亚马逊EC2服务器采用按需计费模式,用户只需支付实际使用的计算资源费用,无需预先投资硬件或承担维护和管理物理服务器的费用。
- 可扩展性和功能性:亚马逊EC2提供了根据需要扩大或缩小规模的设施,能轻松处理各种动态场景。它还为用户提供了一个真正的虚拟计算平台,可以在其中执行各种操作,甚至可以从这个虚拟环境中启动另一个亚马逊EC2实例。
关于如何购买亚马逊云服务器,我这里不再重复赘述,详细可以查看这篇文章:https://blog.csdn.net/qq_43475285/article/details/134256935
- Gogs的优点主要包括以下几点:
- 简单易用:Gogs具有非常直观的用户界面和简洁明了的操作流程,使得用户可以快速上手并轻松使用。
- 轻量级:Gogs是一款轻量级的Git托管平台,安装和使用都非常简单,不需要复杂的配置和管理。
- 开源免费:Gogs是一款开源软件,用户可以自由获取和使用,并且可以自由定制和分享自己的版本。
- 功能丰富:Gogs提供了丰富的功能,包括代码审查、Webhooks等,可以满足团队协作的需求。
- 性能出色:Gogs的性能非常出色,可以轻松应对高并发的访问,保证服务的稳定性和可用性。
- 跨平台支持:Gogs可以在多种操作系统上运行,包括Linux、Mac OS X、Windows等,具有很好的跨平台性。
- 安全可靠:Gogs具有较高的安全性,采用了多项安全措施来保护用户的数据和隐私,使得用户可以更加放心地使用。
2. 登录云服务器
关于如何登录和使用EC2云服务器等基本内容,可以看上一篇文章,这里不在重复赘述,
可以查看文章:基于亚马逊云EC2搭建OA系统第二章节
2.2 EC2云服务器远程访问
常见的终端shell访问软件有Finalshell,putty,xshell等等。我这里使用的是finalshell
登录到EC2控制台:https://ap-southeast-2.console.aws.amazon.com/console
在登录控制台后,一定要注意右上角的资源所在区域选择,不要选错,否则可能会导致网络不通。
这里我选择的资源区域为弗吉尼亚北部
选择登录进入EC2控制台
可以看到我们已经创建的EC2实例
点击查看详情
在这里我们可以查看此实例的详细信息,网卡,存储等主机基本信息,而且很全面
我们可以选择在右上角点击连接,直接连接
注意用户名为ec2-user
也可进行远程登录。
我选择的远程登录shell终端工具为finalshell
打开finalshell,选择新建—新建ssh连接
输入主机基本信息
这里要注意的是,登录的账号名称为ec2-user
选择使用公钥认证,并导入刚才下载的公钥
双击,登录主机
登录成功后需要设置root密码
[ec2-user@ip-172-31-93-122 ~]$ sudo passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[ec2-user@ip-172-31-93-122 ~]$
然后登录root用户
[ec2-user@ip-172-31-93-122 ~]$ su - root
Password:
Last failed login: Sat Dec 23 07:14:42 UTC 2023 on pts/0
There was 1 failed login attempt since the last successful login.
[root@ip-172-31-93-122 ~]#
登录配置完成
3. Gogs部署
3.1 Docker 部署
安装必要软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加Docker的yum仓库
需要添加docker的官方yum仓库,这样你才能下载并安装docker。可以使用下面的命令添加仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker-ce
sudo yum install -y docker-ce docker-ce-cli containerd
启动docker
sudo systemctl start docker
3.2 部署Mysql数据库
- 拉取镜像
[root@ip-172-31-17-183 ~]# docker pull gogs/gogs:latest
latest: Pulling from gogs/gogs
1207c741d8c9: Pull complete
f6d0bc289bd1: Pull complete
ffcf93ebe546: Pull complete
ef47a0134386: Pull complete
11db1bd6e300: Pull complete
d768c60ea5e0: Pull complete
7b2d9082f869: Pull complete
Digest: sha256:a79112b800b3daba5d3e0e569734abc88e59120e012b34a25d532b00c2ab0a9b
Status: Downloaded newer image for gogs/gogs:latest
docker.io/gogs/gogs:latest
[root@ip-172-31-17-183 ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
11a38aebcb7a: Pull complete
91ab01309bd6: Pull complete
6c91fabb88c2: Pull complete
8f46e806ab5c: Pull complete
29f5af1d1661: Pull complete
62aca7179a54: Pull complete
85023e6de3be: Pull complete
6d5934a87cbb: Pull complete
c878502d3f70: Pull complete
4756467c684a: Pull complete
ee9043dd2677: Pull complete
Digest: sha256:f566819f2eee3a60cf5ea6c8b7d1bfc9de62e34268bf62dc34870c4fca8a85d1
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
- 创建挂载目录
[root@ip-172-31-17-183 ~]# mkdir -p /data/gogs/{data,mysql}
[root@ip-172-31-17-183 ~]# chmod -R 777 /data/gogs/
- 创建Mysql容器
[root@ip-172-31-17-183 ~]# docker run -d --name gogs-mysql --restart always -e MYSQL_ROOT_PASSWORD=gogs -e MYSQL_DATABASE=gogs -e MYSQL_USER=gogs -e MYSQL_PASSWORD=gogs -p 3306:3306 -v /data/gogs/mysql:/var/lib/mysql mysql:5.7
a7633b88638d114c49c63d7a5d5f4a32cb0d65eca85254b286534d7d28e0f3a3
- 设置Mysql用户权限
[root@ip-172-31-17-183 ~]# docker run -d --name gogs-mysql --restart always -e MYSQL_ROOT_PASSWORD=gogs -e MYSQL_DATABASE=gogs -e MYSQL_USER=gogs -e MYSQL_PASSWORD=gogs -p 3306:3306 -v /data/gogs/mysql:/var/lib/mysql mysql:5.7
a7633b88638d114c49c63d7a5d5f4a32cb0d65eca85254b286534d7d28e0f3a3
[root@ip-172-31-17-183 ~]# docker exec -it gogs-mysql /bin/bash # 进入mysql容器内
mysql -uroot -p # 连接本地mysql数据库
bash-4.2# mysql -uroot -p # 连接本地mysql数据库
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- 对用户赋权
bash-4.2# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.44 MySQL Community Server (GPL)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'%' IDENTIFIED BY 'gogs';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)mysql>
3.3 部署Gogs
- 创建Gogs容器
[root@ip-172-31-17-183 ~]# docker run -d --name=gogs --restart always -v /data/gogs/data:/data -p 10022:22 -p 3000:3000 --link=gogs-mysql:mysql gogs/gogs
a6d76147da9031443495cb8c372c60e452390d9d5b5023f4ee359fb736327b53
- 查看Gogs容器状态
[root@ip-172-31-17-183 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a6d76147da90 gogs/gogs "/app/gogs/docker/st…" 44 seconds ago Up 42 seconds (healthy) 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:10022->22/tcp, :::10022->22/tcp gogs
a7633b88638d mysql:5.7 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp gogs-mysql
[root@ip-172-31-17-183 ~]#
4. Gogs初始化配置
访问地址:http://18.208.218.11:3000/,进入到初始配置界面。
创建管理员账号,自定义设置即可,点击“立即安装”。
4. 总结
本文我们主要讲述了如何使用亚马逊科技的EC2服务器部署自助Git服务软件,Gogs是一款极易搭建的git平台,对于入门开发者十分友好。EC2服务器在使用上很流畅,简单上手,非常适合学习使用
这篇关于『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器部署Gogs服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!