安装部署gitlab服务器以常见问题解决

GItlab的安装

我这里使用的是centos 7 64bit,我试过centos 6也是可以的!

1. 安装依赖软件

yum -y install policycoreutils openssh-server openssh-clients postfix

2.设置postfix开机自启,并启动,postfix支持gitlab发信功能

systemctl enable postfix && systemctl start postfix

3.下载gitlab安装包,然后安装

centos 6系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6

centos 7系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7

我的是centos7,所以我在https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7中找了个gitlab8.0.0版本,建议下载一个比较新的版本,我这里选了一个比较旧的版本仅仅是实验

下载rpm包并安装:

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm

4.修改gitlab配置文件指定服务器ip和自定义端口

vim  /etc/gitlab/gitlab.rb

退出并保存

ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口

5.重置并启动GitLab

执行:

gitlab-ctl reconfigure
gitlab-ctl restart

运行结果:

ok: run: gitlab-git-http-server: (pid 3922) 1s
ok: run: logrotate: (pid 3929) 0s
ok: run: nginx: (pid 3936) 1s
ok: run: postgresql: (pid 3941) 0s
ok: run: redis: (pid 3950) 0s
ok: run: sidekiq: (pid 3955) 0s
ok: run: unicorn: (pid 3961) 1s

提示“ok: run:”表示启动成功

6.访问 GitLab页面

如果没有域名,直接输入服务器ip和指定端口进行访问

初始账户: root

密码:

第一次登录修改密码

特别注意:如何出现在可在本地登录,无法远程登录的问题,那基本就可以断定是防火墙的问题了,可以先使用

iptables -nL

查看防火墙的详细信息,然后通过以下命令关闭防火墙

systemctl stop firewalld

通过以下命令禁止开机启动防火墙

systemctl disable firewalld

6.设置gitlab发信功能,需要注意一点:

发信系统用的默认的postfix,smtp是默认开启的,两个都启用了,两个都不会工作。

我这里设置关闭smtp,开启postfix

关闭smtp方法:vim /etc/gitlab/gitlab.rb

找到#gitlab_rails['smtp_enable'] = true 改为 gitlab_rails['smtp_enable'] = false

修改后执行gitlab-ctl reconfigure

另一种是关闭postfix,设置开启smtp,相关教程请参考官网https://doc.gitlab.cc/omnibus/settings/smtp.html

测试是否可以邮件通知:

登录并添加一个用户,我这里使用qq邮箱添加一个用户

登录qq邮箱,可以收到邮件通知(如果收不到,请查看垃圾邮箱或者检查邮件是否被拦截并删除,如果有请添加到白名单并删除用户再重新添加用户就可以收到了,否则请检查邮件日志并做好相关设置)

 

报错处理:

一.登录502报错

一般是权限问题,解决方法:chmod -R 755 /var/log/gitlab

如果还不行,请检查你的内存,安装使用GitLab需要至少4GB可用内存(RAM + Swap)! 由于操作系统和其他正在运行的应用也会使用内存, 所以安装GitLab前一定要注意当前服务器至少有4GB的可用内存. 少于4GB内存会出现各种诡异的问题, 而且在使用过程中也经常会出现500错误.

 

二.gitlab-ctl reconfigure

报错n itdb: could not obtain information about current user: Permission denied

Error executing action `run` on resource 'execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8]'

根据报错信息大概锁定用户的权限问题,安装gitlab-ce会自动添加用户四个用户:

gitlab-www:x:497:498::/var/opt/gitlab/nginx:/bin/false

git:x:496:497::/var/opt/gitlab:/bin/sh

gitlab-redis:x:495:496::/var/opt/gitlab/redis:/bin/nologin

gitlab-psql:x:494:495::/var/opt/gitlab/postgresql:/bin/sh

google和百度都搜索不到解决方法,既然出错提示到权限问题,那么按照这个方向去查就不会有问题,后来查了文件/etc/passwd的权限是600,给予644权限后,成功解决报错问题

 

使用Gitlab的常见问题:

1.  Requests to localhost are not allowed的异常

    这是因为高版本的gitlab出于安全性的考虑,默认将这个功能关闭了,只要开启即可。

     a . 首先使用admin登录gitlab

     b.  然后依次选择   admin area --> settings --> Outbound requests 

 

2.如何生成Token API令牌

首先登录gitlab,然后依次点击

settings --> Access Tokens

然后按照提示填写相关的信息即可,最后会生成一个Token

3.配置Webhook

    首先登录 -->选择项目 -->点击左侧的settings --> Integrations

    

 

 

转载: https://www.cnblogs.com/wenwei-blog/p/5861450.html

<think>好的,我现在需要帮助用户了解如何在IIS服务器部署GitLab和Jenkins。首先,我得确认用户的需求。他们可能是在Windows环境下工作,需要使用IIS作为Web服务器来托管GitLab和Jenkins。这可能是因为他们的组织已经使用了IIS,或者他们更熟悉Windows环境。 接下来,我需要考虑用户的技术背景。如果他们询问的是部署这两个工具,可能有一定的系统管理经验,但可能对具体步骤不熟悉。因此,我的回答需要详细但不过于复杂,步骤清晰,避免使用过于专业的术语,或者在必要时解释术语。 然后,我需要回忆GitLab和Jenkins的部署要求。GitLab通常推荐在Linux上运行,官方支持也更全面,但用户想在IIS下部署,可能意味着需要借助一些变通方法,比如Docker或者反向代理。Jenkins虽然也有原生Windows版本,但可能涉及到Java环境配置和IIS的反向代理设置。 我需要分步骤来规划回答。首先,可能要先说明GitLab在Windows下的部署方法,比如使用Docker,然后配置IIS作为反向代理。接着是Jenkins的安装,包括Java环境的安装,Jenkins的war包部署,以及同样通过IIS反向代理来访问。 同时,需要注意潜在的问题。例如,GitLab在Windows下可能存在的性能问题,或者Docker的配置复杂性。Jenkins需要Java,用户可能需要安装合适的JDK版本,并处理服务启动的问题。IIS反向代理配置可能需要URL重写模块,用户可能需要安装该模块,并正确配置web.config文件。 还要考虑安全性,比如SSL证书的配置,是否需要HTTPS,以及如何设置防火墙规则允许流量通过。此外,权限问题也是关键,比如IIS应用程序池的身份验证,以及GitLab和Jenkins的数据目录权限。 用户可能没有提到的深层需求包括高可用性、备份策略或者与现有系统的集成,但由于问题范围限定在部署,可能不需要深入这些方面,但可以简要提及后续步骤或优化建议。 最后,我需要验证步骤的正确性,确保命令和配置示例准确无误,特别是涉及到的PowerShell命令、Docker指令和IIS的配置细节。同时,提醒用户注意版本兼容性,例如GitLab的Docker镜像版本与Windows的兼容性,Jenkins的Java版本要求等。 总结下来,回答结构应该是分两部分,先讲GitLab部署,再讲Jenkins部署,每部分包括安装步骤、IIS反向代理配置、注意事项。最后给出一些常见问题解决方法,帮助用户排错。</think>--- ### IIS 服务器部署 GitLab 与 Jenkins 指南 在 IIS(Internet Information Services)服务器部署 GitLab 和 Jenkins 需要结合反向代理、容器化等技术。以下是详细步骤及注意事项: --- #### 一、部署 GitLab(基于 Docker) GitLab 原生支持 Linux,Windows 下可通过 **Docker** 实现容器化部署,再通过 IIS 反向代理对外提供服务。 ##### 1. 环境准备 - **操作系统**:Windows Server 2016/2019/2022 - **依赖工具**: - [Docker Desktop for Windows](https://docs.docker.com/desktop/install/windows-install/) - [IIS URL Rewrite 模块](https://www.iis.net/downloads/microsoft/url-rewrite)(用于反向代理) ##### 2. 安装 GitLab 容器 ```powershell # 拉取 GitLab 镜像 docker pull gitlab/gitlab-ce:latest # 创建数据目录(避免容器重启后数据丢失) mkdir C:\gitlab\config mkdir C:\gitlab\logs mkdir C:\gitlab\data # 启动 GitLab 容器 docker run -d ` --hostname gitlab.example.com ` --name gitlab ` -p 8080:80 -p 8443:443 -p 8022:22 ` -v C:\gitlab\config:/etc/gitlab ` -v C:\gitlab\logs:/var/log/gitlab ` -v C:\gitlab\data:/var/opt/gitlab ` --restart unless-stopped ` gitlab/gitlab-ce:latest ``` **参数说明**: - `--hostname`:设置 GitLab 域名(需与后续 IIS 配置一致)。 - `-p`:映射容器端口(HTTP 80→8080,HTTPS 443→8443,SSH 22→8022)。 - `-v`:挂载持久化存储目录。 ##### 3. 配置 IIS 反向代理 1. **安装 URL Rewrite 模块**:下载并安装 IIS 的 URL Rewrite 扩展。 2. **创建网站**: - 绑定域名 `gitlab.example.com`,端口 80/443(需申请 SSL 证书)。 3. **配置反向代理规则**(web.config): ```xml <configuration> <system.webServer> <rewrite> <rules> <rule name="ReverseProxy GitLab" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://localhost:8080/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> ``` 4. **测试访问**:浏览器访问 `http://gitlab.example.com`,初始化管理员账户。 --- #### 二、部署 Jenkins Jenkins 支持原生 Windows 安装,可直接部署在 IIS 服务器上。 ##### 1. 环境准备 - **Java 环境**:安装 [JDK 11+](https://adoptium.net/temurin/releases/) - **Jenkins 安装包**:下载 [Windows 版 Jenkins WAR 包](https://www.jenkins.io/download/) ##### 2. 安装 Jenkins 1. **配置 Java 环境变量**: ```powershell # 设置 JAVA_HOME(根据实际路径调整) [Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk-17", "Machine") ``` 2. **安装 Jenkins 服务**: ```powershell # 创建 Jenkins 工作目录 mkdir C:\Jenkins # 启动 Jenkins(默认端口 8080) java -jar jenkins.war --httpPort=8080 --webroot=C:\Jenkins ``` **提示**:建议通过 [NSSM](https://nssm.cc/) 将 Jenkins 注册为 Windows 服务: ```powershell nssm install Jenkins "C:\Program Files\Java\jdk-17\bin\java.exe" "-jar C:\jenkins\jenkins.war --httpPort=8080" nssm start Jenkins ``` ##### 3. 配置 IIS 反向代理 1. **创建网站**: - 绑定域名 `jenkins.example.com`,端口 80/443。 2. **反向代理规则**(web.config): ```xml <configuration> <system.webServer> <rewrite> <rules> <rule name="ReverseProxy Jenkins" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://localhost:8080/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> ``` 3. **初始化 Jenkins**: - 访问 `http://jenkins.example.com`,输入初始密码(路径在 Jenkins 日志中)。 - 安装推荐插件并创建管理员账户。 --- #### 三、注意事项 1. **性能优化**: - GitLab 容器需分配至少 **4GB 内存**(通过 Docker Desktop 设置)。 - Jenkins 建议配置为 **后台服务**,避免因会话中断导致进程终止。 2. **安全加固**: - 为 IIS 网站配置 **HTTPS**(使用 Let's Encrypt 免费证书)。 - GitLab 容器限制 SSH 端口映射(如非必要可关闭 `-p 8022:22`)。 3. **数据备份**: - GitLab:定期备份容器内 `/var/opt/gitlab` 目录。 - Jenkins:通过插件备份 `JENKINS_HOME` 目录。 --- #### 四、常见问题 1. **GitLab 容器启动失败** - **原因**:端口冲突或权限不足。 - **解决**:检查端口占用情况,确保 Docker 有权限写入挂载目录。 2. **Jenkins 无法访问插件市场** - **原因**:网络限制或镜像源问题。 - **解决**:更换插件中心镜像(管理后台 → 插件管理 → 高级设置 → 镜像 URL)。 3. **反向代理后 CSS/JS 加载异常** - **原因**:反向代理未正确处理静态资源路径。 - **解决**:在 IIS 中配置 `HTTP_ACCEPT_ENCODING` 和 `HTTP_X_FORWARDED_PROTO` 头。 --- ### 总结 通过 Docker 和 IIS 反向代理,可在 Windows 服务器上高效部署 GitLab 与 Jenkins。关键点在于: - GitLab 使用容器化部署,规避 Windows 原生兼容性问题。 - Jenkins 依赖 Java 环境,需注册为服务保障稳定性。 - IIS 反向代理统一管理域名和 HTTPS,简化外部访问流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值