搭建Jenkins gitlab 环境
Jenkins 全知道
https://jenkins.xfoss.com/
Ubuntu 上开放 SSH 和 HTTP 服务,并重新加载防火墙配置
1. 确认防火墙状态
Ubuntu 22.04 默认防火墙是 ufw(Uncomplicated Firewall)。
先查看防火墙状态:
bash
如果显示 inactive
表示防火墙未启用。
root@user-virtual-machine:~# sudo ufw status
Status: inactive
root@user-virtual-machine:~#
2. 开放 SSH(22 端口)
SSH 默认端口是 22,允许它通过防火墙:
bash
sudo ufw allow ssh
或指定端口:
bash
sudo ufw allow 22/tcp
3. 开放 HTTP(80 端口)
HTTP 默认端口是 80:
bash
sudo ufw allow http
或指定端口:
bash
sudo ufw allow 80/tcp
4. 启用防火墙(如果未启用)
bash
sudo ufw enable
5. 重新加载防火墙配置
bash
sudo ufw reload
6. 查看防火墙规则
bash
sudo ufw status
你应该能看到类似:
plaintext
Status: activeTo Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
7. 额外提示
- 如果还需要 HTTPS(443 端口),可以运行:
bash
sudo ufw allow 443/tcp
- 如果想允许某个特定 IP 访问:
bash
sudo ufw allow from 192.168.1.100
✅ 这样配置后,你的服务器就可以被 SSH 连接和 HTTP 访问了。
root@user-virtual-machine:~# sudo ufw status
Status: inactive
root@user-virtual-machine:~#
root@user-virtual-machine:~#
root@user-virtual-machine:~#
root@user-virtual-machine:~# sudo ufw allow ssh
Skipping adding existing rule
Skipping adding existing rule (v6)
root@user-virtual-machine:~# sudo ufw allow http
Rules updated
Rules updated (v6)
root@user-virtual-machine:~# sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Aborted
root@user-virtual-machine:~# sudo ufw reload
Firewall not enabled (skipping reload)
root@user-virtual-machine:~# sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
root@user-virtual-machine:~# sudo ufw reload
Firewall reloaded
root@user-virtual-machine:~# sudo ufw status
Status: activeTo Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6) root@user-virtual-machine:~#
2.安装 GitLab Community Edition(CE 社区版)。
1. 准备工作
GitLab 对服务器资源要求较高,建议:
- CPU:至少 2 核
- 内存:至少 4GB(推荐 8GB)
- 磁盘:至少 20GB 可用空间
- 已安装并配置好 SSH
更新系统:
bash
sudo apt update && sudo apt upgrade -y
2. 安装依赖
bash
sudo apt install -y ca-certificates curl openssh-server postfix tzdata
命令用于一次性安装多个软件包,其中包括:
ca-certificates:证书授权中心的证书,这些证书用于验证 SSL 证书。
curl:一个命令行工具,用于发送和接收数据。
openssh-server:OpenSSH 服务器,用于提供 SSH 访问。
postfix:一个邮件传输代理(MTA),用于发送和接收电子邮件。
tzdata:时区数据库,用于正确处理日期和时间。
注意事项
- sudo:这个命令需要管理员权限,使用
sudo
可以提升你的权限。 - -y:这个选项会自动回答所有提示为“是”,避免在安装过程中出现交互式询问。
后续配置
安装完这些软件包后,你可能需要配置一些服务:
-
OpenSSH Server:安装完成后,你可能需要配置 SSH 服务。你可以通过编辑
/etc/ssh/sshd_config
文件来配置 SSH 服务,然后重启 SSH 服务:
sudo systemctl restart sshd
Postfix:安装 Postfix 后,你可能需要配置邮件服务器。这通常涉及编辑 /etc/postfix/main.cf 文件来设置邮件服务器的相关参数。例如,设置邮件域名、SMTP 认证等。
Timezone:安装 tzdata 后,系统会自动提示你选择时区。如果你错过了这个步骤或者想要更改时区,可以使用以下命令选择时区:
sudo dpkg-reconfigure tzdata
确保在继续之前检查每个服务的配置文件,以确保它们按照你的需求正确配置
参考 :
阿里云 Ubuntu 22.04.4 LTS 安装postfix+dovecot 搭建邮件服务器_ubuntu 22.04部署postfix+dovecot-CSDN博客
buntu 会弹出一个 蓝色的配置界面(其实是 debconf
交互配置),一般会有几个选项:
-
No configuration
- 不做任何配置,后续需要手动修改
/etc/postfix/main.cf
。 - 适合熟悉 postfix 配置的高手。
- 不做任何配置,后续需要手动修改
-
Internet Site(推荐用于 GitLab)
- 服务器直接通过互联网收发邮件,需要有 公网 IP 和 域名。
- postfix 会直接用 SMTP 与外部邮件服务器通信。
-
Internet with smarthost
- 服务器本身不直接对外发邮件,而是通过一个 中继(smarthost) 转发。
- 适合内网服务器、或者需要通过企业邮箱 / 第三方 SMTP(如 QQ、163、SendGrid)发邮件的情况。
-
Satellite system
- 所有邮件都通过一个固定的外部 SMTP 服务器发送和接收。
- 与 “Internet with smarthost” 类似,但更严格。
-
Local only
- 只在本机发送邮件,不与外部通信。
- 适合只需要
cron
、系统告警发给本机用户的场景。
二、GitLab 场景推荐选择
如果你的服务器有公网 IP + 域名(直接发邮件)
- 选择 Internet Site
- 然后会提示输入 System mail name,输入你的服务器域名,例如:
plaintext
gitlab.example.com
- 这样 postfix 会用这个域名作为邮件的
From
地址后缀。
如果你的服务器在内网 / 需要用第三方 SMTP(如 QQ 邮箱、163、SendGrid)
- 选择 Internet with smarthost
- System mail name 同样填域名
- 下一步会让你输入 smarthost 地址,比如 QQ 邮箱的 SMTP 是
smtp.qq.com:587
- 之后还需要配置认证信息(用户名 / 密码)到
/etc/postfix/sasl_passwd
如果暂时不想配置,后续手动改
- 选择 No configuration
- 安装后手动编辑
/etc/postfix/main.cf
进行配置