安装部署gitlab ci
一.环境
系统 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相关推荐
- gitlab介绍、安装及gitlab CI、与jenkins的对比
gitlab介绍.安装及gitlab CI.与jenkins的对比
- centos7安装部署gitlab
参考文章:centos7部署gitlab - 星尘yuan - 博客园 一.Gitlab介 1.1 gitlab信息 GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管 ...
- 使用 Docker 部署 GitLab CI Runner
点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~ 一.背景 当项目比较少,或者更新不频繁的时候(或者技术比较菜的时候),手动部署部署还能够接受,但是一旦部署次数频繁了,手动操作就是 ...
- 安装部署gitlab服务器以常见问题解决
GItlab的安装 我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 yum -y install policycoreutils openssh-s ...
- Python3 - Docker 安装部署Gitlab代码托管教程
文章目录 前言 一.安装Gitlab 1.搜索gitlab-ce-zh 2.下载影像 3.启动Git服务 4.查看Gitlab是否已经启动 二.配置Gitlab 1.首先,先进入容器 2.修改gitl ...
- docker安装gitlab_docker 安装部署gitlab
下载镜像并且启动 //下载镜像(镜像较大,如果网速不行可以切换阿里云镜像仓库) docker pull gitlab/gitlab-ce:latest //启动镜像 docker run --name ...
- GitLab CI/CD 自动化部署全流程
CI/CD简介 CI/CD 是一种持续开发软件的方法,侧重于软件开发过程中的自动化,可以不断地进行构建.测试和部署代码.使用这种方法,从新代码开发到部署,可以减少人工干预甚至不用干预 CI(Conti ...
- 14.Flink1.11 安装部署及Release 文档解读
Flink1.11 安装部署及Release 文档解读 1. [Flink 1.11 Release 文档解读](https://ci.apache.org/projects/flink/flink- ...
- CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Jenkins安装(二)
大家好,我是SuieKa,本博文以学习笔记为主,此时此刻我已按捺不住自己的心情将学习搬运到博客上 上手之前,习惯性的多逼逼知识点,尽管各路大神都已经了如指掌了哈哈哈 目录 什么是Jenkins? 安装 ...
最新文章
- Vue的组件为什么要export default
- python并发编程之多线程理论部分
- 史蒂夫·乔布斯很懂团队建设
- java 带点的字符串处理,关于android:java中字符串上带点的分割函数
- 四、WebApp 基础可视组件(IVX 快速开发教程)
- MATALB(三)绘图命令
- arm shellcode 编写详析2
- BugkuCTF-MISC题贝斯手
- 360全景倒车影像怎么看_别克关怀-后视镜和倒车影像 倒车时到底看哪个
- java更新新的知识要怎么知道_晟司小蒙告诉你,Java技术知识点,不定时更新!!!...
- 缓存世界中的三大问题及解决方案
- python 哪些比赛项目_python能做什么项目
- Nginx 常见面试题
- idea mysql做登录界面_IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能...
- 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符go时,第一个只出现一次的字符是g。当从该字符流中读出前六个字符“google时,,,(C++实现)
- LVGL v8.1.0 lv_table 内存泄漏问题
- win10初始化这台电脑——找不到恢复环境
- 自从知道这4个带货方法后,在也不怕抖音带货没流量
- pyinstaller 打包exe启动慢的问题
- 数理统计——AQI分析
热门文章
- 创建者模式 builder
- windows server 2012 R2 standard 评估版过期重启
- 单招计算机英语面试口语,单招面试英语自我介绍范文 自我介绍说什么
- mysql+nest+嵌套事务_MySQL——事务
- 学生信息管理系统的价值PHP,php技术对学生管理系统实现的价值研究
- linux 多个select,Linux select()和多个套接字的FIFO排序?
- php中常用的运算符和表达式有哪几种,php 运算符与表达式详细介绍
- root 授予oracle权限,oracle – 列出具有root(管理)权限的用户
- matlab畸变校正代码_关于OpenCV中的去畸变
- 混合App开发,HBuilder开发移动App