предисловие
git — текущая система управления версиями. Теперь, если вы не работаете в системе управления версиями git, вам почти неловко здороваться с людьми. Существует множество готовых git-сервисов в Интернете, которыми может пользоваться каждый, например, GitHub, известная как социальная сеть для программистов, и bitbucket, неброский и простой в использовании. Нет ничего плохого в том, что они предназначены для личного использования или для компаний, которые могут использовать их для использования с открытым исходным кодом. Однако, если его продвигать и использовать в отделе, это повлечет за собой проблему невозможности раскрытия кода или дополнительные расходы. Первоначально я использовал в отделе управление хранилищем кода вручную на сервере Linux. Разрешения выставить нельзя, а это очень неудобно. Так что я был очень обеспокоен.
Бывает, что компания gitlab предоставляет gitlab community edition, которая в принципе удовлетворяет потребности git-менеджмента в отделе. Gitlab предоставляет множество способов установки, но, конечно, наиболее удобным является способ установки докера, который подходит для таких людей, как я, которые не хотят слишком беспокоиться. Потратьте время, чтобы построить один. Я также прошел через несколько ям и записал шаги следующим образом, надеясь помочь другим людям, у которых есть такая потребность.
установка докера
Поскольку он основан на докере для установки gitlab, сначала нужно установить среду докера. Установил на базе centos 7. в соответствии сРуководство по официальному сайту
удалить старую версию докера
Старая версия докера называется docker или docker-engine, если старая версия уже установлена в системе, ее нужно удалить. Удалите старую версию докера с помощью следующей команды
yum remove docker docker-common docker-selinux docker-engine
Добавить источник docker yum
Новый докер называется docker-ce.Если вы устанавливаете docker-ce в первый раз, вам необходимо установить источник yum для docker-ce. Используйте следующую команду, чтобы добавить источник yum для docker-ce
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-test
Установить докер-се
Сначала смотрим все допустимые версии docker-ce
yum list docker-ce --showduplicates | sort -r
получить следующий список
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-test
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos @docker-ce-stable
docker-ce.x86_64 17.12.0.ce-0.4.rc4.el7.centos docker-ce-test
docker-ce.x86_64 17.12.0.ce-0.3.rc3.el7.centos docker-ce-test
docker-ce.x86_64 17.12.0.ce-0.2.rc2.el7.centos docker-ce-test
docker-ce.x86_64 17.12.0.ce-0.1.rc1.el7.centos docker-ce-test
docker-ce.x86_64 17.11.0.ce-1.el7.centos docker-ce-test
docker-ce.x86_64 17.11.0.ce-0.4.rc4.el7.centos docker-ce-test
...
docker-ce.x86_64 17.03.1.ce-0.1.rc1.el7.centos docker-ce-test
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
Отсюда видно, что последняя стабильная версия — 17.12.0.ce. Мы выбираем установку этой версии с помощью следующей команды
yum install docker-ce-17.12.0.ce
пользовательская конфигурация докера
По известным причинам доступ к центральному репозиторию Docker для загрузки образов Docker очень медленный. Чтобы получить лучший опыт, нам нужно настроить службу ускорения внутреннего зеркала.
По умолчанию docker настраивает рабочий каталог на каталог /var/lib/docker. Обычно этот каталог находится в корневом разделе Linux, а пространство ограничено, поэтому нам нужно настроить рабочий каталог докера на другой каталог.
Служба ускорения изображений может использовать службу ускорения изображений Alibaba Cloud. После регистрации в качестве пользователя Alibaba Cloud войдите на https://cr.console.aliyun.com и выберите службу ускорения изображения в консоли управления, после чего появится следующая информация. Красная часть здесь — это адрес вашего сервиса ускорения изображений Alibaba Cloud.
Чтобы настроить рабочий каталог по умолчанию и адрес репозитория образов docker, нам нужно изменить /etc/docker/daemon.json.
mkdir /etc/docker
vi /etc/docker/daemon.json
Введите следующее
{
"graph":"/u1/docker",
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
graph определяет каталог, в котором запускается Docker, аRegistry-Mirrors определяет адрес репозитория, из которого Docker получает образы.
запустить докер
Выполните следующую команду, чтобы запустить службу докеров
systemctl start docker
Выполните следующую команду, чтобы просмотреть информацию о докере
docker info
Вы можете увидеть следующую информацию
Вы можете видеть, что Docker Root Dir и RegistryMirrors стали содержимым, настроенным в /etc/docker/daemon.json.
установить гитлаб
скачать зеркало
Выполните следующую команду, чтобы загрузить образ версии сообщества gitlab из репозитория образов докеров.
docker pull gitlab/gitlab-ce:latest
Зеркало имеет более 1 г, так что это занимает некоторое время
сохранение данных
Поскольку данные контейнера не могут быть сохранены. Поэтому нам нужно использовать том докера для сопоставления сохраненных данных с каталогом операционной системы. Таким образом, даже если запущенный контейнер выйдет из строя, мы перезапустим новый контейнер, и данные в исходном контейнере не будут потеряны.
Мы создали каталог /u1/gitlab для сохранения данных в контейнере gitlab.
Подготовьтесь к отображению sshd
Кроме того, чтобы git использовал протокол ssh для работы с репозиторием git, мы сопоставляем порт 22 sshd хоста с контейнером. Измените порт sshd хоста на 15678. Из-за более строгого механизма безопасности Centos 7 это яма, и вам необходимо выполнить следующие шаги.
Отредактируйте файл /etc/ssh/sshd_config, раскомментируйте #Port 22 и измените номер 22 на 15678.
Выполните следующую команду, чтобы перезапустить службу sshd
systemctl restart sshd
Выполните следующую команду, чтобы сделать порт 15678 доступным для внешней службы. В противном случае удаленный вход по ssh невозможен.
semanage port -a -t ssh_port_t -p tcp 15678
firewall-cmd --permanent --add-port=15678/tcp
firewall-cmd --reload
запустить гитлаб
docker run \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--volume /u1/gitlab/config:/etc/gitlab \
--volume /u1/gitlab/logs:/var/log/gitlab \
--volume /u1/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
Здесь 443, 80 и 22 порты хоста напрямую пробрасываются в контейнер, и в то же время --volume /u1/gitlab/config:/etc/gitlab , --volume /u1/gitlab/logs :/var/log/gitlab , - -volume /u1/gitlab/data:/var/opt/gitlab Эти три параметра сохраняют конфигурацию, данные и журналы gitlab в файловой системе хоста.
админ настроить gitlab
войти в гитлаб
Дождавшись запуска контейнера докеров, перейдите по адресу http://ip, чтобы войти в интерфейс доступа к gitlab. Первый доступ для нас, чтобы изменить пароль администратора. Следующее
设置后管理员密码后,就进入登录页面,输入用户名 root 和刚才设置的密码就进入了 gitlab 的控制台。 Как показано ниже
Создать группу
В gitlab есть три типа объектов: группа, проект и люди.
Чтобы облегчить управление, мы должны создавать проекты на основе групп. Проект — это репозиторий git. Создайте проект на основе группы, а затем добавьте пользователей в группу после установки соответствующих разрешений. Таким образом, пользователь имеет соответствующие разрешения для всех проектов в группе.
Нажмите ссылку «Создать группу», чтобы создать группу «Здоровье и медицинское развитие», как показано ниже.
Создание пользователей (людей)
Нажмите ссылку «Добавить людей», чтобы создать пользователя «yanggch», как показано ниже.
Поскольку почтовая служба не настроена, почта для пароля инициализации пользователя еще не может быть отправлена. Нам нужно отредактировать пользователя и вручную установить пароль. Как показано ниже. Если пользователь забудет пароль, пополнение пароля также может быть выполнено здесь.
Добавить пользователя в группу
Для того, чтобы облегчить управление, пользователей необходимо добавить в соответствующие группы. Как показано на рисунке ниже, в интерфейсе управления группой щелкните имя группы, чтобы войти в интерфейс настройки пользователя группы. Добавьте только что созданного пользователя «yanggch» в группу «Health Care Development Group» и установите для него роль «Мастер». Только роли «Мастер» или «Владелец» могут отправлять обновления git.
Создать проект (проект)
При добавлении группы gitlab, чтобы сделать проект доступным для всех в группе, обратите внимание на создание проекта в группе. Как показано на рисунке ниже, проект «redis_util» создан в рамках «Группы развития здравоохранения и медицины».
После сборки проекта к нему могут получить доступ пользователи в группе.
Клиентский доступ
Установите git-клиент
Эта демонстрация устанавливает клиент git в Windows. Сначала загрузите установщик клиента git в соответствии с версией Windows. Вот я скачал
https://github.com/git-for-windows/git/releases/download/v2.15.1.windows.2/Git-2.15.1.2-64-bit.exe
доступ к командной строке
После установки щелкните правой кнопкой мыши в каталоге, в котором должен быть подготовлен проект клона, и появится следующее контекстное меню.
Нажмите «Git Bash Here», чтобы войти в среду командной строки git. Мы увидим из проекта redis_util, что команда clone, основанная на протоколе http,
git clone http://7a45cd079bdc/healthcare_dev/redis_util.git
Здесь 7a45cd079bdc на самом деле является именем машины док-контейнера. При фактическом выполнении мы можем заменить эту строку на IP-адрес хоста, на котором расположен контейнер. Следующее
git clone http://10.110.2.50/healthcare_dev/redis_util.git
В этом случае вам будет предложено ввести логин и пароль для входа. Введите здесь имя пользователя и пароль пользователя, которого вы только что создали. Прежде чем использовать его, вам нужно войти в консоль gitlab под этим пользователем и изменить начальный пароль, чтобы использовать его.
Появляется следующее приглашение, указывающее, что проект клонирования из gitlab выполнен успешно.
Cloning into 'redis_util'...
warning: You appear to have cloned an empty repository.
Вход без пароля
Общаться с гитлабом по http протоколу сейчас очень неудобно каждый раз вводить логин и пароль. Пользователь может настроить взаимодействие через ssh и добавить ключ ssh в список настроек sshkey пользователя.
Обратитесь к разделу «Командный доступ», чтобы войти в среду git bash. Выполните следующую команду, чтобы войти в каталог хранилища ключей ssh.
cd ~/.ssh
id_rsa.pub в каталоге — это открытый ключ для доступа по ssh. Если он не существует, выполните следующую команду для создания
ssh-keygen -t rsa
После возврата каретки будет сгенерирован файл id_rsa.pub.
Скопируйте содержимое файла в буфер обмена. Затем войдите в консоль gitlab с именем пользователя и паролем, созданными ранее. В интерфейсе ниже заполните текстовое поле содержимым файла id_rsa.pub.
После сохранения. Затем работайте с репозиторием git по протоколу ssh, и вам больше не нужно будет вводить имя пользователя и пароль. Следующее
нажать коммит
Сначала настройте имя пользователя и конфигурацию почтового ящика пользователя для текущего хранилища.
cd redis_util
git config --local user.name "yanggch"
git config --local user.email "yanggch@inspur.com"
Затем добавьте файл readme.txt в каталог redis_util, выполните следующую команду, чтобы отправить и отправить обновление на удаленный сервер gitlab.
#将新文件加入到版本管理
git add readme.txt
#提交
git commit -m"第一次提交"
#将当前分支 master 推送到远程仓库
git push
#以 master 分支为基础建立一个新的 dev 本地分支
git checkout -b dev
#将本地仓库分支推送到远程仓库,在远程仓库建立对应的 dev 分支
git push --set-upstream origin dev
Перейдите в консоль gitlab, чтобы проверить статус redis_util. Как показано ниже
На данный момент мы завершили создание сервера gitlab на уровне компании. Маленькие друзья могут плавно развиваться на этом.
Оригинальный текст был опубликован в брифе,оригинальная ссылка