gitlab的介绍

gitlab的安装:

首次登陆的密码:


输入:root/5iveL!fe 登录!

——————————————————————————————————————————————————————

 

一键安装
------------------------------------


1.安装配置依赖关系

yum install curl openssh-server openssh-clients postfix cronie wget lokkit -y

service postfix start 邮件服务的开通


lokkit -s http -s ssh #配置iptables开放http和ssh端口


iptables -L 查看iptables的规则

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
----------------------------------------------------------------------------
下载RPM包:

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-8.9.9-ce.0.el6.x86_64.rpm 清华大学开源软件镜像站


rpm -ivh gitlab-ce-8.9.9-ce.0.el6.x86_64.rpm


启动GitLab

gitlab-ctl reconfigure
------------------------------------------------------------------------------
另一种方法:(官方文档)

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

yum install gitlab-ee

gitlab-ctl reconfigure
-------------------------------------------------------------------------------
http://ip

root/5iveL!fe

重启:

gitlab-ctl restart


-----------------------------------------------------

502错误

是内存不足导致


dd if=/dev/zero of=/var/swap bs=1024 count=2048000


mkswap /var/swap


swapon /var/swap 激活虚拟内存


vim /etc/fstab

/var/swap swap swap defaults 0 0

mount -a


------------------------------------------------------------

修改端口:


vim /etc/gitlab/gitlab.rb

## Advanced settings
unicorn['listen'] = '127.0.0.1'
# unicorn['port'] = 8080
unicorn['port'] = 8082


# nginx['ssl_dhparam'] = nil # Path to dhparams.pem, eg. /etc/gitlab/ssl/dhparams.pem
nginx['listen_addresses'] = ['*']
nginx['listen_port'] = 82 # override only if you use a reverse proxy: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#setting-the-nginx-listen-port

vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb

listen "127.0.0.1:8082", :tcp_nopush => true
listen "/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket", :backlog => 1024

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf


server {
# listen *:80;
listen *:82;


server_name localhost;
server_tokens off;

gitlab-ctl restart 重启gitlab


nginx做代理进行修改:

vim /usr/local/nginx/conf/conf.d/gitlab.conf

server {
listen 80;
server_name gitlab.123.123.cn;

location / {
#rewrite ^(.*) http://127.0.0.1:8082;
proxy_pass http://127.0.0.1:8082;
}
}

修改gitlab-shell

vim /var/opt/gitlab/gitlab-shell/config.yml

# Url to gitlab instance. Used for api calls. Should end with a slash.
#gitlab_url: "http://127.0.0.1:9090"
gitlab_url: "http://127.0.0.1:82"

gitlab-ctl restart 重启服务

---------------------------------------------------------------------------

创建私钥公钥:

ssh-keygen -t rsa -C "xxxx@163.com" 生成私钥公钥

git config --global user.name "tom" 设置username

git config --global user.email "alice" 设置user的email地址

上传公钥:

cat id_rsa.pub 把公钥复制到web页面相应位置上

创建新的项目:


git clone git@localhost:root/project.git 克隆一个项目

cd project/

touch README.md

git add README.md

git commit -m "add README"

git push -u origin master

 ==========================================================================================

 

gitlab的备份

 

gitlab的备份

1.必须是root用户执行


vim /opt/gitlab-6.6.5-0/apps/gitlab/htdocs/config/gitlab.yml

backup:
path: "/tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) 路径可以自定义
keep_time: 604800 # default: 0 (forever) (in seconds)

cd /opt/gitlab-6.6.5-0/apps/gitlab/htdocs/

/opt/gitlab-6.6.5-0/ruby/bin/bundle exec bin/rake gitlab:backup:create RAILS_ENV=production


ll /tmp/backups

-rw-r--r--. 1 root root 40960 Jun 1 16:10 1496304653_gitlab_backup.tar

成功

gitlab的数据恢复

cd /opt/gitlab-6.6.5-0/apps/gitlab/htdocs/


/opt/gitlab-6.6.5-0/ruby/bin/bundle exec bin/rake gitlab:backup:restore RAILS_ENV=production


如果有多个备份文件则在RAILS_ENV=production 后制定恢复哪个文件 BACKUP=1496304653_gitlab_backup.tar

 

备份脚本

#!/bin/bash

#if [ `id -u` -ne 0 ];then
# echo "this backup script must be exec as root."
# exit
#fi
#date
PATH="/opt/gitlab-6.6.5-0/apps/gitlabci/gitlabci-runner/bin:/opt/gitlab-6.6.5-0/apps/gitlab/gitlab-shell/bin:/opt/gitlab-6.6.5-0/redis/bin:/opt/gitlab-6.6.5-0/sqlite/bin:/opt/gitlab-6.6.5-0/python/bin:/opt/gitlab-6.6.5-0/perl/bin:/opt/gitlab-6.6.5-0/git/bin:/opt/gitlab-6.6.5-0/ruby/bin:/opt/gitlab-6.6.5-0/mysql/bin:/opt/gitlab-6.6.5-0/apache2/bin:/opt/gitlab-6.6.5-0/common/bin:$PATH"

echo "backup gitlab to local storage begin.. "

cd /opt/gitlab-6.6.5-0/apps/gitlab/htdocs

/opt/gitlab-6.6.5-0/ruby/bin/bundle exec bin/rake gitlab:backup:create RAILS_ENV=production

echo "rsync -avzP --delete /tmp/backups 192.168.1.100:/gitlab/back"
rsync -avzP --delete /tmp/backups 192.168.1.100:/gitlab/back

date
echo "this job is end."

=======================================================================================

git的上传文件和代码

创建私钥公钥:

ssh-keygen -t rsa -C "xxxx@163.com" 生成私钥公钥

上传公钥:

cat /root/.ssh/id_rsa.pub 把公钥复制到web页面相应位置上

git config --global user.name "tom" 设置username

git config --global user.email "alice" 设置user的email地址

创建新的项目:

git clone git@localhost:root/project.git 克隆一个项目

cd project/

touch README.md

git add README.md

git commit -m "add README"

git push -u origin master


git init 创建可管理的仓库

git clone ssh:git@192.168.1.132:good/test.git 克隆线上仓库

git status 查看是否有文件需要提交

git add -A or git add . 把文件添加到暂存区里面去 -A和. 是全部

git status 查看状态

git commit -m "first push" 提交文件到仓库 ""是注释

git log 查看日志

git remote add origin [git@192.168.1.132:good/test.git] 填写项目的url地址 这样做可以默认推送到远端master分支

git push -u origin master 把本地仓库分支推送到元仓库(远程)

git pull origin master 接收数据 (不能应用多分支Pull的情况)


git branch 查看当前分支

git checkout -b dev dev是分支名 创建并切换到分支

git checkout dev 切换分支

git branch dev 创建分支

git branch -d dev 删除分支

git merge dev 合并分支

====================================================================================

一键安装

chmod +x bitnami-gitlab-6.6.5-0-linux-x64-installer.run

./ bitnami-gitlab-6.6.5-0-linux-x64-installer.run


GitLab CI [Y/n] :Y

Is the selection above correct? [Y/n]: Y

Select a folder [/opt/gitlab-6.6.5-0] 安装目录(默认在/opt/gitlab-6.6.5-0)

Email Address [user@example.com]: zhangxiandong@e-eduspace.com 邮件地址

Login [user]: tom 登陆名

Password: 默认是8位字符以上

Please confirm your password :

Domain [127.0.0.1]: 192.168.1.131 域名地址

Do you want to configure mail support? [y/N]: N 是否支持邮件

Default email provider:

[1] GMail 谷歌邮箱

[2] Custom 自定义

Please choose an option [1] : 2

Configure SMTP Settings

This data is stored in the application configuration files and may be visible to
others. For this reason, it is recommended that you do not use your personal
account credentials.

Username []: zhangxiandong 邮箱名

Password : 邮箱密码

Re-enter : 重复输入

SMTP Host []: e-eduspace@.com

SMTP Port []: 25

Secure connection 安全连接

[1] None
[2] SSL
[3] TLS

Please choose an option [3] : 1

Setup is now ready to begin installing Bitnami Gitlab Stack on your computer.

Do you want to continue? [Y/n]: Y

Please wait while Setup installs Bitnami Gitlab Stack on your computer.

Installing
0% ______________ 50% ______________ 100%
#########################################

----------------------------------------------------------------------------
Setup has finished installing Bitnami Gitlab Stack on your computer.

Info: To access the Bitnami Gitlab Stack, go to
http://192.168.1.131:80 from your browser.
Press [Enter] to continue :

开启服务的命令:

cd /opt/gitlab-6.6.5-0/

./ctlscript.sh

也可以单独服务的重启和关闭

./ctlscript.sh mysql or redis
============================================================================================
apache mysql和redis的端口修改文件

httpd的默认端口的修改

vim /opt/gitlab-6.6.5-0/apache2/conf/httpd.conf apache的配置文件

Listen 8080

ServerName localhost:8080

vim /opt/gitlab-6.6.5-0/apache2/conf/bitnami/bitnami.conf

NameVirtualHost *:8080

<VirtualHost _default_:8080>

vim /opt/gitlab-6.6.5-0/apache2/scripts/ctl.sh

echo "$0 $ARG: httpd started at port 8080"

vim /opt/gitlab-6.6.5-0/apache2/conf/extra/httpd-vhosts.conf

<VirtualHost *:8080>

<VirtualHost *:8080>

vim /opt/gitlab-6.6.5-0/apps/gitlabci/conf/httpd-vhosts.conf

<VirtualHost *:8080>

vim /opt/gitlab-6.6.5-0/redis/etc/redis.conf redis的配置文件

mysql默认端口的修改
vim /opt/gitlab-6.6.5-0/mysql/my.cnf mysqld的配置文件

port=3306

vim /opt/gitlab-6.6.5-0/mysql/scripts/ctl.sh 修改mysql的端口

--port=3306

echo "$0 $ARG: mysql started at port 3306"

vim /opt/gitlab-6.6.5-0/apps/gitlabci/htdocs/config/database.yml

port: 3306 修改端口号


redis默认端口的修改

vim /opt/gitlab-6.6.5-0/redis/etc/redis.conf

port 6379

vim /opt/gitlab-6.6.5-0/redis/scripts/ctl.sh

REDIS_PORT=6379

REDIS_PORT=6379

==================================================================================
vim /opt/gitlab-6.6.5-0/apps/gitlab/htdocs/config/gitlab.yml 邮件发送的配置


# Email address used in the "From" field in mails sent by GitLab

email_from: 15100126734@163.COM

# Email address of your support contact (default: same as email_from)

support_email: 15100126734@163.COM

## GitLab settings

gitlab:
## Web server settings (note: host is the FQDN, do not include http://)

host: 192.168.1.132 改成域名 例如:pepstack.com

port: 80

https: false

# Uncomment and customize the last line to run in a non-root path
# WARNING: We recommend creating a FQDN to host GitLab in a root path instead of this.
# Note that four settings need to be changed for this to work.
# 1) In your application.rb file: config.relative_url_root = "/gitlab"
# 2) In your gitlab.yml file: relative_url_root: /gitlab
# 3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
# 4) In ../gitlab-shell/config.yml: gitlab_url: "http://127.0.0.1/gitlab"
# To update the path, run: sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
#

relative_url_root: /gitlab

==================================================================================
vim /opt/gitlab-6.6.5-0/apps/gitlab/htdocs/config/environments/production.rb 发送邮件的配置

cp /opt/gitlab-6.6.5-0/apps/gitlab/htdocs/config/initializers/{smtp_settings.rb.sample,smtp_settings.rb}

vim /opt/gitlab-6.6.5-0/apps/gitlab/htdocs/config/initializers/smtp_settings.rb 邮件的配置文件


=====================================================================================================

 

vim /opt/gitlab-6.6.5-0/apps/gitlab/conf/httpd-app.conf 置于nginx后面使用

<Directory "/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/public">
Options -MultiViews
AllowOverride All
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>

SetEnv RAILS_RELATIVE_URL_ROOT "/gitlab"

PassengerEnabled on
PassengerAppRoot "/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/"
<IfModule pagespeed_module>
ModPagespeedDisallow "*"
</IfModule>
PassengerUser git
PassengerGroup git
SetEnv MAGIC "/opt/gitlab-7.8.1-0/ruby/lib/ruby/gems/2.0.0/gems/charlock_holmes-0.6.9.4/ext/charlock_holmes/src/file-5.08/magic/magic.mgc"
SetEnv PATH "/opt/gitlab-7.8.1-0/python/bin:${PATH}"


</Directory>
PassengerPreStart http://127.0.0.1:80/gitlab

不同之处在于:

SetEnv RAILS_RELATIVE_URL_ROOT "/gitlab"
PassengerPreStart http://127.0.0.1:80/gitlab

vim /opt/gitlab-6.6.5-0/apps/gitlab/gitlab-shell/config.yml

gitlab_url: "http://192.168.1.132:80/" 改成 http://pepstack.com/ 改成域名,和上面gitlab.yml中的
host保持一致

vim /opt/gitlab-6.6.5-0/apps/gitlabci/htdocs/config/database.yml 定义数据库的密码和用户名

production:
adapter: mysql2
encoding: utf8
reconnect: false
database: bitnami_gitlabci
pool: 5
username: bitnami
password: "1a36ddf4bb"
# host: localhost
socket: /opt/gitlab-6.6.5-0/mysql/tmp/mysql.sock
port: 3306
# socket: /tmp/mysql.sock

 

posted @ 2018-04-22 15:32  迷路的大雁  阅读(296)  评论(0编辑  收藏  举报