Научит вас, как установить и использовать GitLab

GitLab

Недавно присоединился к компании и обнаружил, что компания все еще использует устаревший производственный инструмент svn.Из-за интенсивного использования svn и git, зная различия между этими двумя инструментами, они пошли все дальше и дальше по пути использования git. Итак, после сильного предложения моего начальства позволить мне внедрить git и его личный склад gitlab в компанию, концепция Amway «затачивать ножи без ошибок рубить плотников» была окончательно убеждена мной. Ниже приведены подробные заметки, которые я сделал во время установки и записи, чтобы после установки я мог поделиться ими со своими коллегами, чтобы я мог понять их напрямую и сократить затраты на обучение команды.

Преимущества git

  1. git распространяется, svn нет git можно использовать локально распределенным образом, а различные исторические трассировки можно случайно сохранять, не беспокоясь о загрязнении сервера.Вы можете отправлять код и просматривать журналы, не подключаясь к серверу.
  2. Ветки GIT и ветки SVN отличаются Ветка в SVN на самом деле является копией репозитория, а репозиторий git — это моментальный снимок, поэтому переключение git, слияние веток и т. д. происходит быстрее.
  3. git имеет мощную систему управления репозиторием кода — gitlab Очень удобно управлять разрешениями, код-ревью, создавать и управлять проектами

Введение в GitLab

GitLab: это онлайн-репозиторий кода, на котором размещается программное обеспечение на основе Git. Вы можете использовать gitlab для самостоятельного создания системы, аналогичной Github. Обычно он используется для создания частных серверов git во внутренних сетях, таких как предприятия и школы. Возможности: Gitlab — это платформа управления кодом, которая обеспечивает размещение кода, проверку коммитов и отслеживание проблем. Это очень важно для управления качеством разработки программного обеспечения. Редакции: GitLab делится на Community Edition (CE) и Enterprise Edition (EE). Конфигурация: рекомендуется иметь 2 ядра процессора и более 2 ГБ памяти.

Сервисный состав Gitlab:

Nginx: статический веб-сервер. gitlab-shell: используется для обработки команд Git и изменения списка разрешенных ключей. (Рубин) gitlab-workhorse: Облегченный обратный прокси-сервер. (идти)

GitLab Workhorse — гибкий обратный прокси. Он обрабатывает некоторые большие HTTP-запросы, такие как загрузка файлов, загрузка файлов, Git push/pull и загрузка пакетов Git. Другие запросы обратно проксируются в приложение GitLab Rails, которое обратно проксируется в серверный единорог.

logrotate: инструмент управления лог-файлами. postgresql: база данных. Redis: кэш базы данных. sidekiq: используется для выполнения задач в очереди в фоновом режиме (асинхронное выполнение). (Рубин) unicorn: HTTP-сервер для Rack-приложений, на котором размещены приложения GitLab Rails. (Веб-сервер Ruby, в основном написанный на Ruby)

Установка GitLab

1. Исходная установка

2.юм установка

Официальный адрес источника:about.git lab.com/downloads/#…Зеркальный источник Университета Цинхуа:Зеркало. Дыхание. Его план на четыре года. Квота. Способности/помощь/git lab…

Создайте новый /etc/yum.repos.d/gitlab_gitlab-ce.repo со следующим содержимым:

    [gitlab-ce]
    name=Gitlab CE Repository
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
    gpgcheck=0
    enabled=1

Установить зависимости

    sudo yum install curl openssh-server openssh-clients postfix cronie
    sudo service postfix start
    sudo chkconfig postfix on
    #这句是用来做防火墙的,避免用户通过ssh方式和http来访问。
    sudo lokkit -s http -s ssh

повторно выполнить

    sudo yum makecache
    sudo yum install gitlab-ce
    sudo gitlab-ctl reconfigure  #Configure and start GitLab

Настройте доменное имя: vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

    # 外网访问的端口,如果服务器已经有服务器占用了80,那么这里可以改成其它
    listen *:8888;
    server_name gitlab.test.domain.com;

    set $http_host_with_default "gitlab.test.domain.com:8888";

Дополнительное примечание: поскольку эта пользовательская конфигурация nginx будет перегенерирована при компиляции конфигурации gitlab /etc/gitlab/gitlab.rb, поэтому, если конфигурация gitlab настроена правильно, вышеуказанный nginx не нужно настраивать.

изменить пароль

    gitlab-rails console production
    user = User.where(id:1).first
    user.password='123456'
    user.save!

Резервное копирование и восстановление GitLab

резервный

    # 可以将此命令写入crontab,以实现定时备份
    /usr/bin/gitlab-rake gitlab:backup:create

Резервные копии данных будут храниться в /var/opt/gitlab/backups, и пользователь может изменить значение по умолчанию, настроив параметр gitlab_rails['backup_path'].

восстанавливаться

    # 停止unicorn和sidekiq,保证数据库没有新的连接,不会有写数据情况
    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq

    # 进入备份目录进行恢复,1476900742为备份文件的时间戳
    cd /var/opt/gitlab/backups
    gitlab-rake gitlab:backup:restore BACKUP=1476900742
    cd -

    # 启动unicorn和sidekiq
    sudo gitlab-ctl start unicorn
    sudo gitlab-ctl start sidekiq

Модификация конфигурационного файла GitLab

    vim /etc/gitlab/gitlab.rb

базовая конфигурация гитлаба:

    #外部访问url(经过编译后,自动将这个配置编译到nginx配置,nginx就无需配置了)
    external_url 'http://gitlab.test.domain.com:8888'
    #默认值就是8080。如果端口被占用,可将8080修改为其它(例如:9090)
    unicorn['port'] = 8080

gitlab отправить конфигурацию почты

    gitlab_rails['smtp_enable'] = true  
    gitlab_rails['smtp_address'] = “smtp.exmail.qq.com”  
    gitlab_rails['smtp_port'] = 25  
    gitlab_rails['smtp_user_name'] = “huangdc@domain.com“  
    gitlab_rails['smtp_password'] = "smtp password"  
    gitlab_rails['smtp_authentication']= “plain"  
    gitlab_rails['smtp_enable_starttls_auto']= true  
    gitlab_rails['gitlab_email_from']= 'huangdc@domain.com'  
    gitlab_rails['gitlab_email_reply_to']= ‘noreply@domain.com'  

Сервер изменил пит порта ssh (необходимо изменить конфигурацию порта ssh)

    #修改过ssh端口,gitlab中项目的的ssh地址,会在前面加上协议头和端口号“ssh://git@gitlab.domain.com:55725/huangdc/test.git”
    gitlab_rails['gitlab_shell_ssh_port'] = 55725

Конфигурация вступает в силу

    #使配置生效
    gitlab-ctl reconfigure
    #重新启动GitLab 
    gitlab-ctl restart

Общие команды GitLab

    gitlab-ctl start    # 启动所有 gitlab 组件;
    gitlab-ctl stop        # 停止所有 gitlab 组件;
    gitlab-ctl restart        # 重启所有 gitlab 组件;
    gitlab-ctl status        # 查看服务状态;
    vim /etc/gitlab/gitlab.rb        # 修改gitlab配置文件;
    gitlab-ctl reconfigure        # 重新编译gitlab的配置;
    gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
    gitlab-ctl tail        # 查看日志;
    gitlab-ctl tail nginx/gitlab_access.log

Примечание. Выполнение команды reconfigure восстановит конфигурацию компонента nginx в gitlab, что приведет к потере настраиваемых измененных портов и доменных имен.

Общий каталог

    日志地址:/var/log/gitlab/   # 对应各服务的打印日志 
    服务地址:/var/opt/gitlab/   # 对应各服务的主目录 

Посмотреть версию гитлаба

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

Новый проект

После входа в сеанс gitlab с пользователем root нажмите «новый проект», чтобы создать проект, например, проект называется «kuaijiFirstProject». Затем вы обнаружите, что на жестком диске был сгенерирован файл git:

    /var/opt/gitlab/git-data/repositories/root/kuaijiFirstProject.git

китаизация

gitlab.com/continue/git…

Использование гитлаба

    ssh -T -p 55725 git@gitlab.domain.com

Примечание: приведенная выше команда ssh прошла тест, что не обязательно означает, что код git clone может быть клонирован git.Код git clone должен иметь разрешение на запись для учетной записи, которая выполняет команду.Если обычный пользователь использует sudo git clone , тогда git будет использовать закрытый ключ учетной записи root.

1. Войти

Администратор создаст учетную запись и установит разрешения для пользователя.

2. Пользователь генерирует ssh-ключ на стороне клиента.

Справочная статья:у-у-у. Краткое описание.com/afraid/142 не 3 это 8 ах…

    ssh-keygen -t rsa -C "huangdc@domain.com"

3. Скопируйте содержимое открытого ключа в «Ключи SSH» в настройках пользователя gitlab.

Windows: clip < ~/.ssh/id_rsa.pub Mac: pbcopy < ~/.ssh/id_rsa.pub GNU/Linux (requires xclip): xclip -sel clip < ~/.ssh/id_rsa.pub

4. Проверьте ssh-соединение

#标准测试代码:ssh -T git@gitlab.com
ssh -T -p 55725 git@gitlab.domain.com  #修改过端口号的测试代码

В случае успешного подключения появится следующее сообщение:

    Welcome to GitLab, huangdc!

Примечание: на самом деле для выполнения этой команды ssh используется пользователь удаленного сервера git.Этот пользователь создается при установке gitlab.Все ssh-клиенты, использующие сервер gitlab, используют пользователя git. Пользователь «huangdc» здесь создан gitlab, который используется для управления разрешениями gitlab, а также используется в качестве информации разработчика для идентификации отправленного кода.Не путайте его с пользователями ssh.

Как использовать несколько открытых ключей SSH (мой компьютер использует несколько репозиториев кода)

На самом деле принцип таков: потому что для каждого хранилища требуется соединение ssh, а команда ssh по умолчанию использует закрытый ключ в каталоге .ssh для подключения к хранилищу кода, поэтому мы можем переопределить его для разных доменных имен хранилища в .ssh/. директория config.закрытый ключ.

Примеры следующие:

Отредактируйте файл: vim /Users/david/.ssh/config

    Host            gitlab.domain.com    
    IdentityFile    /Users/david/.ssh/id_rsa    

Инициализировать проект в среде командной строки

  1. Сначала создайте пустой склад кода на gitlab и получите адрес склада следующим образом:
    ssh://git@gitlab.domain.com:55725/huangdc/test.git

  1. Инициализируйте репозиторий локально, зафиксируйте код и отправьте его в удаленную основную ветку.
    git clone ssh://git@gitlab.domain.com:55725/huangdc/test.git  
    cd test  
    touch README.md
    git add README.md
    git commit -m "add README"
    git push -u origin master

Миграция старых проектов из среды командной строки

  1. Сначала создайте пустой склад кода на gitlab и получите адрес склада следующим образом:
    #注意:已存在代码的旧项目只能推送到空的远程代码仓库
    ssh://git@gitlab.domain.com:55725/dev/memberApi.git     

  1. Инициализировать проект локально, связать с удаленным складом, отправить на удаленный склад
 cd /Users/david/work_www/memberApi
 git init
 git remote add origin ssh://git@gitlab.domain.com:55725/dev/memberApi.git
 git push -u origin master

Установка и открытие SourceTree

  1. Ссылка для скачивания с официального сайта:www.sourcetreeapp.com/
  2. После открытия SourceTree вам необходимо войти в свою учетную запись Atlassian, чтобы активировать SourceTree. Вы можете войти в систему напрямую с помощью своей учетной записи Google.
  3. После входа в систему вам все равно понадобятся некоторые настройки, просто пропустите их самым простым способом

##502 Устранение ошибок 1. Разрешения

chmod -R 755 /var/log/gitlab                //增加权限

2. Порт занят

vim  /etc/gitlab/gitlab.rb                  //编辑配置文件
external_url '*****:*****'                  //更改端口

3. Недостаточно памяти Для установки GitLab требуется не менее 4 ГБ ОЗУ.

woo woo Краткое описание.com/afraid/no 04356 oh 01…