系统环境cat /etc/redhat-release CentOS release 6.8 (Final)
nginx -vnginx version: nginx/1.9.15
redis-cli -vredis-cli 3.9.102
mysql -Vmysql Ver 14.14 Distrib 5.5.53, for Linux (x86_64) using readline 5.1
ruby -vruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-linux]
git --versiongit version 2.8.2
go version go version go1.7.3 linux/amd64
参考地址:https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centosubuntu 安装文档:http://docs.gitlab.com/ce/install/installation.html#using-https
一:添加repositorywget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/0608B895.txtrpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6rpm -qa gpg*rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm二:Add PUIAS Computational repositorywget -O /etc/yum.repos.d/PUIAS_6_computational.repo https://gitlab.com/gitlab-org/gitlab-recipes/raw/master/install/centos/PUIAS_6_computational.repo
2016-11-01 03:30:55 错误 404:Not Found报404错误解决方法:vim /etc/yum.repos.d/PUIAS_6_computational.repo[PUIAS_6_computational]name=PUIAS computational Base $releasever - $basearchmirrorlist=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch/mirrorlist#baseurl=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearchgpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puias
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-puias http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puiasrpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puias rpm -qa gpg*yum repolistyum -y install yum-utilsyum-config-manager –enable epel –enable PUIAS_6_computationalyum groupinstall "Development Tools" -yyum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui redis sudo wget crontabs logwatch logrotate perl-Time-HiRes git cmake libcom_err-devel.i686 libcom_err-devel.x86_64 nodejs
yum-config-manager –enable rhel-6-server-optional-rpmsyum -y install vim-enhancedupdate-alternatives –set editor /usr/bin/vim.basicyum -y install python-docutilsyum -y install postfixyum -y remove gityum install zlib-devel perl-CPAN gettext curl-devel expat-devel gettext-devel openssl-devel -y
mkdir /tmp/git && cd /tmp/gitcurl –progress https://www.kernel.org/pub/software/scm/git/git-2.8.2.tar.gz|tar xzcd git-2.8.2/ ./configuremakemake prefix=/usr/local installcd ..git --versionmkdir /tmp/ruby && cd /tmp/rubytar -zxvf ruby-2.2.5.tar.gzcd ruby-2.2.5./configuremakemake prefix=/usr/local install修改本地源为taobao源:gem sources –add https://gems.ruby-china.org/ –remove https://rubygems.org/更新gem版本gem update --system=2.6.3gem install bundler --no-docruby -v添加用户adduser --system --shell /bin/bash --comment 'GitLab' --create-home --home-dir /home/git/ gitvi /etc/sudoers +79#Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/binDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
安装mysql 192.168.1.176更新mysql源yum localinstall mysql57-community-release-el6-9.noarch.rpmvim /etc/yum.repos.d/mysql-community.repo[mysql56-community]name=MySQL 5.6 Community Serverbaseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql安装mysqlyum -y install mysql mysql-devel mysql-server配置mysql创建数据库: create database gitlab;创建git账号密码: CREATE USER 'git'@'192.168.%' IDENTIFIED BY '123qwe';使用INNODB引擎: SET storage_engine=INNODB;创建gitlab生产数据库:CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;桌上的gitlab用户授予必要的权限:GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'git'@'192.168.%';
配置redisrpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmyum -y --enablerepo=remi,remi-test install rediscd redis-3.0.7makemkdir -p /usr/local/redis/{bin,etc,var}cp -af src/{redis-benchmark,redis-check-aof,redis-check-dump,redis-cli,redis-sentinel,redis-server} /usr/local/redis/bin/cp -a redis.conf /usr/local/redis/etc/. /etc/profile.d/redis.shsed -i 's@pidfile.*@pidfile /var/run/redis.pid@' /usr/local/redis/etc/redis.confsed -i "s@logfile.*@logfile /usr/local/redis/var/redis.log@" /usr/local/redis/etc/redis.confsed -i "s@^dir.*@dir /usr/local/redis/var@" /usr/local/redis/etc/redis.confsed -i 's@daemonize no@daemonize yes@' /usr/local/redis/etc/redis.conf[ -z "`grep ^maxmemory /usr/local/redis/etc/redis.conf`" ] && sed -i 's@maxmemory <bytes>@maxmemory <bytes>\nmaxmemory 360000000@' /usr/local/redis/etc/redis.conf
如果用unix方式启动就执行以下操作------------------------------------------------------------------------sed -ri 's/^(port).*/\1 0/' /usr/local/redis/etc/redis.confecho 'unixsocket /var/run/redis/redis.sock' >> /usr/local/redis/etc/redis.confecho 'unixsocketperm 0770' >> /usr/local/redis/etc/redis.confwget -q http://www.dwhd.org/script/Redis-server-init-CentOS -O /etc/init.d/redis-serversed -i "/touch $lockfile/a \ chown git $(awk '/^unixsocket /{print $2}' /usr/local/redis/etc/redis.conf)" /etc/init.d/redis-serverchmod +x /etc/init.d/redis-serverservice redis-server start--------------------------------------------------------------------------安装nginxyum -y install pcre-devel pcreadduser -r -s /sbin/nologin -c 'Web Server' -M wwwtar zxvf nginx-1.9.15.tar.gzcd nginx-1.9.15./configure --prefix=/usr/local/nginx/ \--user=www --group=www \--error-log-path=/tmp/nginx/error.log \--http-log-path=/tmp/nginx/access.log \--pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock \--with-pcre \--with-http_ssl_module \--with-http_flv_module \--with-http_v2_module \--with-http_gzip_static_module \--with-http_stub_status_module \--http-client-body-temp-path=/usr/local/nginx/client/ \--http-proxy-temp-path=/usr/local/nginx/proxy/ \--http-fastcgi-temp-path=/usr/local/nginx/fcgi/ \--http-uwsgi-temp-path=/usr/local/nginx/uwsgi \--http-scgi-temp-path=/usr/local/nginx/scgimake -j $(awk '/processor/{i++}END{print i}' /proc/cpuinfo) && make install && cd ../..echo "export PATH=/usr/local/nginx/sbin:\$PATH" > /etc/profile.d/nginx.sh. /etc/profile.d/nginx.shwget -q http://www.dwhd.org/script/Nginx-init-CentOS -O /etc/rc.d/init.d/nginxchmod +x /etc/rc.d/init.d/nginxchkconfig nginx onsed -i "$(awk '{a=NR}END{print a}' $nginxCONF)s@^@ include vhost/*.conf;\n&@" $nginxCONFmkdir -p /usr/local/nginx/conf/vhost/mkdir -p /var/log/nginx/usermod -a -G git wwwchmod g+rx /home/git/添加ssl证书或者自己生成一个cd /usr/local/nginx/openssl req -new -x509 -nodes -days 3560 -out gitlab.crt -keyout gitlab.key
下载gitlab-ce 最新代码cd /home/git/sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git------------------------------------报错:Peer certificate cannot be authenticated with known CA certificatesvi /home/git/.bash_profile添加如下,不验证SSLexport GIT_SSL_NO_VERIFY=1如果以上还是报错就用以下方法:su -gitgit config --global http.sslverify "false"git clone https://gitlab.com/larryli/gitlab.git -b 7-5-zh gitlab
------------------------------------mv gitlab-ce gitlabcd gitlab/sudo -u git -H cp config/gitlab.yml.example config/gitlab.ymlvim config/gitlab.yml +482修改482行git bin_path为:482 bin_path: /usr/local/bin/githost: 192.168.1.170port: 8000https: falseemail_from: gitlab@zhongjiu.cnemail_display_name: GitLabemail_reply_to: gitlab@zhongjiu.cn
chown -R git log/chown -R git tmp/chmod -R u+rwX log/chmod -R u+rwX tmp/sudo -u git -H mkdir /home/git/gitlab-satelliteschmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellitessudo -u git -H mkdir public/uploadschmod -R u+rwX tmp/pids/chmod -R u+rwX tmp/sockets/chmod -R u+rwX public/uploadssudo -u git -H cp config/unicorn.rb.example config/unicorn.rb错误日志目录:/home/git/gitlab/log/production.log编辑配置文件unicorn.rbsudo -u git -H cp config/unicorn.rb.example config/unicorn.rbsudo -u git -H vim config/unicorn.rblisten "192.168.1.170:8000", :tcp_nopush => true
特别注意:比较差配置的机器,注意将unicorn.rb中的timeout设置大一点,因为第一次启动的时候Gitlab需要初始化,如果timeout太小,由于需要执行较长时间,导致无法正常启动,出现502错误
拷贝配置文件rack_attack.rbsudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb定义全局的用户和邮箱sudo -u git -H git config --global user.name "gitLab"sudo -u git -H git config --global user.email "gitlab@zhongjiu.com"sudo -u git -H git config --global core.autocrlf input编辑连接redis配置
拷贝配置sudo -u git -H cp config/resque.yml.example config/resque.yml连接redis配置,默认配置,未修改vim config/resque.yml两种方式任选其一:#———————————–development: url: redis://localhost:6379production: url: redis://localhost:6379development: url: redis://localhost:6379------------------------------development: unix:/var/run/redis/redis.socktest: unix:/var/run/redis/redis.sockproduction: unix:/var/run/redis/redis.sock#———————————–配置gitlab数据库文件sudo -u git cp config/database.yml.mysql config/database.ymlsudo -u git -H vim config/database.ymlproduction: adapter: mysql2 encoding: utf8 collation: utf8_general_ci reconnect: false database: gitlabhq_production pool: 10 username: git password: "123qwe" host: 192.168.1.170 socket: /tmp/mysql.sock安装gems修改默认的源为taobao源/home/git/gitlabvim Gemfile#source 'https://rubygems.org'source 'https://gems.ruby-china.org/'----------------------------gem update --systemgem install rubygems-updateupdate_rubygemsgem install rdoc-data; rdoc-data --install
bundle installyum -y install postgresql-devel.x86_64chmod 777 /home/git/gitlab/.bundle/config
sudo -u git -H bundle install --deployment --without development test postgres aws
安装gitlab-shellmkdir /home/git/repositorieschown git:git /home/git/repositories/根据自己redis启动模式来二选一#sudo -u git -H bundle exec rake gitlab:shell:install REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production#sudo -u git -H bundle exec rake gitlab:shell:install REDIS_URL=redis://127.0.0.1:6379 RAILS_ENV=production
vim /home/git/gitlab-shell/config.yml---user: gitgitlab_url: "http://192.168.1.170:8000/"http_settings: self_signed_cert: truerepos_path: "/home/git/repositories/"auth_file: "/home/git/.ssh/authorized_keys"redis: bin: "/usr/bin/redis-cli" host: 192.168.1.170 port: 6379 namespace: resque:gitlab
log_level: INFOaudit_usernames: false安装cd bin/./install#检查是否有问题#/home/git/gitlab-shell/bin/check
安装gitlab-workhorseyum -y install golang.x86_64
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git cd gitlab-workhorsesudo -u git -H make
#设置密码(任选其一)#第一次登陆设置sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production#默认设置sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD=git@123.qwe成功提示:== Seed from /home/git/gitlab/db/fixtures/production/001_admin.rbAdministrator account created:
login: rootpassword: git@123.qwe
安装启动脚本和设置开机启动cd /home/git/gitlab/sudo cp lib/support/init.d/gitlab /etc/init.d/gitlabchmod +x /etc/init.d/gitlabchkconfig –add gitlabchkconfig gitlab onsudo chmod +x /home/git/gitlab/bin/background_jobssudo chmod +x /home/git/gitlab/bin/web安装 Logrotatesudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlabsudo chmod 700 /home/git/gitlab/public/uploads检查GitLab及其环境的配置是否正确:sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production编译sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=productionSystem informationSystem:Current User: gitUsing RVM: noRuby Version: 2.2.5p319Gem Version: 2.6.8Bundler Version:1.13.6Rake Version: 10.5.0Sidekiq Version:4.2.1
GitLab informationVersion: 8.15.0-preRevision: 63b57e5Directory: /home/git/gitlabDB Adapter: mysql2URL: http://localhostHTTP Clone URL: http://localhost/some-group/some-project.gitSSH Clone URL: git@localhost:some-group/some-project.gitUsing LDAP: noUsing Omniauth: no
GitLab ShellVersion: 4.0.0Repository storage paths:- default: /home/git/repositories/Hooks: /home/git/gitlab-shell/hooks/Git: /usr/local/bin/git
nginx配置:user www www;worker_processes auto;#error_log logs/error.log error;#pid logs/nginx.pid;
worker_rlimit_nofile 65536;
events{ use epoll; accept_mutex off; worker_connections 65536;}
http{ include mime.types; default_type application/octet-stream; charset UTF-8; server_names_hash_bucket_size 128; client_header_buffer_size 4k; large_client_header_buffers 4 32k; client_max_body_size 20m;
open_file_cache max=65536 inactive=60s; open_file_cache_valid 80s; open_file_cache_min_uses 1;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main; sendfile on; server_tokens off; keepalive_timeout 90; gzip on; gzip_min_length 1k; gzip_buffers 4 64k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; include vhost/*.conf;}
cat /usr/local/nginx/conf/vhost/gitlab.conf upstream gitlab { server unix:/home/git/gitlab/tmp/sockets/gitlab.socket; } server { listen 80; server_name localhost; access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; root /home/git/gitlab/public; location / { client_max_body_size 0; gzip off;
proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off;
proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://gitlab; }
error_page 404 /404.html; error_page 422 /422.html; error_page 500 /500.html; error_page 502 /502.html; error_page 503 /503.html; location ~ ^/(404|422|500|502|503)\.html$ { root /home/git/gitlab/public; internal; }}
访问:
检查各个应用状态sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
/home/git/gitlab/config/unicorn.rb:配置ruby提供的服务端口,ip
/home/git/gitlab/config/gitlab.yml:配置gitlab服务的端口,ip
/home/git/gitlab-shell/config.yml:配置gitlab-shell要调用的API接口
转载于:https://www.cnblogs.com/zclzhao/p/6251217.html
