天天看点

Centos6.8安装Gitlab7.6概述

本帖针对Centos6/REHL6系统

Gitlab的安装过程主要包括以下组件的配置:

关闭selinux

安装软件包及版本要求

Ubuntu/Debian/CentOS/RHEL**

ruby 2.0+

git 1.7.10+

redis 2.0+

MySQL or PostgreSQL

添加EPEL源:

<code>wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://mirrors.tuna.tsinghua.edu.cn/epel/RPM-GPG-KEY-EPEL-6</code>

<code>rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6</code>

<code># 安装`epel-release-latest-6.noarch.rpm`包,启用EPEL</code>

<code>rpm -Uvh http://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm</code>

<code>yum groupinstall "Development tools"</code>

<code>yum install autoconf automake bison build-essential byacc checkinstall cmake cpio crontabs curl curl-devel db4-devel expat-devel gcc-c++ gdbm-devel gettext gettext-devel glibc-devel libcurl4-openssl-dev libexpat1-dev libffi libffi-dev libffi-devel libgdbm-dev libicu libicu-dev libicu-devel libkrb5-dev libncurses5-dev libreadline-dev libssl-dev libtool libxml2 libxml2-dev libxml2-devel libxslt libxslt-dev libxslt-devel libyaml libyaml-dev libyaml-devel libz-dev logrotate logwatch make ncurses-devel openssh-server openssl-devel patch pcre-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-Time-HiRes pkg-config postfix python-devel python-docutils readline readline-devel sqlite-devel sudo system-config-firewall-tui tcl-devel vim wget zlib1g-dev zlib-devel</code>

安装git

如果已经用yum安装过git,要先卸载掉旧的版本

<code>yum remove git</code>

使用源码编译安装git

<code>mkdir /tmp/git &amp;&amp; cd /tmp/git</code>

<code>curl -O --progress https://www.kernel.org/pub/software/scm/git/git-2.8.5.tar.gz</code>

<code>tar zxvf git-2.8.5.tar.gz</code>

<code>cd git-2.8.5</code>

<code>./configure</code>

<code>make prefix=/usr/local all</code>

<code># 安装到/usr/local/bin</code>

<code>sudo make prefix=/usr/local install</code>

<code># 验证git版本号</code>

<code>git --version</code>

<code>#创建软连接</code>

<code>ln -s /usr/local/bin/git /usr/bin/git</code>

我们添加一个用来管理运行Gitlab的用户<code>git</code>

<code>adduser --system --shell /bin/bash --comment 'GitLab' --create-home --home-dir /home/git/ git</code>

<code># 修改git用户的环境变量PATH,以root用户运行</code>

<code>visudo</code>

<code># 找到下面一行</code>

<code>Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin</code>

<code>#修改为</code>

<code>Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin</code>

在Gitlab生产环境使用Ruby版本管理工具RVM,rbenv或者chruby常常会带来很多疑难杂症.比如Gitlab-shell版本管理器调用OpenSSH的功能以防止越过ssh对仓库进行pull和push操作.而前面提到的三个版本管理器不支持这样的功能,所以我们强烈建议大家按照下面的方式来安装Ruby.

Note: The current supported Ruby (MRI) version is 2.3.x. GitLab 9.0 dropped

support for Ruby 2.1.x.

如果系统上存在旧的Ruby1.8,先删除掉:

<code>yum remove ruby</code>

下载Ruby源码,编译安装:

<code>mkdir /tmp/ruby &amp;&amp; cd /tmp/ruby</code>

<code># 这里替换官方文档的下载地址为mirrors.ustc.edu.cn提供的镜像地址</code>

<code>curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz</code>

<code>tar zxvf ruby-2.1.5.tar.gz</code>

<code>cd ruby-2.1.5</code>

<code>./configure --disable-install-rdoc</code>

<code>make</code>

<code>sudo make install</code>

<code>安装完成后,重新登录终端确保$PATH生效,检测ruby的安装成功与否:</code>

<code>ruby -v</code>

<code>ln -s /usr/local/bin/ruby /usr/bin/ruby</code>

国内使用Ruby的Gem和Bundler必须要做的事情:

<code># 修改git用户gem安装源为淘宝</code>

<code>gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/  </code>

<code># 确保git用户当前gems源为淘宝</code>

<code>gem sources -l</code>

<code>*** CURRENT SOURCES ***</code>

<code> </code> 

<code>备:gems源中科大: https://gems.ruby-china.org/</code>

安装bundle包(root用户)

<code>sudo gem install bundler --no-ri --no-rdoc</code>

安装mysql数据库,设置数据库管理员密码

<code>#下载yum仓库文件:</code>

<code>wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm</code>

<code>#下载完成后将Yum库导入到你的本地:</code>

<code>sudo yum localinstall mysql-community-release-el6-*.noarch.rpm   </code>

<code>#安装MySQLServer:</code>

<code>yum install mysql-server mysql-devel mysql-client libmysqlclient-dev</code>

<code>#启动mysql服务</code>

<code>/etc/init.d/mysqld start</code>

<code>#MySQL安全配置向导</code>

<code>mysql_secure_installation    </code>

<code>---------------------------------------------------------------------------------</code>

<code>  </code><code>Enter current password for root (enter for none):  &lt;–初次运行直接回车</code>

<code>  </code><code>Set root password? [Y/n]   &lt;– 是否设置root用户密码,输入y并回车或直接回车</code>

<code>  </code><code>Remove anonymous users? [Y/n]   &lt;– 是否删除匿名用户,生产环境建议删除,所以直接回车</code>

<code>  </code><code>Disallow root login remotely? [Y/n]  &lt;–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止</code>

<code>  </code><code>Remove test database and access to it? [Y/n]   &lt;– 是否删除test数据库,直接回车</code>

<code>  </code><code>Reload privilege tables now? [Y/n]   &lt;– 是否重新加载权限表,直接回车</code>

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

<code># 登录数据库</code>

<code>$ mysql -u root -p</code>

<code># 输入root密码</code>

<code># 为gitlab创建使用用户</code>

<code>mysql&gt; CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab账号的密码';</code>

<code># 创建gitlaba使用的数据库</code>

<code>mysql&gt; CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;</code>

<code># 给予gitlab用户权限</code>

<code>mysql&gt; GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'git'@'localhost' IDENTIFIED BY 'gitpasswd';</code>

<code># 刷新权限</code>

<code>mysql&gt; flush privileges;</code>

<code># 查看创建的用户</code>

<code>mysql&gt; select user,host,password from mysql.user;</code>

<code>#测试新建的用户能否登陆mysql</code>

<code>mysql -u git -p -h localhost</code>

<code>mysql&gt; show databases;</code>

<code>+---------------------+</code>

<code>| Database            |</code>

<code>| information_schema  |</code>

<code>| gitlabhq_production |</code>

<code>2 rows in set (0.00 sec)</code>

配置postgresql安装源:

<a href="https://wiki.postgresql.org/wiki/YUM_Installation#Configure_your_YUM_repository" target="_blank">https://wiki.postgresql.org/wiki/YUM_Installation#Configure_your_YUM_repository</a>

<code># 修改/etc/yum.repos.d/CentOS-Base.repo,在[base]和[update]段落添加下面的配置</code>

<code>exclude=postgresql*</code>

<code># 安装postgresql源</code>

<code>yum localinstall http://mirrors.ustc.edu.cn/postgresql/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-3.noarch.rpm</code>

<code>#yum localinstall http://mirrors.ustc.edu.cn/postgresql/repos/yum/9.2/redhat/rhel-6-x86_64/pgdg-redhat92-9.2-8.noarch.rpm</code>

<code># 安装postgresql</code>

<code>yum install postgresql95-server postgresql95-devel postgresql95-contrib</code>

<code># 默认情况下,postgresql的数据库文件存放在</code>

<code>/var/lib/pgsql/9.5/data</code>

<code># 初始化</code>

<code>mv /etc/init.d/{postgresql-9.5,postgresql}</code>

<code>service postgresql initdb</code>

<code># 启动postgresql</code>

<code>service postgresql start</code>

<code># 配置postgresql自启动</code>

<code>chkconfig postgresql on</code>

<code># 为Gitlab创建一个用户,用户名为git</code>

<code>cd /home</code>

<code>sudo -u postgres psql -d template1 -c "CREATE USER git CREATEDB;"</code>

<code>#创建pg_trgm扩展 (required for GitLab 8.6+):</code>

<code>sudo -u postgres psql -d template1 -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;"</code>

<code># 创建Gitlab生产环境数据库并赋予git用户属主权限</code>

<code>sudo -u postgres psql -d template1 -c "CREATE DATABASE gitlabhq_production OWNER git;"</code>

<code># 用git用户测试下是否能登录刚才创建的数据库</code>

<code>sudo -u git -H psql -d gitlabhq_production</code>

<code>#检查是否启用 pg_trgm 扩展:</code>

<code>SELECT true AS enabled</code>

<code>FROM pg_available_extensions</code>

<code>WHERE name = 'pg_trgm'</code>

<code>AND installed_version IS NOT NULL;</code>

<code>如果启用了扩展,这将产生以下输出:</code>

<code> </code><code>enabled</code>

<code>---------</code>

<code> </code><code>t</code>

<code>(1 row)</code>

<code># 退出数据库会话</code>

<code>gitlabhq_production&gt; \q</code>

<code># 创建pg_config的软连接</code>

<code>ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_config</code>

<code>#此处redis是yum安装,为了省事。</code>

<code>yum install -y redis</code>

<code># Disable Redis listening on TCP by setting 'port' to 0</code>

<code>sed 's/^port .*/port 0/' /etc/redis/redis.conf.orig | sudo tee /etc/redis/redis.conf</code>

<code>#添加redis.sock文件信息</code>

<code>echo 'unixsocket /var/run/redis/redis.sock' |tee -a /etc/redis.conf</code>

<code>echo -e 'unixsocketperm 0770' |tee -a /etc/redis.conf</code>

<code>#创建文件并赋予权限</code>

<code>mkdir  -p /var/run/redis</code>

<code>sudo chown redis:redis /var/run/redis</code>

<code>sudo chmod 755 /var/run/redis</code>

<code># Persist the directory which contains the socket, if applicable</code>

<code>if [ -d /etc/tmpfiles.d ]; then</code>

<code>   </code><code>echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf</code>

<code>fi</code>

<code>#将redis用户添加到git组</code>

<code>sudo usermod -aG redis git</code>

<code>#配置redis使其在开机时启动:</code>

<code>sudo chkconfig redis on</code>

<code>sudo service redis start</code>

<code>#将GitLab安装在git的家目录下:</code>

<code>cd /home/git/</code>

<code>sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-6-stable gitlab</code>

<code>cd /home/git/gitlab</code>

<code># 复制gitlab.yml(Gitlab的主配置文件)</code>

<code>sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml</code>

<code># 修改gitlab.yml</code>

<code>sudo -u git -H vim config/gitlab.yml</code>

<code>    </code><code>host: localhost为 ####修改第32行 你的域名或者ip</code>

<code>    </code><code>port: 80</code>

<code>    </code><code>https: false</code>

<code># 修改 log/ 和 tmp/ 文件夹权限</code>

<code>sudo chown -R git log/</code>

<code>sudo chown -R git tmp/</code>

<code>sudo chmod -R u+rwX,go-w log/</code>

<code>sudo chmod -R u+rwX tmp/</code>

<code>#创建文件夹gitlab-satellites</code>

<code>sudo -u git -H mkdir /home/git/gitlab-satellites</code>

<code>sudo chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites</code>

<code># 修改 tmp/pids/ 和 tmp/sockets/ 文件夹权限</code>

<code>sudo chmod -R u+rwX tmp/pids/</code>

<code>sudo chmod -R u+rwX tmp/sockets/</code>

<code># 创建 public/uploads/ 文件夹</code>

<code>sudo -u git -H mkdir public/uploads/</code>

<code># 修改 public/uploads/ 文件夹权限,只有git用户有访问权限</code>

<code>sudo chmod -R u+rwX  public/uploads</code>

<code># 复制 Unicorn 配置文件</code>

<code>sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb</code>

<code># 查询CPU核心数</code>

<code>nproc</code>

<code># 如果你想搭建一个高负载的Gitlab实例,可启用集群模式.</code>

<code># 修改'worker_processes'参数,至少要跟cpu核心数一样.</code>

<code># 修改监听地址和端口,要和下文 gitlab-shell/config.yml 中配置一致</code>

<code>sudo -u git -H vim config/unicorn.rb</code>

<code>    </code><code>worker_processes 3</code>

<code>    </code><code>listen "your_IP:8080", :tcp_nopush =&gt; true</code>

<code># 复制Rack attack 配置文件</code>

<code>sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb</code>

<code># 为 git 用户配置用户和邮件</code>

<code>sudo -u git -H git config --global user.name "GitLab"</code>

<code>sudo -u git -H git config --global user.email "[email protected]"    </code>

<code>  </code> 

<code># 'autocrlf' 需要Web编辑器</code>

<code>sudo -u git -H git config --global core.autocrlf input</code>

<code># 复制 Redis 连接配置文件</code>

<code>sudo -u git -H cp config/resque.yml.example config/resque.yml</code>

<code># 如修改过redis socket的路径,在这个配置文件里面修改,确认redis端口和ip.</code>

<code>sudo -u git -H vim config/resque.yml</code>

<code>-------------------------------------</code>

<code>development: redis://127.0.0.1:6379</code>

<code>test: redis://127.0.0.1:6379</code>

<code>production: unix:/var/run/redis/redis.sock</code>

<code># 仅限于Mysql:</code>

<code>sudo -u git cp config/database.yml.mysql config/database.yml</code>

<code># 仅限于PostgreSQl:</code>

<code>sudo -u git cp config/database.yml.postgresql config/database.yml</code>

<code># 以下修改针对MySQL,修改username/password.</code>

<code>sudo -u git -H vim config/database.yml</code>

<code>production:</code>

<code>  </code><code>adapter: mysql2</code>

<code>  </code><code>encoding: utf8</code>

<code>  </code><code>collation: utf8_general_ci</code>

<code>  </code><code>reconnect: false</code>

<code>  </code><code>database: gitlabhq_production</code>

<code>  </code><code>pool: 10</code>

<code>  </code><code>username: git</code>

<code>  </code><code>password: "gitpasswd"</code>

<code>  </code><code># host: localhost</code>

<code>  </code><code># socket: /tmp/mysql.sock</code>

<code>  </code><code>socket: /var/lib/mysql/mysql.sock</code>

<code># 以下修改针对PostgreSQL,修改username/password.</code>

<code># 修改'secure password' 为你设置的密码,没单独设置则不改 </code>

<code>  </code><code>adapter: postgresql</code>

<code>  </code><code>encoding: unicode</code>

<code>  </code><code># username: git</code>

<code>  </code><code># password:        #未设置不用修改</code>

<code>  </code><code># port: 5432</code>

<code># 修改database.yml的权限,确保git用户可以读取该文件.</code>

<code>sudo -u git -H chmod o-rwx config/database.yml</code>

<code># 进入gitlab目录</code>

<code>--------------------------------------------------------------</code>

<code>gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/</code>

<code># 修改 Gemfile 和 Gemfile.lock</code>

<code>vim Gemfile(Gemfile.lock)</code>

<code>更改</code>

<code>source https://rubygems.org/ </code>

<code>为:  </code>

<code>source 'https://ruby.taobao.org/'</code>

<code>-------------------------------------------------------------- </code>

<code># 确保只有 https://ruby.taobao.org/</code>

<code>    </code><code>https://ruby.taobao.org/</code>

<code>ln -s /usr/local/bin/bundle /usr/bin/ </code>

<code>####一定要注意选择自己用的数据库的命令</code>

<code>###PostgreSQL (note, the option says "without ... mysql")</code>

<code>sudo -u git -H bundle install --deployment --without development test mysql aws</code>

<code># 如果使用 MySQL,执行下面的命令 (note, the option says "without ... postgres")</code>

<code>sudo -u git -H bundle install --deployment --without development test postgres aws </code>

<code>笔记: 如果你想去用 Kerberos 做用户认证, 然后在--without选项中省略Kerbero</code>

<code># Run the installation task for gitlab-shell (replace `REDIS_URL` if needed):</code>

<code>sudo -u git -H bundle exec rake gitlab:shell:install[v2.4.0] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production</code>

<code># 默认情况下,gitlab-shell的配置是根据Gitlab的配置生产的.</code>

<code># 你可以运行下面的命令查看和修改gitlab-shell的配置,</code>

<code># 监听端口要和/home/git/gitlab/config/unicorn.rb中配置一致</code>

<code>sudo -u git -H vim /home/git/gitlab-shell/config.yml</code>

<code>---</code>

<code>user: git</code>

<code>gitlab_url:  https://localhost:8080/   #使用https </code>

<code>http_settings:</code>

<code>  </code><code>self_signed_cert: false       #如果gitlab_url为https,修改成true</code>

<code>repos_path: "/home/git/repositories/"</code>

<code>auth_file: "/home/git/.ssh/authorized_keys"</code>

<code>redis:</code>

<code>  </code><code>bin: "/usr/bin/redis-cli"</code>

<code>  </code><code>namespace: resque:gitlab</code>

<code>  </code><code>socket: "/var/run/redis/redis.sock"</code>

<code>log_level: INFO</code>

<code>audit_usernames: false</code>

<code>sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production</code>

<code># 输入 'yes' 以创建数据库表</code>

<code># 当看到以下内容,表示已经安装完成</code>

<code>Administrator account created:</code>

<code>login:    root</code>

<code>password: your_passwd</code>

<code>== Seed from /home/git/gitlab/db/fixtures/production/010_settings.rb</code>

Note: 你能通过提供环境变量设置 Administrator/root 密码和邮箱, 分别为GITLAB_ROOT_PASSWORD 和 GITLAB_ROOT_EMAIL , 如下所示。如果你不能设置密码(它被设置为默认的) 请等待曝光gitlab到公共互联网直到安装完成和你已经登录到服务器的第一时间。 在第一次登录时,您将被迫更改默认密码。.

<code>sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD=yourpassword GITLAB_ROOT_EMAIL=youremail</code>

<code>wget -O /etc/init.d/gitlab  https://gitlab.com/gitlab-org/gitlab-recipes/raw/master/init/sysvinit/centos/gitlab-unicorn</code>

<code># 配置gitlab的启动级别 </code>

<code>chmod +x /etc/init.d/gitlab</code>

<code>chkconfig --add gitlab</code>

<code>chkconfig gitlab on </code>

<code>设置Logrotate</code>

<code>sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab    </code>

<code>检查GitLab环境配置</code>

<code>sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production</code>

<code>-----</code>

<code>production</code>

<code>System information</code>

<code>System:     CentOS 6.8</code>

<code>Current User:  git</code>

<code>Using RVM: no</code>

<code>Ruby Version:  2.1.5p273</code>

<code>Gem Version:   2.2.2</code>

<code>Bundler Version:1.15.1</code>

<code>Rake Version:  10.3.2</code>

<code>Sidekiq Version:2.17.8</code>

<code>GitLab information</code>

<code>Version:    7.6.2</code>

<code>Revision:   fatal: Not a git repository (or any parent up to mount point /home)</code>

<code>Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).</code>

<code>Directory:  /home/git/gitlab</code>

<code>DB Adapter:    mysql2</code>

<code>URL:        http://your_ip</code>

<code>HTTP Clone URL:   http://your_ip/some-project.git</code>

<code>SSH Clone URL:    git@your_ip:some-project.git</code>

<code>Using LDAP:    no</code>

<code>Using Omniauth:    no</code>

<code>GitLab Shell</code>

<code>Version:    2.1.0</code>

<code>Repositories:   /home/git/repositories/</code>

<code>Hooks:      /home/git/gitlab-shell/hooks/</code>

<code>Git:        /usr/bin/git</code>

<code># 生成GitLab前端资源</code>

<code>sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production</code>

<code># 启动gitlab服务</code>

<code>service gitlab start</code>

<code># 使用yum进行安装</code>

<code>yum install -y nginx</code>

<code>chkconfig nginx on</code>

<code>wget -O /etc/nginx/conf.d/gitlab.conf https://gitlab.com/gitlab-org/gitlab-ce/raw/master/lib/support/nginx/gitlab-ssl</code>

<code># 将nginx用户添加到git组</code>

<code>mkdir -p /etc/nginx/ssl</code>

<code>cd /etc/nginx/ssl/</code>

<code>openssl req -new -x509 -nodes -days 3560 -out gitlab.crt -keyout gitlab.key</code>

<code># 启动nginx服务</code>

<code>service nginx restart</code>

<code># 使用SMTP邮件服务器,可以不安装postfix</code>

<code>sudo -u git -H cp config/initializers/smtp_settings.rb.sample config/initializers/smtp_settings.rb</code>

<code>#修改如下</code>

<code>sudo -u git -H vim config/initializers/smtp_settings.rb</code>

<code>这里提供163和腾讯企业邮箱两种配置方式,注意将下面的123456替换成自己的密码</code>

<code>163邮箱:</code>

<code>if Rails.env.production?</code>

<code>  </code><code>Gitlab::Application.config.action_mailer.delivery_method = :smtp</code>

<code>  </code><code>ActionMailer::Base.delivery_method = :smtp        #使用smtp方法</code>

<code>  </code><code>ActionMailer::Base.smtp_settings = {</code>

<code>    </code><code>address: "smtp.163.com",</code>

<code>    </code><code>port: 25,</code>

<code>    </code><code>user_name: "wpgitlab",</code>

<code>    </code><code>password: "123456",</code>

<code>    </code><code>domain: "163.com",</code>

<code>    </code><code>authentication: :plain,</code>

<code>    </code><code>enable_starttls_auto: true</code>

<code>  </code><code>}</code>

<code>end</code>

<code>QQ邮箱:</code>

<code>    </code><code>address: "smtp.exmail.qq.com",</code>

<code>    </code><code>user_name: "[email protected]",</code>

<code>    </code><code>domain: "smtp.qq.com",</code>

<code>    </code><code>enable_starttls_auto: true,</code>

<code>3. 修改gitlab.yml</code>

<code>一键安装路径:</code>

<code>cd</code>

<code>  </code><code>/opt/gitlab-8.5.7-0</code>

<code>vim</code>

<code> </code><code>apps/gitlab/htdocs/config/gitlab.yml</code>

<code>将默认邮箱修改为自己的邮箱</code>

<code>163:</code>

<code>## Email settings</code>

<code>    </code><code># Email address used in the "From" field in mails sent by GitLab</code>

<code>    </code><code>email_from: [email protected]</code>

<code>腾讯企业邮箱:</code>

<code>    </code><code>email_from: [email protected]</code>

<code>#编辑文件</code>

<code>[root@git gitlab]#sudo -u git -H vim config/environments/production.rb</code>

<code>config.action_mailer.delivery_method = :smtp            #将方法修改成smtp方式</code>

<code>4. 修改后。重启gitlab</code>

<code>#监控日志文件</code>

<code>tail -f /home/git/gitlab/log/*.log</code>

<code>tail -f /var/log/maillog</code>

安装完成后gitlab运行异常使用如下命令检测,并解决

<code>sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production</code>

验证结果,访问地址如下:

<a href="https://s1.51cto.com/wyfs02/M01/9C/B9/wKiom1l1cguCzu5wAASuN-fkXt0395.png-wh_500x0-wm_3-wmp_4-s_2473678897.png" target="_blank"></a>

用户名和密码如下

login.........root

password......5iveL!fe

使用Gitlab一键安装包安装Gitlab非常单, 同样的备份恢复与迁移也非常简单,用一条命令即可创建完整的Gitlab备份:

<code>sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production STRATEGY=copy</code>

注:跳过某些内容sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production SKIP=db,uploads 

skip为:

db (database)

uploads (attachments)

repositories (Git repositories data)

builds (CI job output logs)

artifacts (CI job artifacts)

lfs (LFS objects)

registry (Container Registry images)

pages (Pages content)

修改<code>/home/git/gitlab/config/gitlab.yml</code>来修改默认存放备份文件的目录:

<code>sudo -u git -H vim /home/git/gitlab/config/gitlab.yml</code>

<code>---------------------- </code>

<code> </code><code>backup:</code>

<code>    </code><code>path: "/home/git/backups/"   # Relative paths are relative to Rails.root (default: tmp/backups/)</code>

<code># Create a full backup of the GitLab repositories and SQL database every day at 4am</code>

<code>0 4 * * * cd /home/git/gitlab &amp;&amp; PATH=/usr/local/bin:/usr/bin:/bin bundle exec rake gitlab:backup:creat</code>

<code># 0 4 * * * cd /home/git/gitlab &amp;&amp; sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production</code>

首先进入备份 gitlab 的目录,这个目录是配置文件中的<code>path</code>,本文设置为 /home/git/backups/ 。

然后停止 unicorn 和 sidekiq ,保证数据库没有新的连接,不会有写数据情况。

<code># 停止相关数据连接服务</code>

<code>service gitlab stop</code>

<code>sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=productione RAILS_ENV=production CRON=1</code>

<code># 如果备份目录下面有多个备份文件,则需加参数并指明时间戳</code>

<code>BACKUP=timestamp_of_backup (required if more than one backup exists)</code>

<code>force=yes (do not ask if the authorized_keys file should get regenerated)</code>

<code>sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=productione RAILS_ENV=production CRON=1 force=yes BACKUP=timestamp_of_backup</code>

<code>#恢复时候BACKUP=timestamp_of_backup timestamp_of_backup表示是时间前缀 默认恢复最新一次的备份</code>

<code># 启动Gitlab</code>

<code>sudo gitlab-ctl start</code>

<code># 恢复过程中没有权限</code>

<code>mkdir /home/git/backups/</code>

<code>chown git /home/git/backups/</code>

<code>chmod 700 /home/git/backups/</code>

把备份文件拷贝到gitlab的备份目录下,根据上面gitlab恢复步骤即可。

还需要备份文件:/home/git/gitlab/config/secrets.yml(两步验证时用到:用户名密码登录及短信验证)

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1949450如需转载请自行联系原作者

qianghong000