多语言展示
当前在线:1186今日阅读:23今日分享:31

在 vagrant debian8 lnmp 环境下 安装 gitlab

今天在局域网内利用vagrant搭建了debian8的测试服务器,安装了lnmp1.4作为测试环境,索性就把gitlab-ce也搭建起来并且成功了。期间遇到了几个问题,在这里做下记录,并且分享给大家,如果用就拿去,如果您按照此流程配置失败了,勿喷。vagrant及lnmp的安装配置就不在这里做说明了,百度搜索或官网都有详细介绍。
工具/原料
1

vagrant

2

lnmp1.4

3

gitlab10.0.3

gitlab安装
1

在安装gitlab之前请编辑vagrant的配置文件Vagrantfile,设置虚拟机内存为2048M以上。config.vm.provider 'virtualbox' do |vb|    # Display the VirtualBox GUI when booting the machine    # vb.gui = true    #   # Customize the amount of memory on the VM:    vb.memory = '4096' end保存修改后,使用vagrant reload 重新启动虚拟机。因为gitlab要求的内存分配不能小于2048M,否则会报 502 Whoops, GitLab is taking too much time to respond.

2

使用vagrant up命令启动虚拟机,之后输入sudo apt-get update 更新软件源sudo apt-get dist-upgrade 更新所有的软件如果存在不想更新的包,使用以下命令添加当前版本锁定,拿gitlab-ce举例:sudo echo 'gitlab-ce hold' | sudo dpkg --set-selections

3

开始安装gitlab1、安装配置依赖:sudo apt-get install -y curl openssh-server ca-certificates2、安装并配置邮件发送服务:sudo apt-get install -y postfix注意:这里在弹出的界面选择OK,第二个弹出界面选择Internet Site,第三个里面填写System Emai name根据自己的实际情况填写,我做测试填写的是vgt-gitlab3、添加gitlab包库并安装:sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bashsudo apt-get install gitlab-ee4、配置并启动gitlab:sudo Configure and start GitLab到这里gitlab已经安装完毕,但是本机已经安装了nginx,不想使用gitlab内置的nginx,那么请参考下面步骤:

配置gitlab使用本机lnmp的nginx
1

编辑gitlab配置文件,debian中默认位于在/etc/gitlab/gitlab.rb:修改external_url = 'http://gitlab.vgt.com' // nginx 中配置的站点域名

2

添加nginx['enable'] = false //禁用内置nginx

3

去掉web_server['external_users']前的注释并设置值为['www-data'] //我本地环境为lnmp,所以填写为www

4

修改:gitlab_workhorse['listen_network'] = 'tcp'gitlab_workhorse['listen_addr'] = '127.0.0.1:8090'//此处ip与端口在nginx中要用到

5

添加git_data_dirs({ 'default' => { 'path' => '/home/gitlab/git-data' } }) //修改gitlab默认的文件存储位置,gitlab默认的位置是:/var/opt/gitlab/git-data

6

以上修改后要执行gitlab-ctl reconfigure来重新加载配置,过程中我还用到了一下几个命令:1、gitlab-ctl restart2、gitlab-ctl start3、gitlab-ctl status

nginx配置
1

从gitlab官方下载nginx配置文档到/usr/local/nginx/conf/vhost/目录下网址:https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/nginx

2

在/usr/local/nginx/conf/vhost/目录下创建gitlab.conf文件,把从gitlab官网获取到的conf文件的内容粘贴进去,并做如下修改:1、listen 0.0.0.0:80 default_server;视情况去掉default_server2、server_name:gitlab.vgt.com3、proxy_pass http://gitlab-workhorse; 修改为gitlab.rb文件中配置的listen_addr的值proxy_pass http://127.0.0.1:80904、access_log  /var/log/nginx/gitlab_access.log;error_log   /var/log/nginx/gitlab_error.log;//需要手动创建log文件下面给出完整配置文件截图:

3

配置完成后,需要重启nginx:lnmp nginx restart。重启后并不能访问成功,需要开放8090端口,我直接开放了8080:8099端口vi /etc/iptables.ruls添加 -A INPUT -p tcp -m tcp --dport 8080:8099 -j ACCEPT保存退出后,使用iptables-restore /etc/iptables 把规则导入至iptables中,并让他生效。注:想让iptables添加的规则在服务器重启后也生效的方法是:vi /etc/network/if-pre-up.d/iptables添加:iptables-restore < /etc/iptables.rules到此已经配置完了,输入以下命令已确认所有所需服务及配置以正确启动或加载lnmp nginx restartgitlab-ctl stopgitlab-ctl reconfiguregitlab-ctl start本机为windows10,host文件增加:#gitlab.vgt.com start192.168.5.112   gitlab.vgt.com#gitlab.vgt.com end在浏览器里输入:gitlab.vgt.com,出现了熟悉的界面。(至此已经安装配置好了两台服务器,一台局域网的,一台阿里云的,不过都是debian8。本文使用的是gitlab-ce,gitlab-ee也适用,因为刚开始没注意直接从官网复制命令安装了ee版)

常用命令

Command line instructionsGit global setupgit config --global user.name 'xxx'git config --global user.email 'xxx@xxx.xxx'Create a new repositorygit clone git@gitlab.vgt.com:goodhoe/vuetest.gitcd vuetesttouch README.mdgit add README.mdgit commit -m 'add README'git push -u origin masterExisting foldercd existing_foldergit initgit remote add origin git@gitlab.vgt.com:goodhoe/vuetest.gitgit add .git commit -m 'Initial commit'git push -u origin masterExisting Git repositorycd existing_repogit remote add origin git@gitlab.vgt.com:goodhoe/vuetest.gitgit push -u origin --allgit push -u origin --tags--------------------------------------------------------------------------------cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 查看gitlab版本cat /var/opt/gitlab/gitlab-rails/etc/database.yml 查看gitlab数据库文件--------------------------------------------------------------------------------lsof -i :22 知道22端口被哪个进程占用chown -R www:www dd 修改文件或目录的所有者和用户组usermod -a -G apache cnzhx 将一个已有用户增加到一个已有用户组中 -a表示不离开原有组usermod -g apache cnzhx 修改用户组gpasswd -d user group 将用户从group中去除

注意事项
1

gitlab.rb配置文件中的lister_addr要与nginx.conf中的proxy_pass保持一致,除了http://

2

gitlab.rb配置文件中的external_url要与nginx.conf中的server_name保持一致,除了http://

3

gitlab.rb配置文件中的external_users要与nginx用户保持一致,debian中默认为www-data,lnmp默认为www,centos默认为nginx

4

配置iptables开放相应端口

推荐信息