Меню

git настройка на vps

Как настроить частный сервер Git на VPS

Вступление

В этом руководстве рассказывается, как настроить полноценный сервер Git с помощью SSH-ключей для аутентификации. У него не будет веб-интерфейса, это просто поможет вам установить Git и настроить его доступ к нему. Мы будем использовать хост «git.droplet.com» вместо домена, который вы будете использовать для своего VPS.

Это может быть отличным вариантом, если вы хотите, чтобы ваш код был закрыт во время работы. Хотя open-souce имеет тенденцию быть статус-кво, есть несколько раз, когда вы не хотите, чтобы ваш код был свободно доступен. Например, если вы разрабатываете мобильное приложение, особенно платное. Имейте в виду, что этот код может быть прочитан кем-либо, если он знает URL-адрес, который будет использоваться для клонирования, но это только если они это знают.

Для многих есть одна серьезная проблема, и это веб-интерфейс для ваших репозиториев. GitHub отлично справляется с этим. Есть приложения, которые вы можете установить, такие как Gitosis , GitList и Goblet . Мы не рассматриваем те, которые содержатся в этом учебном пособии, но если вы сильно полагаетесь на графический интерфейс, тогда вы можете просмотреть их и подумать об установке одного из них, как только вы закончите установку своего сервера Git.

Создание пары ключей SSH

Во-первых, нам нужно создать пару ключей SSH. Если вы используете Mac или Linux, вы можете просто выпустить следующую команду в терминале, но замените адрес электронной почты своим собственным:

Я настоятельно рекомендую ввести пароль в ключевые файлы, это еще один уровень безопасности и имеет очень минимальный эффект. Если вы используете операционную систему на базе Windows, есть инструменты для генерации пар ключей, таких как PuTTY Gen, хотя в них есть отказ от ответственности, который вам необходимо проверить с помощью местных законов, прежде чем использовать его, поскольку некоторые страны запретили его использование. Если это не так, вы можете войти в свой VPS, создать пару ключей и загрузить как id_rsa, так и id_rsa.pub для вашего использования.

Далее, VPS будет нужен пользователь специально для Git. Большинство людей просто создадут пользователя под названием «Git», и это то, что мы сделаем для этого учебника, но не стесняйтесь называть этого пользователя, что бы вы ни хотели.

Настройте пользователя Git и установите Git на свой VPS

Войдите в свой VPS и получите root *:

* Некоторые люди чувствуют себя некомфортно, используя корень таким образом. Если ваш VPS настроен на использование sudo, сделайте это.

Добавьте пользователя Unix (не обязательно имена пользователей Git) для обработки репозиториев:

Затем дайте своему пользователю Git пароль:

  • CentOS / Fedora: yum install git
  • Ubuntu / Debian: apt-get install git

Добавьте свой SSH-ключ в список доступа

На этом этапе вы захотите войти в систему как пользователь Git. Если вы еще не вошли в систему этого пользователя, используйте эту команду, чтобы переключиться на него:

Теперь вам нужно загрузить файл id_rsa.pub в домашний каталог пользователя Git. Как только вы это сделаете, нам нужно, чтобы демона SSH узнала, какие ключи SSH принять. Это делается с использованием файла авторизованных ключей, и он находится в папке «ssh». Чтобы создать это, введите:

Примечание: использование двойной команды ‘&’ в вашей команде приводит их в порядок, поэтому она сообщает системе выполнить первую команду, а затем вторую. Использование «тильды» в начале пути подскажет системе использовать ваш домашний каталог, поэтому «

» становится / home / git / вашим VPS.

Мы собираемся использовать команду «cat», которая возьмет содержимое файла и вернет его в командную строку. Затем мы используем модификатор ‘>>’, чтобы что-то делать с этим выходом, а не просто печатать его на консоли. Будьте осторожны с этим, так как одиночная ‘>’ перезапишет все содержимое второго файла, который вы указали. Двойное ‘>’ добавит его, поэтому убедитесь, что вы знаете, что хотите, и в большинстве случаев будет проще просто использовать «>>», чтобы вы всегда могли удалять то, что вы добавляете, а не пытаетесь восстановить то, что вы пюре.

Читайте также:  sheriff aps 2500 сброс настроек

Каждая строка в этом файле представляет собой запись для ключа, к которому вы хотите иметь доступ к этой учетной записи. Чтобы добавить только что загруженный ключ, введите следующее, заменив:

Теперь вы можете увидеть ключ там, если вы используете cat в авторизованном ключевом файле:

Если вы хотите добавить других в свой список доступа, вам просто нужно предоставить вам свой ключ id_rsa.pub и добавить его в файл авторизованных ключей.

Настройка локального хранилища

Это довольно простой процесс, вы просто вызываете команду Git и инициализируете голый репозиторий в зависимости от того, какой каталог вам нужен. Предположим, я хочу использовать «Мой проект» в качестве названия проекта. При создании папки я использую все строчные буквы, заменяю любые пробелы дефисом и добавляю «.git» к имени. Поэтому «Мой проект» становится «my-project.git».

Чтобы создать эту папку как пустой репозиторий Git:

Это оно! Теперь у вас есть репозиторий Git, настроенный на вашем VPS. Давайте перейдем к тому, как использовать его с вашим локальным компьютером.

Использование Git-сервера с локального компьютера

В Linux или Mac OS вам необходимо изменить отдаленное происхождение на вновь созданный сервер. Если у вас уже есть локальное репо, которое вы хотите нажать на сервер, измените пульт с помощью этой команды:

Если это новый репозиторий, который вы настраиваете, используйте это:

Теперь вы можете добавлять, нажимать, тянуть и даже клонировать, зная, что ваш код доступен только для вас.

Но что, если вы хотите, чтобы несколько доверенных людей имели доступ к этому серверу, и вы хотите, чтобы все было проще, сортируя их по именам ваших пользователей? Простой и эффективный способ сделать это — создать папку с именем после каждого человека, поэтому в домашней папке для вашего списка пользователей Git введите:

Теперь, когда вы укажете удаленный репозиторий, он будет выглядеть так:

источник

Создание, настройка и использование собственного Git-сервера

Материал, перевод которого мы сегодня публикуем, посвящён настройке Git-серверов. Git — это система управления версиями, разработанная Линусом Торвальдсом. Git пользуются миллионы людей во всём мире. Компании, вроде GitHub, предлагают службы хостинга кода, основанные на Git. По информации, которую можно найти в различных публикациях, GitHub является крупнейшим сервисом для хостинга IT-проектов. В частности, в 2017-м году сообщество GitHub достигло 24 миллионов разработчиков, которые трудятся над 67 миллионами репозиториев. В наши дни GitHub пользуются абсолютно все — от программистов-одиночек, до крупных организаций. Надо сказать, что даже компания Google перешла на GitHub, закрыв собственный проект схожей направленности.

Зачем нужен собственный Git-сервер?

GitHub — это замечательный сервис, но, особенно если вы — индивидуальный разработчик или небольшая компания, вы, при работе с GitHub, столкнётесь с некоторыми ограничениями. Одно из них заключается в том, что в бесплатный пакет услуг не входит хостинг приватных репозиториев. За эту возможность придётся заплатить, как минимум, $7 в месяц.

В подобных ситуациях, для того, чтобы обойти ограничения, или если вам нужно контролировать то, что происходит с вашими репозиториями, лучше всего создать собственный Git-сервер. Это, с одной стороны, поможет сэкономить, а с другой — даст полный контроль над сервером. Среди продвинутых пользователей Linux весьма распространена практика использования собственных Git-серверов, размещаемых, можно сказать, бесплатно, на уже используемых ими серверах.

В этом руководстве мы поговорим о двух подходах к управлению кодовой базой с использованием собственного Git-сервера. Первый заключается в использовании обычного Git-сервера, а второй — в применении инструмента с графическим интерфейсом GitLab. В качестве платформы для экспериментов тут используется сервер на полностью пропатченной Ubuntu 14.04 LTS, развёрнутый на VPS.

Читайте также:  настройка ozi для android

Использование Git

Здесь мы рассматриваем сценарий, в соответствии с которым у нас имеется удалённый сервер и локальный сервер. Работаем мы периодически то с одним, то с другим.

Для начала установим Git на этих двух машинах. Git можно установить либо из пакета, доступного в репозитории используемого дистрибутива, либо вручную. Тут мы воспользуемся простейшим методом:

Затем добавим пользователя для Git:

Для того чтобы упростить доступ к удалённому серверу, настроим вход по ssh без пароля.

Создадим ssh-ключи на локальном компьютере:

Система спросит у вас о том, куда нужно сохранить ключ. Если вас устраивает стандартное место хранения ключа, просто нажмите Enter. Далее вам предложат задать пароль, который будет нужен для доступа к удалённому серверу.

Вышеописанная команда генерирует два ключа — открытый и закрытый. Запишите или запомните расположение открытого ключа. Он понадобится нам на следующем шаге.

Теперь надо скопировать эти ключи на сервер, что даст возможность наладить канал связи между двумя машинами. На локальном компьютере выполните следующую команду:

Теперь подключитесь по ssh к серверу и создайте директорию проекта для Git. Для репозитория можно использовать любую папку, которая покажется вам подходящей:

Затем перейдите в эту директорию:

Создайте пустой репозиторий:

Если команда успешно сработала, вы увидите сообщение, подобное следующему:

Теперь нужно создать Git-репозиторий на локальной машине. Для этого создаём директорию:

Далее, создаём в ней файлы проекта, и, оставаясь в ней, инициализируем репозиторий:

Об успешной инициализации репозитория можно судить по такому сообщению:

Теперь добавим файлы проекта в репозиторий:

С этого момента, после добавления в проект новых файлов или после изменения существующих, нужно будет выполнять вышеописанную команду ( git add . ). Кроме того, нужно будет выполнять команду git commit , задавая сообщения, описывающие коммиты. Выглядит это примерно так:

В нашем случае здесь имеется файл, который называется GoT (в нём лежит текст обзора Game of Thrones), в который внесены некоторые изменения. Изменения внесены и в другой файл. Поэтому при выполнении команды система сообщила о том, какие изменения были внесены в файлы. В вышеописанной команде опция -a означает обработку всех файлов репозитория. Если вы внесли изменения лишь в один файл, можно, вместо опции -a , указать имя этого файла.

До сих пор мы работали на локальном сервере. Теперь нам нужно отправить локальные данные на удалённый сервер, что сделает их доступными через интернет и позволит организовать совместную деятельность нескольких разработчиков:

Теперь можно отправлять изменения с локальной машины на сервер или загружать данные с сервера, используя, соответственно, опции push или pull :

Если над проектом намереваются работать и другие программисты, сначала им надо клонировать репозиторий с сервера на своих локальных компьютерах:

В данной команде /home/swapnil/project.git — это путь к папке проекта на удалённом сервере, в вашем случае тут будет другой путь.

Затем, после клонирования, надо перейти в директорию проекта:

У вас, вместо project будет имя другой директории. Теперь можно приступать к работе над проектом, принимать изменения и отправлять их на сервер:

Мы полагаем, что вышеприведённых сведений достаточно для того, чтобы помочь тем, у кого не было опыта работы с Git, приступить к использованию собственного Git-сервера. Если вам нужен некий инструмент с графическим интерфейсом, позволяющий работать с проектом на локальной машине, можно воспользоваться чем-то вроде QGit или GitK для Linux.

QGit — графический инструмент для локальной работы с Git-репозиториями

Использование GitLab

Выше мы описали систему, позволяющую организовать совместную работу над проектами с помощью Git, полностью основанную на средствах командной строки. Работать в такой среде, конечно, сложнее, чем с GitHub. По иронии судьбы, хотя GitHub — это крупнейший в мире сервис для хостинга кода, его собственный код закрыт. Это — не опенсорсный проект, то есть, нельзя взять этот код и создать на его основе собственный GitHub. В отличие от чего-то вроде WordPress и Drupal, код GitHub нельзя загрузить и развернуть на собственном сервере.

Читайте также:  настройки автоматического изменения времени

Но, как это обычно бывает в мире опенсорса, проектам с закрытым кодом можно найти замену. В данном случае заменой GitHub может послужить весьма привлекательный опенсорсный проект GitLab. Он позволяет всем желающим разворачивать на собственных серверах нечто подобное GitHub. При этом GitLab можно использовать и для поддержки работы крупной компании или большой команды, и для организации собственного репозитория для небольшого проекта, который пока не готов к тому, чтобы представить его широкой общественности.

GitLab задействует бизнес-модель, характерную для опенсорсных проектов. А именно, имеется свободно распространяемая версия ПО, которую все желающие могут разворачивать на своих серверах, и хостинг кода, похожий на GitHub.

Свободно распространяемая версия GitLab имеет две редакции — бесплатную Community Edition (Core) и платную Enterprise Edition (существуют её варианты Starter, Premium и Ultimate). Последняя основана на Community Edition, которая отлично масштабируется, и, кроме того, включает в себя некоторые дополнительные возможности, ориентированные на организации. Это немного напоминает позиционирование WordPress.org и WordPress.com.

Среди возможностей GitLab можно отметить управление Git-репозиториями, средства обзора кода, наличие системы отслеживания ошибок, ленты активности, поддержку вики-страниц. Здесь имеется и GitLab CI — система непрерывной интеграции.

Многие VPS-провайдеры, вроде DigitalOcean, предлагают пользователям дроплеты GitLab. Если вы хотите развернуть GitLab на собственном сервере, вы можете установить эту систему вручную. GitLab предлагает пакет Omnibus для различных операционных систем. Прежде чем установить GitLab, может возникнуть необходимость в настройке почтового SMTP-сервера для того, чтобы система могла отправлять электронную почту. Рекомендовано для этих целей пользоваться Postfix. Поэтому, перед установкой GitLab, установим Postfix:

В процессе установки Postfix система задаст вам несколько вопросов. Не стоит пропускать ответы на них, но если ответы на них не даны, можно перенастроить систему, выполнив следующую команду:

После запуска этой команды нужно указать параметр Internet Site и задать почтовый идентификатор для домена, который будет использоваться GitLab. Далее, надо будет указать имя пользователя для Postfix и почтовый адрес. Значения остальных параметров можно не менять. После установки и настройки Postfix можно заняться GitLab.

Загрузим свежий пакет отсюда с помощью wget :

Настроим и запустим GitLab:

Теперь надо будет настроить доменное имя в конфигурационном файле, что даст возможность работать с GitLab. Откроем файл:

В этом файле надо будет отредактировать параметр external_url , указав здесь доменное имя сервера. После редактирования файла его надо сохранить, после чего только что созданный GitLab-сайт можно открыть в браузере.

Сайт GitLab, открытый в браузере

По умолчанию система создаёт учётную запись администратора с именем root и паролем 5iveL!fe . Сразу после первого входа на сайт следует поменять пароль.

Смена пароля на сайте GitLab

После того, как пароль изменён, можно войти на сайт и заняться работой с проектами.

Работа с проектами в GitLab

GitLab — это серьёзная система, имеющая массу возможностей. Как в них разобраться? Позволим себе привести тут несколько изменённую цитату из фильма «Матрица»: «Увы, невозможно рассказать о том, что умеет GitLab. Вы должны увидеть это сами».

Уважаемые читатели! Пользуетесь ли вы собственными Git-серверами? Если да — просим рассказать о том, как вы их настраиваете и поддерживаете.

источник

Добавить комментарий

Adblock
detector