1. 程式人生 > >GitLab 的一鍵安裝方式

GitLab 的一鍵安裝方式

一鍵安裝giglab

一、安裝環境的介紹

Centos 6.7 x86_64 2.6.32-573.el6.x86_64 IP:192.168.159.129 #公司內部測試服務器

GitLab版本:9.1.2

軟件包下載地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/

二、安裝過程

#rpm -ivh gitlab-ce-9.1.2-ce.0.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:gitlab-ce              ########################################### [100%]
hostname: Host name lookup failure


       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.

     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __   / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/


gitlab: Thank you for installing GitLab!
gitlab: To configure and start GitLab, RUN THE FOLLOWING COMMAND:

sudo gitlab-ctl reconfigure

gitlab: GitLab should be reachable at http://gitlab.example.com
gitlab: Otherwise configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
gitlab: And running reconfigure again.
gitlab: 
gitlab: For a comprehensive list of configuration options please see the Omnibus GitLab readme
gitlab: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
gitlab: 
It looks like GitLab has not been configured yet; skipping the upgrade script.
根據上面的提示執行:
#sudo gitlab-ctl reconfigure
Starting Chef Client, version 12.12.15
resolving cookbooks for run list: ["gitlab"]
Synchronizing Cookbooks:
  - gitlab (0.0.1)
  - package (0.0.0)
  - runit (0.14.2)
Installing Cookbook Gems:
Compiling Cookbooks...
Recipe: gitlab::default
  * directory[/etc/gitlab] action create
    - change mode from ‘0755‘ to ‘0775‘
init (upstart 0.6.5)
  Converging 378 resources
  * directory[/etc/gitlab] action create (up to date)
  * directory[Create /var/opt/gitlab] action create
    - create new directory /var/opt/gitlab
    - change mode from ‘‘ to ‘0755‘
    - change owner from ‘‘ to ‘root‘
    - change group from ‘‘ to ‘root‘
  * directory[/opt/gitlab/embedded/etc] action create
    - create new directory /opt/gitlab/embedded/etc
    - change mode from ‘‘ to ‘0755‘
    - change owner from ‘‘ to ‘root‘
    - change group from ‘‘ to ‘root‘
  * template[/opt/gitlab/embedded/etc/gitconfig] action create
    - create new file /opt/gitlab/embedded/etc/gitconfig
    - update content in file /opt/gitlab/embedded/etc/gitconfig from none to 5fe039
    --- /opt/gitlab/embedded/etc/gitconfig      2017-05-25 10:46:30.027207736 +0800
    +++ /opt/gitlab/embedded/etc/.chef-gitconfig20170525-6666-jc6wi6    2017-05-25 10:46:30.026207736 +0800
    @@ -1 +1,10 @@
    +[pack]
    +  threads = 1
    +[receive]
    +  fsckObjects = true
    +[repack]
    +  writeBitmaps = true
    +[transfer]
    +  hideRefs=^refs/tmp/
    +hideRefs=^refs/keep-around/
    - change mode from ‘‘ to ‘0755‘
Recipe: gitlab::web-server
  * group[Webserver user and group] action create
    - create group gitlab-www
  * user[Webserver user and group] action create
    - create user gitlab-www
Recipe: gitlab::users
………………………………                        #會輸出很多初始化的信息
    +
    - change owner from ‘‘ to ‘root‘
    - change group from ‘‘ to ‘root‘
  * ruby_block[reload gitlab-monitor svlogd configuration] action nothing (skipped due to action :nothing)
  * file[/opt/gitlab/sv/gitlab-monitor/down] action delete (up to date)
  * link[/opt/gitlab/init/gitlab-monitor] action create
    - create symlink at /opt/gitlab/init/gitlab-monitor to /opt/gitlab/embedded/bin/sv
  * link[/opt/gitlab/service/gitlab-monitor] action create
    - create symlink at /opt/gitlab/service/gitlab-monitor to /opt/gitlab/sv/gitlab-monitor
  * ruby_block[supervise_gitlab-monitor_sleep] action run
    - execute the ruby block supervise_gitlab-monitor_sleep
  * service[gitlab-monitor] action nothing (skipped due to action :nothing)
  * execute[/opt/gitlab/bin/gitlab-ctl start gitlab-monitor] action run
    [execute] ok: run: gitlab-monitor: (pid 7720) 1s
    - execute /opt/gitlab/bin/gitlab-ctl start gitlab-monitor
Recipe: gitlab::default
  * link[/opt/gitlab/service/gitlab-git-http-server] action delete (up to date)
  * directory[/opt/gitlab/sv/gitlab-git-http-server] action delete (up to date)
Recipe: gitlab::gitlab-rails
  * execute[clear the gitlab-rails cache] action run
    - execute /opt/gitlab/bin/gitlab-rake cache:clear
Recipe: gitlab::redis
  * ruby_block[reload redis svlogd configuration] action create
    - execute the ruby block reload redis svlogd configuration
Recipe: gitlab::postgresql
  * ruby_block[reload postgresql svlogd configuration] action create
    - execute the ruby block reload postgresql svlogd configuration
Recipe: gitlab::unicorn
  * ruby_block[reload unicorn svlogd configuration] action create
    - execute the ruby block reload unicorn svlogd configuration
Recipe: gitlab::sidekiq
  * ruby_block[reload sidekiq svlogd configuration] action create
    - execute the ruby block reload sidekiq svlogd configuration
Recipe: gitlab::gitaly
  * service[gitaly] action restart
    - restart service service[gitaly]
  * ruby_block[reload gitaly svlogd configuration] action create
    - execute the ruby block reload gitaly svlogd configuration
Recipe: gitlab::gitlab-workhorse
  * service[gitlab-workhorse] action restart
    - restart service service[gitlab-workhorse]
  * ruby_block[reload gitlab-workhorse svlogd configuration] action create
    - execute the ruby block reload gitlab-workhorse svlogd configuration
Recipe: gitlab::nginx
  * ruby_block[reload nginx svlogd configuration] action create
    - execute the ruby block reload nginx svlogd configuration
Recipe: gitlab::logrotate
  * ruby_block[reload logrotate svlogd configuration] action create
    - execute the ruby block reload logrotate svlogd configuration
Recipe: gitlab::prometheus
  * service[prometheus] action restart
    - restart service service[prometheus]
  * ruby_block[reload prometheus svlogd configuration] action create
    - execute the ruby block reload prometheus svlogd configuration
Recipe: gitlab::node-exporter
  * ruby_block[reload node-exporter svlogd configuration] action create
    - execute the ruby block reload node-exporter svlogd configuration
Recipe: gitlab::redis-exporter
  * ruby_block[reload redis-exporter svlogd configuration] action create
    - execute the ruby block reload redis-exporter svlogd configuration
Recipe: gitlab::postgres-exporter
  * service[postgres-exporter] action restart
    - restart service service[postgres-exporter]
  * ruby_block[reload postgres-exporter svlogd configuration] action create
    - execute the ruby block reload postgres-exporter svlogd configuration
Recipe: gitlab::gitlab-monitor
  * service[gitlab-monitor] action restart
    - restart service service[gitlab-monitor]
  * ruby_block[reload gitlab-monitor svlogd configuration] action create
    - execute the ruby block reload gitlab-monitor svlogd configuration

Running handlers:
Running handlers complete
Chef Client finished, 325/427 resources updated in 03 minutes 29 seconds
gitlab Reconfigured!
可以看到提示執行了3分鐘29秒!
查看啟動情況
#netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 127.0.0.1:9121              0.0.0.0:*                   LISTEN      7685/redis_exporter 
tcp        0      0 127.0.0.1:9090              0.0.0.0:*                   LISTEN      7839/prometheus     
tcp        0      0 127.0.0.1:9187              0.0.0.0:*                   LISTEN      7850/postgres_expor 
tcp        0      0 127.0.0.1:9100              0.0.0.0:*                   LISTEN      7638/node_exporter  
tcp        0      0 127.0.0.1:9168              0.0.0.0:*                   LISTEN      7865/ruby           
tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN      7519/unicorn master 
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      7561/nginx          
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      5506/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      5585/master         
tcp        0      0 0.0.0.0:8060                0.0.0.0:*                   LISTEN      7561/nginx          
tcp        0      0 :::3306                     :::*                        LISTEN      6289/mysqld         
tcp        0      0 ::1:9168                    :::*                        LISTEN      7865/ruby           
tcp        0      0 :::22                       :::*                        LISTEN      5506/sshd           
tcp        0      0 ::1:25                      :::*                        LISTEN      5585/master         
關閉
# sudo gitlab-ctl stop
ok: down: gitaly: 0s, normally up
ok: down: gitlab-monitor: 1s, normally up
ok: down: gitlab-workhorse: 0s, normally up
ok: down: logrotate: 0s, normally up
ok: down: nginx: 0s, normally up
ok: down: node-exporter: 0s, normally up
ok: down: postgres-exporter: 1s, normally up
ok: down: postgresql: 1s, normally up
ok: down: prometheus: 0s, normally up
ok: down: redis: 0s, normally up
ok: down: redis-exporter: 0s, normally up
ok: down: sidekiq: 0s, normally up
ok: down: unicorn: 0s, normally up
啟動
# sudo gitlab-ctl start
ok: run: gitaly: (pid 8296) 0s
ok: run: gitlab-monitor: (pid 8301) 0s
ok: run: gitlab-workhorse: (pid 8304) 1s
ok: run: logrotate: (pid 8312) 0s
ok: run: nginx: (pid 8318) 1s
ok: run: node-exporter: (pid 8324) 0s
ok: run: postgres-exporter: (pid 8329) 1s
ok: run: postgresql: (pid 8334) 0s
ok: run: prometheus: (pid 8342) 0s
ok: run: redis: (pid 8350) 1s
ok: run: redis-exporter: (pid 8354) 0s
ok: run: sidekiq: (pid 8359) 1s
ok: run: unicorn: (pid 8362) 0s
重啟
#sudo gitlab-ctl restart      #其實不加sudo也可以!
查看添加了幾個用戶,如下:
#tail -5 /etc/passwd
gitlab-www:x:498:499::/var/opt/gitlab/nginx:/bin/false
git:x:497:498::/var/opt/gitlab:/bin/sh
gitlab-redis:x:496:497::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:495:496::/var/opt/gitlab/postgresql:/bin/sh
gitlab-prometheus:x:494:495::/var/opt/gitlab/prometheus:/bin/sh

三、登錄驗證

在瀏覽器輸入http://192.168.159.129 就可以看到GitLab的界面了,如下:

技術分享

第一次登錄需要設置新密碼,並且密碼長度不能小於8!設置好之後,會跳轉到登錄界面,如下:

技術分享

默認用戶名是root,然後輸入剛才新設置的密碼,登錄之後,界面如下:

技術分享

到這裏一鍵安裝GitLab就完成了,就可以進行創建項目之類的操作了。

四、postgresql相關命令介紹

註:因為使用一鍵安裝GitLab的rpm包,默認數據庫是postgresql,所以對於不熟悉的朋友,可以參考!

查看postgresql的數據存放目錄
[[email protected]
/* */ gitlab]# su - gitlab-psql -sh-4.1$ ll total 4 drwx------ 19 gitlab-psql root 4096 May 25 10:55 data -sh-4.1$ ll data/ total 112 drwx------ 6 gitlab-psql root 4096 May 25 10:46 base drwx------ 2 gitlab-psql root 4096 May 25 10:55 global drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_clog drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_commit_ts drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_dynshmem -rw-r--r-- 1 gitlab-psql root 3198 May 25 10:46 pg_hba.conf -rw-r--r-- 1 gitlab-psql root 1789 May 25 10:46 pg_ident.conf drwx------ 4 gitlab-psql root 4096 May 25 10:46 pg_logical drwx------ 4 gitlab-psql root 4096 May 25 10:46 pg_multixact drwx------ 2 gitlab-psql root 4096 May 25 10:55 pg_notify drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_replslot drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_serial drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_snapshots drwx------ 2 gitlab-psql root 4096 May 25 10:55 pg_stat drwx------ 2 gitlab-psql root 4096 May 25 11:11 pg_stat_tmp drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_subtrans drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_tblspc drwx------ 2 gitlab-psql root 4096 May 25 10:46 pg_twophase -rw------- 1 gitlab-psql root 4 May 25 10:46 PG_VERSION drwx------ 3 gitlab-psql root 4096 May 25 11:10 pg_xlog -rw------- 1 gitlab-psql root 88 May 25 10:46 postgresql.auto.conf -rw-r--r-- 1 gitlab-psql root 20132 May 25 10:46 postgresql.conf -rw------- 1 gitlab-psql gitlab-psql 90 May 25 10:55 postmaster.opts -rw------- 1 gitlab-psql gitlab-psql 101 May 25 10:55 postmaster.pid postgresql 版本 #cat PG_VERSION 9.6 查看postgresql的進程 #ps aux | grep postgre root 7378 0.0 0.0 3940 360 ? Ss 10:46 0:00 runsv postgresql root 7379 0.0 0.0 4084 472 ? S 10:46 0:00 svlogd -tt /var/log/gitlab/postgresql root 7697 0.0 0.0 3940 356 ? Ss 10:48 0:00 runsv postgres-exporter root 7698 0.0 0.0 4084 476 ? S 10:48 0:00 svlogd -tt /var/log/gitlab/postgres-exporter 495 13278 0.0 0.6 127968 11924 ? Ssl 11:41 0:03 /opt/gitlab/embedded/bin/postgres_exporter -web.listen-address=localhost:9187 495 13283 0.0 1.7 545204 34160 ? Ss 11:41 0:00 /opt/gitlab/embedded/bin/postgres -D /var/opt/gitlab/postgresql/data 495 13287 0.0 1.0 545320 20344 ? Ss 11:41 0:02 postgres: checkpointer process 495 13288 0.0 0.2 545204 5032 ? Ss 11:41 0:00 postgres: writer process 495 13289 0.0 0.8 545204 16228 ? Ss 11:41 0:00 postgres: wal writer process 495 13290 0.0 0.1 545776 2196 ? Ss 11:41 0:00 postgres: autovacuum launcher process 495 13291 0.0 0.0 31012 1460 ? Ss 11:41 0:00 postgres: stats collector process 495 13332 0.0 0.4 644080 8408 ? Ss 11:41 0:01 postgres: gitlab-psql postgres [local] idle 495 14219 0.0 0.4 644128 8892 ? Ss 11:50 0:00 postgres: gitlab gitlabhq_production [local] idle 495 15207 0.0 0.4 643884 8160 ? Ss 12:00 0:00 postgres: gitlab gitlabhq_production [local] idle 495 15208 0.0 0.4 643888 8392 ? Ss 12:00 0:00 postgres: gitlab gitlabhq_production [local] idle 495 19681 0.0 0.3 643428 6804 ? Ss 12:46 0:00 postgres: gitlab gitlabhq_production [local] idle 495 19706 0.0 0.3 643428 6812 ? Ss 12:47 0:00 postgres: gitlab gitlabhq_production [local] idle 可以看到啟動之後的postgresql有2個默認數據庫,一個是postgres,一個是gitlabhq_production! 進入postgresql控制臺方法,在postgreSQL的安裝目的bin下執行命令: 用法:psql database_name, 例:/usr/local/pgsql/bin/psql mydb 指定host、用戶名和數據庫的話,如: /usr/local/pgsql/bin/psql -h localhost -U postgres -d testdb 註:-h 也可以指定socket文件目錄 ######################################### 進入postgresql的gitlabhq_production庫 #su - gitlab-psql -sh-4.1$ /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production psql (9.6.1) Type "help" for help. gitlabhq_production=# help You are using psql, the command-line interface to PostgreSQL. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit gitlabhq_production=# \q #退出 註意:-h 後面指定服務器ip或者socket文件所在目錄 進入postpgresql的postgres庫 #su - gitlab-psql -sh-4.1$ psql -h /var/opt/gitlab/postgresql -d postgres psql (9.6.1) Type "help" for help. postgres=# ############################################## postgresql的其他用法介紹 創建數據庫 CREATE DATABASE test WITH OWNER = postgres ENCODING = ‘UTF8‘; 查看版本: #psql --version 或 SELECT version(); 查看所有數據庫:\l 選擇數據庫:\c databasename 查看所有表:\dt 查看某個表的結構:\d tablename 退出psql控制臺:\q 查看所有索引:\di 查看表的索引: select * from pg_indexes where tablename=‘log‘; 查看數據庫大小: select pg_size_pretty(pg_database_size(‘test_db‘)); 查看所有數據庫大小 select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database; 查看表的大小: select pg_size_pretty(pg_relation_size(‘test_table‘)); 查看表的總大小,包括索引大小 select pg_size_pretty(pg_total_relation_size(‘test‘)); 查看所有表空間 select spcname from pg_tablespace; 查看表空間大小 select pg_size_pretty(pg_tablespace_size(‘pg_default‘)); 導出備份數據庫: pg_dump -h localhost -U postgres databasename > /tmp/databasename.bak.yyyymmdd.sql 導入恢復數據庫(sql文件是pg_dump導出的文件就行,可以是整個數據庫,也可以只是單個表,也可以只是結構等): psql -h localhost -U postgres -d databasename < /tmp/databasename.bak.yyyymmdd.sql 導出某個表: pg_dump -h localhost -U postgres -t tablename dbname > test.sql 導出某個表的結構,加參數"-s": pg_dump -h localhost -U postgres -t tablename -s dbname > test_construct.sql 導出某個表的數據,加參數"-a": pg_dump -h localhost -U postgres -t tablename -a dbname > test_data.sql 查看序列: select * from information_schema.sequences where sequence_schema = ‘public‘;

不足之處,請多多留言指教!

本文出自 “知識體系” 博客,請務必保留此出處http://linuxg.blog.51cto.com/4410110/1929362

GitLab 的一鍵安裝方式