centos7 gitlab
yum -y update chmod +x /etc/rc.d/rc.local vi /etc/selinux/config SELINUX=disabled reboot vi /etc/hosts 127.0.0.1 git.x2ce.com
Git
yum -y install git git --version
#Make sure Git is version 2.7.4 or higher yum -y remove git yum -y install gcc zlib-devel perl-CPAN gettext curl-devel expat-devel gettext-devel openssl-devel cd /home wget https://www.kernel.org/pub/software/scm/git/git-2.8.2.tar.gz tar zxvf git-2.8.2.tar.gz cd git-2.8.2 ./configure --prefix=/usr/local make && make install git --version rm /home/git-2.8.2* -rf
Ruby
yum -y install ruby ruby -v #The current supported Ruby version is 2.1.x. Ruby 2.2 and 2.3 are currently not supported. yum -y remove ruby cd /home wget https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.8.tar.gz tar zxvf ruby-2.1.8.tar.gz cd ruby-2.1.8 ./configure --prefix=/usr/local/ruby --disable-install-rdoc make && make install ruby -v rm /home/ruby-2.1.8* -rf
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l
gem install bundler --no-ri --no-rdoc
Mysql
cd /home wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum -y install mysql-community-server
yum -y install mysql-community-devel service mysqld restart mysql -uroot update mysql.user set password=PASSWORD('密码') where User='root'; flush privileges; CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitLabdsdew8772'; SET storage_engine=INNODB; CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `gitlabhq_production`.* TO 'gitlab'@'localhost'; mysql -ugitlab -pgitLabdsdew8772 -D gitlabhq_production
chown -R mysql:mysql /var/lib/mysql
rm -rf /home/mysql*
adduser --system --shell /bin/bash --comment 'GitLab' --create-home --home-dir /home/git/ git
chmod 777 /home/git
Redis
cd /home wget http://download.redis.io/redis-stable.tar.gz tar zxvf redis-stable.tar.gz cd redis-stable make MALLOC=libc make install mkdir /etc/redis/ sed 's/^port .*/port 0/' redis.conf.orig |tee /etc/redis/redis.conf echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis/redis.conf echo 'unixsocketperm 770' | sudo tee -a /etc/redis/redis.conf adduser redis usermod -aG redis git rm -rf redis-stable* vi /etc/redis/redis # chkconfig: 345 83 5 # Description: Redis is a persistent key-value database PATH=/usr/local/bin:/sbin:/usr/bin:/bin EXEC=/usr/local/bin/redis-server REDIS_CLI=/usr/local/bin/redis-cli PIDFILE=/var/run/redis.pid CONF="/etc/redis/redis.conf" USPATH=/var/run/redis/ USFILE=/var/run/redis/redis.sock case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else if [ ! -d $USPATH ] then mkdir $USPATH fi echo "Starting Redis server..." $EXEC $CONF fi if [ "$?"="0" ] then while [ ! -x $USFILE ] do echo "Waiting for Redis to start ..." sleep 1 done chown -R redis:redis $USFILE echo "Redis is running..." fi ;; post) while [ ! -x $USFILE ] do echo "Waiting for Redis to start ..." sleep 1 done chown -R redis:redis $USFILE echo "Redis is running..." ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $REDIS_CLI -s $USFILE SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1 esac chmod +x /etc/redis/redis vi /lib/systemd/system/redis-server.service [Unit] Description=redis server service -s After=network.target [Service] ExecStart=/usr/bin/bash /etc/redis/redis start ExecStartPost=/usr/bin/bash /etc/redis/redis post ExecStop=/usr/bin/bash /etc/redis/redis stop ExecReload=/usr/bin/bash /etc/redis/redis restart [Install] WantedBy=multi-user.target chmod +x /lib/systemd/system/redis-server.service systemctl enable redis-server
NodeJs
cd /home yum -y install gcc make gcc-c++ openssl-devel wget wget https://nodejs.org/dist/v4.4.3/node-v4.4.3.tar.gz tar -zvxf node-v4.4.3.tar.gz cd node-v4.4.3
./configure make && make install node -v rm -rf /home/node-v4.4.3*
Gitlab
yum -y install libicu-devel cmake gcc-c++ cd /home wget https://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz tar -C /usr/local -xzf go1.5.3.linux-amd64.tar.gz ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/ rm -rf go1.5.3.linux-amd64.tar.gz
cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-7-stable gitlab cd /home/git/gitlab/ sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml sudo -u git -H vi config/gitlab.yml sudo -u git -H cp config/secrets.yml.example config/secrets.yml sudo -u git -H chmod 0600 config/secrets.yml chown -R git log/ chown -R git tmp/ chmod -R u+rwX,go-w log/ chmod -R u+rwX tmp/ chmod -R u+rwX tmp/pids/ chmod -R u+rwX tmp/sockets/ sudo -u git -H mkdir public/uploads/ chmod 0700 public/uploads chmod -R u+rwX builds/ chmod -R u+rwX shared/artifacts/ sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb nproc sudo -u git -H vi config/unicorn.rb sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb sudo -u git -H git config --global core.autocrlf input sudo -u git -H git config --global user.name "GitLab" sudo -u git -H git config --global user.email "gitlab@text.com" sudo -u git -H git config --global gc.auto 0 sudo -u git -H cp config/resque.yml.example config/resque.yml sudo -u git -H vi config/resque.yml sudo -u git cp config/database.yml.mysql config/database.yml sudo -u git -H vi config/database.yml sudo -u git -H chmod o-rwx config/database.yml sudo -u git -H bundle install --deployment --without development test postgres aws ln -s /usr/local/bin/git /usr/bin/git 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 vi /home/git/gitlab-shell/config.yml sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production cd /home/git sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git cd gitlab-workhorse sudo -u git -H git checkout v0.7.1 sudo -u git -H make cd /home/git/gitlab/
vi /etc/rc.local
/home/git/gitlab/lib/support/init.d/gitlab start >> /home/logs/gitlab.log cp lib/support/init.d/gitlab.default.example /etc/default/gitlab cp lib/support/logrotate/gitlab /etc/logrotate.d/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=production wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install -y nginx chkconfig nginx on wget -O /etc/nginx/conf.d/gitlab.conf https://gitlab.com/gitlab-org/gitlab-ce/raw/master/lib/support/nginx/gitlab vi /etc/nginx/conf.d/gitlab.conf vi /etc/nginx/conf.d/ usermod -a -G git nginx cd /home/git/gitlab/ sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production