一.环境

系统    CentOS 6.4x64

二.安装依赖包

#添加epel源
[root@gitlab-ci ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@gitlab-ci ~]# sed -i 's@#b@b@g' /etc/yum.repos.d/epel.repo
[root@gitlab-ci ~]# sed  -i 's@mirrorlist@#mirrorlist@g' /etc/yum.repos.d/epel.repo#配置时间同步
[root@gitlab-ci ~]# echo "*/10 * * * * /usr/sbin/ntpdate asia.pool.ntp.org  &>/dev/null" >/var/spool/cron/root
[root@gitlab-ci ~]# yum groupinstall "Development Tools" -y
[root@gitlab-ci ~]# yum update && yum upgrade
[root@gitlab-ci ~]# yum install vim python wget curl git openssh-server -y
[root@gitlab-ci ~]# yum install sqlite sqlite-devel mysql mysql-libs mysql-devel -y
[root@gitlab-ci ~]# yum install ncurses-devel libcurl-devel libcurl patch  nodejs -y
[root@gitlab-ci ~]# yum install libxslt-devel libyaml-devel libxml2 libxml2-devel gdbm-devel libffi libffi-devel zlib zlib-devel openssl-devel readline readline-devel curl-devel openssl-devel pcre-devel memcached-devel valgrind-devel ImageMagick-devel ImageMagick libicu libicu-devel make bzip2 autoconf automake libtool bison redis libpq-devel libicu-devel postgresql-libs postgresql-devel -y
[root@gitlab-ci ~]# chkconfig redis on
[root@gitlab-ci ~]# chkconfig postfix on
[root@gitlab-ci ~]# service redis start
Starting redis-server:                                     [  OK  ]

三.安装配置mysql

这里使用脚本安装mysql,版本为事先下载好的mysql-5.5.37

脚本内容如下

[root@gitlab-ci ~]# cat install_mysql.sh
#!/bin/bashDATADIR='/data/mysql/data'
VERSION='mysql-5.5.37'
export LANG=zh_CN.UTF-8#Source function library.
. /etc/init.d/functions#camke install mysql5.5.X
install_mysql(){read -p "please input a password for root: " PASSWDif [ ! -d $DATADIR ];thenmkdir -p $DATADIRfiyum install cmake make gcc-c++ bison-devel ncurses-devel -yid mysql &>/dev/nullif [ $? -ne 0 ];thenuseradd mysql -s /sbin/nologin -Mfi#useradd mysql -s /sbin/nologin -M#change datadir owner to mysqlchown -R mysql.mysql $DATADIRcd#wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.38.tar.gztar xf $VERSION.tar.gzcd $VERSIONcmake . -DCMAKE_INSTALL_PREFIX=/usr/local/$VERSION \-DMYSQL_DATADIR=$DATADIR \-DMYSQL_UNIX_ADDR=$DATADIR/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DENABLED_LOCAL_INFILE=ON \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \-DWITHOUT_PARTITION_STORAGE_ENGINE=1make && make installif [ $? -ne 0 ];thenaction "install mysql is failed"  /bin/falseexit $?fisleep 2#linkln -s /usr/local/$VERSION/ /usr/local/mysqlln -s /usr/local/mysql/bin/* /usr/bin/#copy config and start file/bin/cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnfcp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchmod 700 /etc/init.d/mysqld#init mysql/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql --datadir=$DATADIR --user=mysqlif [ $? -ne 0 ];thenaction "install mysql is failed"  /bin/falseexit $?fi#check mysql/etc/init.d/mysqld startif [ $? -ne 0 ];thenaction "mysql start is failed"  /bin/falseexit $?fichkconfig --add mysqldchkconfig mysqld on/usr/local/mysql/bin/mysql -e "update mysql.user set password=password('$PASSWD') where host='localhost' and user='root';"/usr/local/mysql/bin/mysql -e "update mysql.user set password=password('$PASSWD') where host='127.0.0.1' and user='root';"/usr/local/mysql/bin/mysql -e "delete from mysql.user where password='';"/usr/local/mysql/bin/mysql -e "flush privileges;"#/usr/local/mysql/bin/mysql -e "select version();" >/dev/null 2>&1if [ $? -eq 0 ];thenecho "+---------------------------+"echo "+------mysql安装完成--------+"echo "+---------------------------+"fi#/etc/init.d/mysqld stop
}install_mysql

创建gitlab-ci相关数据库信息

mysql> CREATE DATABASE IF NOT EXISTS `gitlab_ci` DEFAULT CHARACTER SET `utf8`  COLLATE `utf8_unicode_ci`;
Query OK, 1 row affected (0.04 sec)#创建用户和密码
mysql> CREATE USER 'gitlab_ci'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)#赋予相关权限
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON gitlab_ci.* TO 'gitlab_ci'@'localhost';
Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

四.创建系统用户gitlab_ci

[root@gitlab-ci ~]# useradd gitlab_ci
[root@gitlab-ci ~]# passwd gitlab_ci
Changing password for user gitlab_ci.
New password:                 #这里设置密码为gitlab_ci
Retype new password:
passwd: all authentication tokens updated successfully.
[root@gitlab-ci ~]# chmod 755 /home/gitlab_ci

五.安装ruby

[root@gitlab-ci ~]# wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.2.0.tar.gz
[root@gitlab-ci ~]# tar xf ruby-2.2.0.tar.gz
[root@gitlab-ci ~]# cd ruby-2.2.0
[root@gitlab-ci ruby-2.2.0]# ./configure
[root@gitlab-ci ruby-2.2.0]# make && make install#安装bundler
[root@gitlab-ci ruby-2.2.0]# gem install bundler --no-doc
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org/quick/Marshal.4.8/bundler-1.10.6.gemspec.rz)#报错解决如下
[root@gitlab-ci ruby-2.2.0]# gem sources --remove https://rubygems.org/
https://rubygems.org/ removed from sources
[root@gitlab-ci ruby-2.2.0]# gem sources -a https://ruby.taobao.org/
https://ruby.taobao.org/ added to sources
[root@gitlab-ci ruby-2.2.0]# gem sources -l
*** CURRENT SOURCES ***https://ruby.taobao.org/#从新安装
[root@gitlab-ci ruby-2.2.0]# gem install bundler --no-doc

六.安装gitlab ci

#切换到gitlab_ci用户下,并进入到用户家目录
[root@gitlab-ci ruby-2.2.0]# su - gitlab_ci
[gitlab_ci@gitlab-ci ~]$ git clone https://gitlab.com/gitlab-org/gitlab-ci.git
[gitlab_ci@gitlab-ci ~]$ cd gitlab-ci/
[gitlab_ci@gitlab-ci gitlab-ci]$ git checkout 5-4-stable
[gitlab_ci@gitlab-ci gitlab-ci]$ mkdir -p tmp/pids
[gitlab_ci@gitlab-ci gitlab-ci]$ mkdir -p tmp/sockets
[gitlab_ci@gitlab-ci gitlab-ci]$ gem install bundler#报错如下
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org/quick/Marshal.4.8/bundler-1.10.6.gemspec.rz)#解决如下
[gitlab_ci@gitlab-ci gitlab-ci]$ gem sources --remove https://rubygems.org/
https://rubygems.org/ removed from sources
[gitlab_ci@gitlab-ci gitlab-ci]$ gem sources -a https://ruby.taobao.org/
https://ruby.taobao.org/ added to sources
[gitlab_ci@gitlab-ci gitlab-ci]$ gem sources -l
*** CURRENT SOURCES ***https://ruby.taobao.org/
[gitlab_ci@gitlab-ci gitlab-ci]$ gem install bundler
ERROR:  While executing gem ... (Gem::FilePermissionError)You don't have write permissions for the /usr/local/lib/ruby/gems/2.2.0 directory.#切换到root用户下修改权限
[root@gitlab-ci ~]# chmod -R 777 /usr/local/lib/ruby
[root@gitlab-ci ~]# chmod -R 777 /usr/local/bin#再次重新执行
[gitlab_ci@gitlab-ci gitlab-ci]$ gem install bundler
[gitlab_ci@gitlab-ci gitlab-ci]$ bundle --without development test
[gitlab_ci@gitlab-ci gitlab-ci]$ cp config/database.yml.mysql config/database.yml
[gitlab_ci@gitlab-ci gitlab-ci]$ vim config/database.yml
#修改内容如下
production:adapter: mysql2encoding: utf8reconnect: falsedatabase: gitlab_ci            #数据库名称pool: 5username: gitlab_ci            #数据库用户名password: "123456"             #密码host: localhostsocket: /data/mysql/data/mysql.sock        #这里指向mysql的socket文件,由于我修改过socket文件的位置,所以这个地方需要手动修改[gitlab_ci@gitlab-ci gitlab-ci]$ cp config/application.yml.example config/application.yml
[gitlab_ci@gitlab-ci gitlab-ci]$ cp config/unicorn.rb.example config/unicorn.rb
[gitlab_ci@gitlab-ci gitlab-ci]$ bundle exec rake db:setup RAILS_ENV=production
[gitlab_ci@gitlab-ci gitlab-ci]$ bundle exec whenever -w RAILS_ENV=production

七.配置gitlab_ci的服务启动脚本

#切换到root用户下,执行下面的命令
[root@gitlab-ci gitlab_ci]# cp /home/gitlab_ci/gitlab-ci/lib/support/init.d/gitlab_ci /etc/init.d/gitlab_ci
[root@gitlab-ci gitlab_ci]# chkconfig --add gitlab_ci
[root@gitlab-ci gitlab_ci]# chkconfig gitlab_ci on
[root@gitlab-ci gitlab_ci]# /etc/init.d/gitlab_ci start

八.安装配置nginx

[root@gitlab-ci gitlab_ci]# yum install nginx -y#复制站点配置文件
[root@gitlab-ci gitlab_ci]# cp  /home/gitlab_ci/gitlab-ci/lib/support/nginx/gitlab_ci /etc/nginx/conf.d/gitlab_ci.conf#修改gitlab_ci.conf配置文件如下
[root@gitlab-ci gitlab_ci]# cat /etc/nginx/conf.d/gitlab_ci.conf
# GITLAB CI
# Maintainer: @randx
# App Version: 2.0upstream gitlab_ci {server unix:/home/gitlab_ci/gitlab-ci/tmp/sockets/gitlab-ci.socket;
}server {listen 80 ;         # e.g., listen 192.168.1.1:80;server_name gitci.keluofu.com;     #修改这里    root /home/gitlab_ci/gitlab-ci/public;access_log  /var/log/nginx/gitlab_ci_access.log;error_log   /var/log/nginx/gitlab_ci_error.log;location / {try_files $uri $uri/index.html $uri.html @gitlab_ci;}location @gitlab_ci {proxy_read_timeout 300;proxy_connect_timeout 300;proxy_redirect     off;proxy_set_header   X-Forwarded-Proto $scheme;proxy_set_header   Host              $http_host;proxy_set_header   X-Real-IP         $remote_addr;proxy_pass http://gitlab_ci;}# adjust this to match the largest build log your runners might submit,# set to 0 to disable limitclient_max_body_size 10m;
}#测试nginx配置是否有误,并启动nginx
[root@gitlab-ci gitlab_ci]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@gitlab-ci gitlab_ci]# /etc/init.d/nginx start
Starting nginx:                                            [  OK  ]
[root@gitlab-ci gitlab_ci]# netstat -tunlp |grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      36894/nginx

转载于:https://blog.51cto.com/ly36843/1693196

安装部署gitlab ci相关推荐

  1. gitlab介绍、安装及gitlab CI、与jenkins的对比

    gitlab介绍.安装及gitlab CI.与jenkins的对比

  2. centos7安装部署gitlab

    参考文章:centos7部署gitlab - 星尘yuan - 博客园 一.Gitlab介 1.1 gitlab信息 GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管 ...

  3. 使用 Docker 部署 GitLab CI Runner

    点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~ 一.背景 当项目比较少,或者更新不频繁的时候(或者技术比较菜的时候),手动部署部署还能够接受,但是一旦部署次数频繁了,手动操作就是 ...

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

    GItlab的安装 我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 yum -y install policycoreutils openssh-s ...

  5. Python3 - Docker 安装部署Gitlab代码托管教程

    文章目录 前言 一.安装Gitlab 1.搜索gitlab-ce-zh 2.下载影像 3.启动Git服务 4.查看Gitlab是否已经启动 二.配置Gitlab 1.首先,先进入容器 2.修改gitl ...

  6. docker安装gitlab_docker 安装部署gitlab

    下载镜像并且启动 //下载镜像(镜像较大,如果网速不行可以切换阿里云镜像仓库) docker pull gitlab/gitlab-ce:latest //启动镜像 docker run --name ...

  7. GitLab CI/CD 自动化部署全流程

    CI/CD简介 CI/CD 是一种持续开发软件的方法,侧重于软件开发过程中的自动化,可以不断地进行构建.测试和部署代码.使用这种方法,从新代码开发到部署,可以减少人工干预甚至不用干预 CI(Conti ...

  8. 14.Flink1.11 安装部署及Release 文档解读

    Flink1.11 安装部署及Release 文档解读 1. [Flink 1.11 Release 文档解读](https://ci.apache.org/projects/flink/flink- ...

  9. CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Jenkins安装(二)

    大家好,我是SuieKa,本博文以学习笔记为主,此时此刻我已按捺不住自己的心情将学习搬运到博客上 上手之前,习惯性的多逼逼知识点,尽管各路大神都已经了如指掌了哈哈哈 目录 什么是Jenkins? 安装 ...

最新文章

  1. Vue的组件为什么要export default
  2. python并发编程之多线程理论部分
  3. 史蒂夫·乔布斯很懂团队建设
  4. java 带点的字符串处理,关于android:java中字符串上带点的分割函数
  5. 四、WebApp 基础可视组件(IVX 快速开发教程)
  6. MATALB(三)绘图命令
  7. arm shellcode 编写详析2
  8. BugkuCTF-MISC题贝斯手
  9. 360全景倒车影像怎么看_别克关怀-后视镜和倒车影像 倒车时到底看哪个
  10. java更新新的知识要怎么知道_晟司小蒙告诉你,Java技术知识点,不定时更新!!!...
  11. 缓存世界中的三大问题及解决方案
  12. python 哪些比赛项目_python能做什么项目
  13. Nginx 常见面试题
  14. idea mysql做登录界面_IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能...
  15. 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符go时,第一个只出现一次的字符是g。当从该字符流中读出前六个字符“google时,,,(C++实现)
  16. LVGL v8.1.0 lv_table 内存泄漏问题
  17. win10初始化这台电脑——找不到恢复环境
  18. 自从知道这4个带货方法后,在也不怕抖音带货没流量
  19. pyinstaller 打包exe启动慢的问题
  20. 数理统计——AQI分析

热门文章

  1. 创建者模式 builder
  2. windows server 2012 R2 standard 评估版过期重启
  3. 单招计算机英语面试口语,单招面试英语自我介绍范文 自我介绍说什么
  4. mysql+nest+嵌套事务_MySQL——事务
  5. 学生信息管理系统的价值PHP,php技术对学生管理系统实现的价值研究
  6. linux 多个select,Linux select()和多个套接字的FIFO排序?
  7. php中常用的运算符和表达式有哪几种,php 运算符与表达式详细介绍
  8. root 授予oracle权限,oracle – 列出具有root(管理)权限的用户
  9. matlab畸变校正代码_关于OpenCV中的去畸变
  10. 混合App开发,HBuilder开发移动App