linux内网安装git,一键安装GitLab7在RHEL6.4上
1 关于gitlab7
无论如何gitlab是个好东西,但是极难安装和配置。bitnami(https://bitnami.com/)的一键安装包虽然可以解决大问题,但是仍有很多人无法配置gitlab+nginx和email发送等等问题。今天特意完整地再梳理一次。对各位读者的问题不再逐一解答。
首先,bitmami的一些版本有问题,无法成功在rhel6.4上成功安装。因此,我找到了一个较新的可以使用的版本7.8.1(响应式页面):
ftp://pepstack.com/pub/tarball/bitnami-gitlab-7.8.1-0-linux-x64-installer.run
(我的ftp不会一直提供,请想要的尽快下载)
那么,最后安装好的效果就是(点击可访问,第一次访问可能会比较慢,要求较新版本的firefox或chrome,IE未测试):
http://pepstack.com/gitlab
2 需求描述
好了,先把需求陈述一下,如果读者的需求与我不同,我无能为力。假设我有一台web主机(我这里是pepstack.com),我在主机后面创建虚拟机(vm-gitlab),在vm-gitlab上安装gitlab7,然后通过配置web主机上的ngnix,可以通过下面的url访问到我的gitlab:
http://pepstack.com/gitlab
创建虚拟机vm-gitlab的过程不细说了,如果你使用实体机也是一样的。vm-gitlab安装的是rhel6.4版本。确保在vm内部可以访问外部主机和internet(如ping www.baidu.com)。
3 安装gitlab
ssh 到vm-gitlab:
# ssh root@vm-gitlab
下载一键式安装包:
# wget ftp://pepstack.com/pub/tarball/bitnami-gitlab-7.8.1-0-linux-x64-installer.run
安装:
# chmod a+x bitnami-gitlab-7.8.1-0-linux-x64-installer.run
# ./bitnami-gitlab-7.8.1-0-linux-x64-installer.run
安装过程中会提示:
----------------------------------------------------------------------------
Welcome to the Bitnami Gitlab Stack Setup Wizard.
----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want
to install. Click Next when you are ready to continue.
GitLab : Y (Cannot be edited)
GitLab CI [Y/n] :Y
Is the selection above correct? [Y/n]: Y
----------------------------------------------------------------------------
Installation folder
Please, choose a folder to install Bitnami Gitlab Stack
Select a folder [/opt/gitlab-7.8.1-0]:
----------------------------------------------------------------------------
Create Admin account
Bitnami Gitlab Stack admin user creation
Email Address [user@example.com]: cheungmine@qq.com
Login [user]: master (此处是你登录gitlab用的用户名)
Password : (输入你登录gitlab时要用的密码)
Please confirm your password : (输入你登录gitlab时要用的密码)
----------------------------------------------------------------------------
Hostname that will be used to create internal URLs. If this value is incorrect,
you may be unable to access your Gitlab installation from other computers. It is
advisable to use a Domain instead of an IP address for compatibility with
different browsers.
Domain [127.0.0.1]:
Do you want to configure mail support? [y/N]: Y
----------------------------------------------------------------------------
Configure SMTP Settings
This is required so your application can send notifications via email.
Default email provider:
[1] GMail
[2] Custom
Please choose an option [1] : 2
----------------------------------------------------------------------------
Configure SMTP Settings
This data is stored in the application configuration files and may be visible to
others. For this reason, it is recommended that you do not use your personal
account credentials.
Username []: cheungmine@qq.com
Password : (输入你的QQ密码)
Re-enter : (输入你的QQ密码)
SMTP Host []: smtp.qq.com
SMTP Port []: 25
Secure connection
[1] None
[2] SSL
[3] TLS
Please choose an option [3] :
----------------------------------------------------------------------------
Setup is now ready to begin installing Bitnami Gitlab Stack on your computer.
Do you want to continue? [Y/n]: Y
----------------------------------------------------------------------------
Please wait while Setup installs Bitnami Gitlab Stack on your computer.
Installing
0% ______________ 50% ______________ 100%
#########################################
----------------------------------------------------------------------------
Setup has finished installing Bitnami Gitlab Stack on your computer.
Info: To access the Bitnami Gitlab Stack, go to
http://127.0.0.1:80 from your browser.
Press [Enter] to continue:
4 配置gitlab
配置尤其要小心。下面几个配置文件要用到:
/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/environments/production.rb
/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/initializers/smtp_settings.rb
/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/gitlab.yml
/opt/gitlab-7.8.1-0/apps/gitlab/conf/httpd-app.conf
/opt/gitlab-7.8.1-0/apps/gitlab/gitlab-shell/config.yml
下面逐一说明:
4.1 production.rb
......
# config.action_mailer.delivery_method = :sendmail
# Defaults to:
# # config.action_mailer.sendmail_settings = {
# # location: '/usr/sbin/sendmail',
# # arguments: '-i -t'
# # }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.qq.com",
:port => "25",
:domain => "qq.com",
:authentication => :plain,
:user_name => "cheungmine@qq.com",
:password => "********",
:enable_starttls_auto => true
}
config.eager_load = true
config.assets.js_compressor = :uglifier
config.allow_concurrency = false
......
4.2 smtp_settings.rb
# cp smtp_settings.rb.sample smtp_settings.rb
# To enable smtp email delivery for your GitLab instance do the following:
# 1. Rename smtp_settings.rb.sample to smtp_settings.rb
# 2. Edit settings inside this file
# 3. Restart GitLab instance
#
if Rails.env.production?
Gitlab::Application.config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: "smtp.qq.com",
port: 25,
user_name: "cheungmine@qq.com",
password: "********",
domain: "qq.com",
authentication: :login,
enable_starttls_auto: true,
openssl_verify_mode: 'none'
}
end
4.3 gitlab.yml
# # # # # # # # # # # # # # # # # #
# GitLab application config file #
# # # # # # # # # # # # # # # # # #
#
# How to use:
# 1. Copy file as gitlab.yml
# 2. Update gitlab -> host with your fully qualified domain name
# 3. Update gitlab -> email_from
# 4. If you installed Git from source, change git -> bin_path to /usr/local/bin/git
# 5. Review this configuration file for other settings you may want to adjust
production: &base
#
# 1. GitLab app settings
# ==========================
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: pepstack.com
port: 80 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
https: false # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
# Uncommment this line below if your ssh host is different from HTTP/HTTPS one
# (you'd obviously need to replace ssh.host_example.com with your own host).
# Otherwise, ssh host will be set to the `host:` value above
# ssh_host: ssh.host_example.com
# WARNING: See config/application.rb under "Relative url support" for the list of
# other files that need to be changed for relative url support
relative_url_root: /gitlab
# Uncomment and customize if you can't use the default user to run GitLab (default: 'git')
# user: git
## Date & Time settings
# Uncomment and customize if you want to change the default time zone of GitLab application.
# To see all available zones, run `bundle exec rake time:zones:all RAILS_ENV=production`
# time_zone: 'UTC'
## Email settings
# Uncomment and set to false if you need to disable email sending from GitLab (default: true)
# email_enabled: true
# Email address used in the "From" field in mails sent by GitLab
email_from: cheungmine@qq.com
support_email: cheungmine@qq.com
# Email server smtp settings are in config/initializers/smtp_settings.rb.sample
# default_can_create_group: false # default: true
# username_changing_enabled: false # default: true - User can change her username/namespace
## Default theme
## BASIC = 1
## MARS = 2
## MODERN = 3
## GRAY = 4
## COLOR = 5
# default_theme: 2 # default: 2
......
上面文件改动之处在于:
host: pepstack.com
relative_url_root: /gitlab
email_from: cheungmine@qq.com
support_email: cheungmine@qq.com
下面的配置是因为要把gitlab置于nginx后面使用:
4.4 httpd-app.conf
Options -MultiViews
AllowOverride All
Order allow,deny
Allow from all
= 2.3>
Require all granted
SetEnv RAILS_RELATIVE_URL_ROOT "/gitlab"
PassengerEnabled on
PassengerAppRoot "/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/"
ModPagespeedDisallow "*"
PassengerUser git
PassengerGroup git
SetEnv MAGIC "/opt/gitlab-7.8.1-0/ruby/lib/ruby/gems/2.0.0/gems/charlock_holmes-0.6.9.4/ext/charlock_holmes/src/file-5.08/magic/magic.mgc"
SetEnv PATH "/opt/gitlab-7.8.1-0/Python/bin:${PATH}"
PassengerPreStart http://127.0.0.1:80/gitlab
不同之处在于:
SetEnv RAILS_RELATIVE_URL_ROOT "/gitlab"
PassengerPreStart http://127.0.0.1:80/gitlab
4.5 config.yml
...
gitlab_url: http://pepstack.com:80/gitlab/
...
这样我们访问gitlab就是按照下面的地址:
http://pepstack.com/gitlab/
5 主机nginx配置
上面的配置都是在vm-gitlab上进行的,注意打开80:http端口。下面要给主机nginx增加配置,配置文件:
/etc/nginx/conf.d/redmine.conf
内容如下(我同时还提供了redmine服务):
# 指向内网redmine的web服务(192.168.122.21:80)
#
upstream redmine {
server 192.168.122.21:80;
}
upstream gitlab {
server 192.168.122.20:80;
}
server {
server_name pepstack.com;
# /var/log/nginx 本地目录必须存在
access_log /var/log/nginx/redmine_access.log;
error_log /var/log/nginx/redmine_error.log;
location /redmine {
try_files $uri @red; # @red 名字是任意的
}
location /gitlab {
try_files $uri @git;
}
location @red {
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_pass http://redmine; # 指向 upstream redmine
}
location @git {
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_pass http://gitlab; # 指向 upstream gitlab
}
}
即注释掉:include /etc/nginx/sites-enabled/*;
6 启动服务
大功告成,在主机启动nginx:
$ sudo nginx -s reload
在vm-gitlab启动gitlab:
# cd /opt/gitlab-7.8.1-0/
# ./ctlscript.sh restart
GitLab 的详细介绍:请点这里
GitLab 的下载地址:请点这里
linux内网安装git,一键安装GitLab7在RHEL6.4上相关推荐
- 内网穿透工具NPS安装使用
摘要:在内网部署的 gitlab 同事在出差的时候,导致无法使用,继而重新回到以前使用的 马云gitee 上面.这里记录一下通过 nps 将gitlab 映射到公网,使其可以直接访问. 相关文章 内网 ...
- CentOS7内网使用rpm方式安装MySQL5.6数据库
CentOS7内网使用rpm方式安装MySQL5.6数据库 生成环境为内网环境,无法通过互联网使用Yum方式安装MySQL数据库时,可以参考本文进行安装. 系统环境 当前演示操作系统为最小化安装的Ce ...
- CISCO内网客户端软件anyconnect-win安装下载
❤️CISCO内网客户端软件anyconnect-win安装下载 功能作用:用来连接内网
- 内网服务器使用docker安装应用
备注:本文在内网服务器上安装 redis.elasticsearch.kibana 1.在可以连接外网的机器上操作: (1)使用 docker pull 命令拉取需安装应用的 docker 镜像 在d ...
- linux内网机器访问外网代理设置squid
linux内网机器访问外网代理设置squid 公司一般出于安全考虑, 在同一局域网中只有一台机器可以访问外网,运维进行了整体的限制, 但是在后面的工作中,需要在机器上安装一些软件,及命令,所以其他的机 ...
- linux 内网环境搭建 maven 私库
linux 内网环境搭建 maven 私库 参考资料: https://www.codenong.com/cs106446840/ https://blog.csdn.net/lch_wyl/arti ...
- 记录一次linux内网完整渗透测试
21年六月中做完的项目文章,流程概览 信息发现与收集 寻找网域内主机目标 注意,web机每关机开机一次都要重新启动php5.3 kali机中命令(在10的网域内寻找) nmap -sn 192.168 ...
- 在Linux内网搭建K8s集群
文章目录 前言 准备工作 安装步骤 设置主机名 配置系统环境 添加 hosts(主) Docker安装 K8s组件安装 集群初始化(主) 工作节点加入集群(工) 安装容器网络插件(主) 测试 等待集群 ...
- Linux内网服务器实现外网登陆
方法原理:利用ssh服务进行端口转发,把内外的服务器端口映射到外网服务器的端口上,通过连接外网服务器指定端口来访问内网服务器. 应用场景: 1.假如你做了一个平台应用,但不想部署到外网平台,但是需要外 ...
最新文章
- Window10安装pycocotools
- Java取当前时间,深夜思考
- 浅谈RSocket与响应式编程
- Mysql经常使用命令
- 33 windows_33_Proc_windows_job 进程,windows作业
- 又撞了!特斯拉司机自动驾驶中看电影 直接撞向警车:画面太囧了
- 《信息可视化:交互设计(原书第2版)》——1.1节可视化
- Android学习笔记---15_采用Pull解析器解析和生成XML内容
- 破旧立新 “云”称霸
- 买手机时怎么判断手机性能?
- Doug Lea 在 J.U.C 包里面写的 BUG 又被网友发现了......
- 数据通过蓝牙传输中...70.46k/s
- yum安装Jenkins
- A useful link to learn PDF
- java用switch语句抽奖_Java使用带有switch语句的枚举
- 软件能力成熟度模型(CMMI)
- Java体检系统名称_求购体检中心管理系统JAVA WEB源码
- SVCHOST启动服务实战
- WinPE安装64位Win7的方法
- 深度学习第一章(rnn)
热门文章
- ubuntu16.04编译安装c++ opencv与vscode配置debug
- React Native实例之房产搜索APP
- Dom4j完整教程~Document对象相关
- php伪静态不支持中文,wordpress伪静态如何支持中文(目前不支持分类目录中文)...
- c++全局类对象_C++ 类在内存中的存储方式(一)
- 亚马逊S3文件存储的可视化
- AI应用开发基础傻瓜书系列3-损失函数
- jdbc mysql myeclipse_关于JDBC连接MySQL的问题,我一直解决不了(Myeclipse 环境下)
- android 全局hook_【Hook】实现无清单启动Activity
- group by 去重_【小学英语口语】07I have to pee. 我要去尿尿