• centos7搭建gitlab服务器


      简单研究docker下gitlab服务器的安装过程。其实是为了后面研究jenkins自动部署。

      其安装也可以用docker安装或者是直接宿主机中安装,参考:https://about.gitlab.com/install

    0.简介

      GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可以认为GitLab是免费版的Github,主要功能都差不多。

    1. gitlab安装

    1.安装相关依赖

    sudo yum install -y curl policycoreutils-python openssh-server
    sudo systemctl enable sshd
    sudo systemctl start sshd
    
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo systemctl reload firewalld

    2.安装Postfix以发送通知邮件

    sudo yum install postfix
    sudo systemctl enable postfix
    sudo systemctl start postfix

    3. 下载rpm包

    https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

    4. 下载后上传到linux服务器

    rpm -ivh ./gitlab-ce-10.0.0-ce.0.el6.x86_64.rpm 

     如下:

    [root@localhost gitlab]# rpm -ivh ./gitlab-ce-10.0.0-ce.0.el6.x86_64.rpm 
    warning: ./gitlab-ce-10.0.0-ce.0.el6.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:gitlab-ce-10.0.0-ce.0.el6        ################################# [100%]
    It looks like GitLab has not been configured yet; skipping the upgrade script.
    
           *.                  *.
          ***                 ***
         *****               *****
        .******             *******
        ********            ********
       ,,,,,,,,,***********,,,,,,,,,
      ,,,,,,,,,,,*********,,,,,,,,,,,
      .,,,,,,,,,,,*******,,,,,,,,,,,,
          ,,,,,,,,,*****,,,,,,,,,.
             ,,,,,,,****,,,,,,
                .,,,***,,,,
                    ,*,.
      
    
    
         _______ __  __          __
        / ____(_) /_/ /   ____ _/ /_
       / / __/ / __/ /   / __ \`/ __ 
      / /_/ / / /_/ /___/ /_/ / /_/ /
      \____/_/\__/_____/\__,_/_.___/
      
    
    Thank you for installing GitLab!
    GitLab was unable to detect a valid hostname for your instance.
    Please configure a URL for your GitLab instance by setting `external_url`
    configuration in /etc/gitlab/gitlab.rb file.
    Then, you can start your GitLab instance by running the following command:
      sudo gitlab-ctl reconfigure
    
    For a comprehensive list of configuration options please see the Omnibus GitLab readme
    https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

     5. 修改IP和端口

    修改/etc/gitlab/gitlab.rb

    vi /etc/gitlab/gitlab.rb

    修改IP和端口,注意这个配置在原来存在,需要用 / external_url 查找后修改:

    external_url 'http://192.168.1.128:8080'

    6. 重新加载配置后重启

    gitlab-ctl reconfigure
    
    gitlab-ctl restart

    补充:我启动后报错得到如下信息:

     查看日志信息:

    (1) 查看状态

    [root@localhost ~]# gitlab-ctl status
    run: gitaly: (pid 8876) 425s; run: log: (pid 713) 922s
    run: gitlab-monitor: (pid 8881) 425s; run: log: (pid 683) 924s
    run: gitlab-workhorse: (pid 8884) 424s; run: log: (pid 676) 924s
    run: logrotate: (pid 8895) 423s; run: log: (pid 670) 924s
    run: nginx: (pid 10608) 15s; run: log: (pid 669) 924s
    run: node-exporter: (pid 8903) 423s; run: log: (pid 681) 924s
    run: postgres-exporter: (pid 8910) 422s; run: log: (pid 711) 922s
    run: postgresql: (pid 8918) 421s; run: log: (pid 701) 923s
    run: prometheus: (pid 10620) 14s; run: log: (pid 674) 924s
    run: redis: (pid 8931) 420s; run: log: (pid 700) 923s
    run: redis-exporter: (pid 8934) 420s; run: log: (pid 702) 923s
    run: sidekiq: (pid 10596) 15s; run: log: (pid 704) 923s
    run: unicorn: (pid 10575) 17s; run: log: (pid 667) 925s

    (2) 查看端口:

    [root@localhost ~]# netstat -nao|grep 8080
    tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 127.0.0.1:8080          127.0.0.1:58594         TIME_WAIT   timewait (35.76/0/0)
    tcp        0      0 127.0.0.1:8080          127.0.0.1:58608         TIME_WAIT   timewait (42.49/0/0)
    tcp        0      0 127.0.0.1:8080          127.0.0.1:58570         TIME_WAIT   timewait (23.64/0/0)
    tcp        0      0 127.0.0.1:8080          127.0.0.1:58630         TIME_WAIT   timewait (57.46/0/0)

    (3)查看日志:

    ==> /var/log/gitlab/nginx/current <==
    2020-09-13_14:07:03.59922 2020/09/13 10:07:02 [emerg] 12265#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
    2020-09-13_14:07:04.10335 2020/09/13 10:07:02 [emerg] 12265#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
    2020-09-13_14:07:04.61290 2020/09/13 10:07:02 [emerg] 12265#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
    2020-09-13_14:07:05.12143 2020/09/13 10:07:02 [emerg] 12265#0: still could not bind()

    发现端口被占用

    (4) 解决办法:

    停止服务:

    gitlab-ctl stop

    修改端口:

    vi /etc/gitlab/gitlab.rb

    下面端口修改为8888

    unicorn['port'] = 8888

    (5)我在中间还报错:

    2020-09-13_14:14:06.12114 2020/09/13 10:14:06 redis: dialing "unix", "/var/opt/gitlab/redis/redis.socket"
    2020-09-13_14:14:06.12122 2020/09/13 10:14:06 error: keywatcher: dial unix /var/opt/gitlab/redis/redis.socket: connect: no such file or directory
    2020-09-13_14:16:47.33884 time="2020-09-13T10:16:47-04:00" level=info msg="Error running query on database:  pg_vacuum_analyze dial unix /var/opt/gitlab/postgresql/.s.PGSQL.5432: connect: no such file or directory
    " source="postgres_exporter.go:919"
    2020-09-13_14:16:47.33891 time="2020-09-13T10:16:47-04:00" level=info msg="Error running query on database:  pg_replication dial unix /var/opt/gitlab/postgresql/.s.PGSQL.5432: connect: no such file or directory
    " source="postgres_exporter.go:919"

    解决:赋予权限:

    sudo chmod 755 /var/opt/gitlab/postgresql
    sudo chmod 755 /var/opt/gitlab/redis
    sudo chmod 755 /var/opt/gitlab/

    (6) 重新加载以及重启

    (7) free查看内存:

    [root@localhost postgresql]# free
                  total        used        free      shared  buff/cache   available
    Mem:        2895200     1086972     1200244       56200      607984     1567808
    Swap:       2097148           0     2097148
    [root@localhost postgresql]# free
                  total        used        free      shared  buff/cache   available
    Mem:        2895200     1914688      371976       56420      608536      739832

      发现内存在一直减少,应该是gitlab初始化没完成。

    (8)等待内存稳定后访问:

     2.gitlab简单使用

    1. 第一次访问需要设置密码

     我将密码简单的设为:  qwe123123

    2. 登陆

    默认账号是root,密码是上面设置的qwe123123

     3.这里我们简单的创建一个项目,并且将本地的项目推送到gitlab(简单的操作下)

    (1) New->new project (有点类似于github)

     (2) windows客户端拉取代码修改之后推送到gitlab

    liqiang@root MINGW64 /g
    $ git clone http://192.168.1.128:8080/root/ssmTemplate.git
    Cloning into 'ssmTemplate'...
    remote: Counting objects: 31, done.
    remote: Total 31 (delta 0), reused 0 (delta 0)
    Unpacking objects: 100% (31/31), done.
    
    liqiang@root MINGW64 /g
    $ cd ssmTemplate/
    
    liqiang@root MINGW64 /g/ssmTemplate (master)
    $ ls
    mvnw*  mvnw.cmd  pom.xml  README.md  src/
    
    liqiang@root MINGW64 /g/ssmTemplate (master)
    $ echo 'xx' >> 1.txt
    
    liqiang@root MINGW64 /g/ssmTemplate (master)
    $ git add .
    warning: LF will be replaced by CRLF in 1.txt.
    The file will have its original line endings in your working directory.
    g
    liqiang@root MINGW64 /g/ssmTemplate (master)
    $ git commit -am "xx"
    [master 737c9a7] xx
     1 file changed, 1 insertion(+)
     create mode 100644 1.txt
    g
    liqiang@root MINGW64 /g/ssmTemplate (master)
    $ git push origin master
    Counting objects: 3, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 269 bytes | 0 bytes/s, done.
    Total 3 (delta 1), reused 0 (delta 0)
    To http://192.168.1.128:8080/root/ssmTemplate.git
       b5f9057..737c9a7  master -> master

    (3)gitlab服务器查看提交记录:

     (4) gitlab服务器查看文件存储位置:

      默认的仓库存储路径在 /var/opt/gitlab/git-data目录下,仓库存储在子目录repositories里面,可以通过修改/etc/gitlab/gitlab.rb文件中git_data_dirs参数来自定义父目录

    [root@localhost postgresql]# tree /var/opt/gitlab/git-data
    /var/opt/gitlab/git-data
    └── repositories
        └── root
            └── ssmTemplate.git
                ├── config
                ├── description
                ├── HEAD
                ├── hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks
                ├── hooks.old.1600008315
                │   ├── applypatch-msg.sample
                │   ├── commit-msg.sample
                │   ├── post-update.sample
      ........

    补充:gitlab相关命令

     启动服务:gitlab -ctl start
    
     查看状态:gitlab -ctl status
    
     停掉服务:gitlab -ctl stop
    
     重启服务:gitlab -ctl restart
    
     让配置生效:gitlab -ctl reconfigure

    补充:防火墙相关命令

    [root@localhost ~]# firewall-cmd --state  
    running
    [root@localhost ~]# systemctl stop firewalld.service
    [root@localhost ~]# firewall-cmd --state
    not running
    [root@localhost ~]# systemctl disable firewalld.service
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    [root@localhost ~]# systemctl status firewalld.service
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:firewalld(1)
    
    Sep 13 09:42:46 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewa....
    Sep 13 09:42:59 localhost.localdomain systemd[1]: Started firewalld - dynamic firewal....
    Sep 13 09:48:46 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewa....
    Sep 13 09:48:51 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewal....
    Hint: Some lines were ellipsized, use -l to show in full.

    补充:gitlab修改服务器地址

    vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

     修改后重启gitlab即可。

  • 相关阅读:
    windows下在yii中使用mongodb
    yii框架便利类CVarDumper使用
    64位虚拟机创建注意事项
    C#中的委托和事件
    Attribute
    NuGet安装及使用教程
    WPF+WEB+WinForm->>表现层共用类
    C#报修系统Ⅱ
    C#带小括号的运算
    工厂模式提供数据源
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/13663847.html
Copyright © 2020-2023  润新知