gitlab 安装及部署

Gitlab 安装部署

GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用。

安装步骤

n升级系统并及关闭selinux和iptables

n安装Ruby

n创建项目运行用户(创建git账号,方便权限管理)

nGitLab Shell

n数据库(可以支持mysql和PostgreSQL,这里使用mysql)

nGitLab(版本:6.3.1)

nWeb服务器(可支持nginx和apache,这里使用nginx)

一、基础操作

1、升级系统

yum -y update

2、关闭selinux和iptables

# vi /etc/selinux/config  # 设置SELINUX=disabled

# setup                     #将Firewall 选项取消

3、增加EPEL安装源

# wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/0608B895.txt
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

检验下是否安装成功

# rpm -qa gpg*

安装epel-release-6-8.noarch包

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

4、增加PUIAS安装源

创建/etc/yum.repos.d/PUIAS_6_computational.repo,并添加如下内容:

[PUIAS_6_computational]
name=PUIAS computational Base $releasever - $basearch
mirrorlist=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch/mirrorlist
#baseurl=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puias

下载并安装GPG key

# wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-puias http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-pui

检测源

# yum repolist

5、安装GitLab的所需依赖包和工具

# su -
# yum -y groupinstall ‘Development Tools‘
# yum -y install vim-enhanced readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel gcc-c++ libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui python-devel redis sudo wget crontabs logwatch logrotate perl-Time-HiRes git

6、设置redis开机启动

# chkconfig redis on
# service redis start

二、安装Ruby

# mkdir /tmp/ruby && cd /tmp/ruby
# curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz | tar xz
# cd ruby-2.0.0-p353
# ./configure --prefix=/usr/local/
# make && make install

安装bundle

# gem install bundler --no-ri --no-rdoc

三、创建git系统用户

# adduser --system --shell /bin/bash --comment ‘GitLab‘ --create-home --home-dir /home/git/ git

四、配置GitLab shell

克隆gitlab shell

# su - git
$ git clone https://github.com/gitlabhq/gitlab-shell.git
$ cd gitlab-shell
$ git checkout v1.8.0                         #切换版本
$ cp config.yml.example config.yml
$ vi config.yml

gitlab_url修改成gitlab的访问域名。形如:http://test.gitlab.com/

如果gitlab是使用https访问,则需将http替换成https,配置文件中的self_signed_cert要修改成true,否则会出错。

安装

$ ./bin/install

五、安装Mysql数据库并设置开机启动

$ su -
$ yum install -y mysql-server mysql-devel
$ chkconfig mysqld on
$ service mysqld start

设置mysql root账号的密码

/usr/bin/mysql_secure_installation

创建新用户和数据库给gitlab使用

mysql> CREATE USER ‘gitlab‘@‘localhost‘ IDENTIFIED BY ‘gitlab账号的密码‘;
# 创建gitlaba使用的数据库
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
# 给予gitlab用户权限
mysql> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO ‘gitlab‘@‘localhost‘;

六、安装GitLab

$ su - git

克隆GitLab并切换分支到6-3-stable

$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab
$ cd /home/git/gitlab
$ git checkout 6-3-stable

配置

# 复制配置文件
$ cp config/gitlab.yml.example config/gitlab.yml

# 修改配置文件中的访问域名
(your_domain_name为项目的访问域名)
$ sed -i ‘s|localhost|your_domain_name|g‘ config/gitlab.yml

# 设定log和tmp目录所有者和权限
$ chown -R git log/
$ chown -R git tmp/
$ chmod -R u+rwX log/
$ chmod -R u+rwX tmp/

# 创建gitlab-satellites目录
$ mkdir /home/git/gitlab-satellites

# 创建tmp/pids/和tmp/sockets/目录,确保gitlab有相应的权限
$ mkdir tmp/pids/
$ mkdir tmp/sockets/
$ chmod -R u+rwX tmp/pids/
$ chmod -R u+rwX tmp/sockets/

# 创建public/uploads目录
$ mkdir public/uploads
$ chmod -R u+rwX public/uploads

# 复制unicorn配置
$ cp config/unicorn.rb.example config/unicorn.rb

# 编辑unicorn配置
(笔者这里采用默认配置)
$ vim config/unicorn.rb

# 配置git的用户和邮件
$ git config --global user.name "GitLab"
$ git config --global user.email "[email protected]_domain_name"
$ git config --global core.autocrlf input

配置数据库访问文件

$ cp config/database.yml.mysql config/database.yml

编辑config/database.yml,设置其中连接数据库的账号密码

#
# PRODUCTION
#
production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gitlabhq_production
  pool: 10
  username: gitlab
  password: "gitlab"
  # host: localhost
  # socket: /tmp/mysql.sock

修改其中username和password就可以了

确保该文件只有git账号有权限读取

$ chmod o-rwx config/database.yml

安装Gems

由于国外gem源访问非常慢,建议更换国内gem源。

#  vi Gemfile

编辑Gemfile文件,将gem源更换为ruby.taobao.org

#source"https://rubygems.org"

sourcehttp://ruby.taobao.org

修改Gemfile文件,将gem "modernizr", "2.6.2"修改为gem"modernizr-rails", "2.7.1"。

修改Gemfile.lock文件,将modernizr (2.6.2)修改为modernizr-rails (2.7.1)。
否则无法正确安装。

# gem install charlock_holmes --version ‘0.6.9.4‘

安装mysql包

$ cd /home/git/gitlab/
$ bundle install --deployment --without development test postgres puma aws

初始化数据

$ cd /home/git/gitlab
$ bundle exec rake gitlab:setup RAILS_ENV=production
$ bundle exec rake assets:precompile RAILS_ENV=production

这步完成后,会生一个默认的管理员账号:

[email protected]
5iveL!fe

安装启动脚本

$ su -
$ wget -O /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/master/init/sysvinit/centos/gitlab-unicorn
$ chmod +x /etc/init.d/gitlab
$ chkconfig --add gitlab

开机时启动

$ chkconfig gitlab on

检测应用程序状态

$ su - git
$ cd gitlab/
$ bundle exec rake gitlab:env:info RAILS_ENV=production
$ exit

可以查看到系统、Ruby、GitLab和GitLab Shell的版本和其他信息。

启动GitLab实例

$ service gitlab start

查看应用更加详细的信息

$ su - git
$ cd gitlab/
$ bundle exec rake gitlab:check RAILS_ENV=production

七、安装web服务器nginx

$ su -
$ yum -y install nginx
$ chkconfig nginx on
$ mkdir /etc/nginx/sites-available
$ mkdir /etc/nginx/sites-enabled
$ wget -O /etc/nginx/sites-available/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/master/web-server/nginx/gitlab-ssl
$ ln -sf /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab

编辑/etc/nginx/nginx.conf,将 include /etc/nginx/conf.d/*.conf; 替换成include /etc/nginx/sites-enabled/*;,就是修改额外加载的配置文件目录。

编辑/etc/nginx/sites-available/gitlab,将配置中server_name替换成实际访问的域名。

将nginx加入git用户组

$ usermod -a -G git nginx
$ chmod g+rx /home/git/

添加ssl证书或者自己生成一个

$ cd /etc/nginx
$ openssl req -new -x509 -nodes -days 3560 -out gitlab.crt -keyout gitlab.key

启动nginx

$ service nginx start

登录Gitlab 如下图所示:

rpm安装Gitlab

详情请查看官网:https://www.gitlab.com/downloads/

启动gitlab

# /opt/gitlab/bin/gitlab-ctl start
ok: run: nginx: (pid 2505) 0s
ok: run: postgresql: (pid 2509) 1s
ok: run: redis: (pid 2518) 0s
ok: run: sidekiq: (pid 2523) 1s

ok: run: unicorn: (pid 2528) 0s

参考文档

http://www.01happy.com/centos-6-5-install-gitlab/

http://www.it165.net/os/html/201405/8123.html

gitlab 安装及部署,布布扣,bubuko.com

时间: 2024-12-21 13:30:57

gitlab 安装及部署的相关文章

gitlab安装、配置与阿里云产品集成

https://www.ilanni.com/?p=12819 一.gitlab安装与部署 gitlab的安装可以分为源码安装和通过安装包进行安装,要是按照我以前的写作习惯的话,我也会把源码安装在本文章中提现,但是考虑到gitlab本身需要集成的软件比较多,所以在此我们选择的是通过安装包进行安装的. gitlab通过安装包安装很简单的,我们只需要下载对应的RPM包,进行安装即可. 因为本次实验的OS是centos7,所以我们直接从官网下载对应的RPM包即可,如下: https://www.git

Gitlab CI 自动部署 asp.net core web api 到Docker容器

为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成.监控报警.以及扩容和高可用性的问题.是学习和探索的过程分享给大家,也欢迎同行的人交流. 先来一个三步曲,我们将完成通过GitLab CI 自动部署 net core web api 到Docker 容器的一个示例.这是第一步,通过此文您将了解如何将net core web api 运行在Docker

使用GitLab CI + Capistrano部署CakePHP应用程序

使用 GitLab CI + Capistrano 部署 CakePHP 应用程序 摘要:本文描述了如使用GitLab CI + Capistrano部署CakePHP应用程序. 目录 1. 问题2. 解决方法3. 安装GitLab CI Runner4. 安装和配置Capistrano    4.1 安装Ruby    4.2 安装Capistrano    4.3 在项目中配置Capistrano    4.4 用户的验证和授权    4.5 其它工具和设置5. 部署6. 小结A. 参考资料

Jenkins+Gitlab+Ansible自动化部署(六)

Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs.com/zd520pyx1314/p/10249094.html) 环境准备 编写ansible playbook脚本实现Wordpress远程部署 将wordpress源码与playbook部署脚本提交到gitlab仓库 编写pipeline job脚本实现Jenkins流水线持续交付流程 Jen

gitlab,gitlab runner自动化部署docker容器

一 .基础概念 软件开发中经常持续集成,持续交付,持续部署这三个概念到底是什么意思? 持续集成: 持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干并进程自动化测试 持续交付: 持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境 持续部署: 在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的 二.自动化部署流程 第一步:开发人员将代码上传到代码仓库,gitlab 根据gitlab-ci.yml中的命令,触发ci

gitlab 安装、备份与还原及常见设置

gitlab 安装.备份与还原及常见设置 安装 安装过程比较简单,跑在 docker 上,执行命令即可 -v参数后面的值为卷的名称,自动创建数据卷(如果数据卷不存在) https://docs.gitlab.com/omnibus/docker/ docker run --hostname gitlab.example.com --restart always --name 'gitlab' -d -p 443:443 -p 80:80 -p 22:22 -v gitlab_config:/et

gitlab安装与使用

1.1 gitlab安装(192.168.56.12中安装) 1.GitLab是什么? 1. GitLab实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. 2. GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释. 3. 可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库. 4. 它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找 2.gitlab安装 '''1. 初始化环境 ''' [[emai

持续集成之Gitlab安装与应用

Gitlab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过Web 界面进行访问公开的或者私人的项目 Gitlab 拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释.可以管理团队对仓库的访问,他非常易于浏览提交过的版本并提供一个文件历史库.他还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找 一.环境准备如果是测试环境,其内存建议2G及以上,可以去清华开源镜像站下载所需gitlab版本,其安装后,会

[原创]HBase学习笔记(1)-安装和部署

HBase安装和部署 使用的HBase版本是1.2.4 1.安装步骤(默认hdfs已安装好) # 下载并解压安装包 cd tools/ tar -zxf hbase-1.2.4-bin.tar.gz   # 重命名为hbase mv hbase-1.2.4 hbase # 将hadoop目录下的hdfs-site.xml 和 core-stie.xml拷贝到 hbase下的conf 目录中 cd /home/work/tools/hbase/conf cp /home/work/tools/ha