В моей установке gitlab не хватает места. Я хочу переместить репозитории пользователя на другой диск. Я не могу найти никаких пошаговых руководств или хороших сообщений на форуме об этом.
Я пытаюсь переехать /opt/gitlab/apps/gitlab/repositories
на другой диск, а затем создать символическую ссылку с исходного имени папки на новое. Это работало, поскольку позволяло мне читать данные в репозиториях, но не удалось создать новое репо при попытке нажать на главную ветку (git push -u origin master
), заявив, что у меня нет разрешения на передачу в мастеринг. Когда я вернул папку вместо символической ссылки, все вернулось к работе, как ожидалось.
Есть ли лучший / правильный способ переместить репозитории в другое место и на другой диск в системе?
Кажется, что у нового родительского каталога на новом устройстве неправильные разрешения. Проверьте владельца, группу и разрешения родительского каталога всех репозиториев в старом и новом расположении.
Кроме того, если это действительно вызвано символической ссылкой (в чем я сомневаюсь), вы можете использовать mount --bind
вместо символической ссылки для повторной привязки каталога к новому диску.
предполагая, что вы настроили pki / неинтерактивную аутентификацию с помощью github (т.е. загрузили соответствующий открытый ключ с аутентификацией, чтобы при запуске git pull ваш закрытый ключ ~ .ssh / id_dsa или ~ ..ssh / is_rsa читался для аутентификации).
проблема, скорее всего, заключается в том, что соответствующий закрытый ключ отсутствует на новом устройстве в:
пользователь @ хост: .ssh / id_dsa
убедитесь, что ваш закрытый ключ вставлен в это место, uid правильный, а chmod 0400 он или не будет работать.
РЕДАКТИРОВАТЬ:
поэтому, как только ваш открытый ключ будет добавлен в github, любой, у кого есть соответствующий закрытый ключ, сможет загрузить / изменить / удалить ваш исходный код. если он был изменен, вы можете отозвать его и добавить еще один, если у вас есть вход в систему для доступа к порталу github или доступ к электронной почте в файле с помощью github или изменить psassword / войти в портал
закрытый ключ должен храниться офлайн и зашифрован
Остановите команду разработчиков, вы собираетесь изменить конфигурацию.
Создайте каталог на своем новом диске или в месте с достаточным пространством, в моем случае, чтобы обеспечить некоторую независимость от местоположения в будущем, я буду использовать ссылку вместо абсолютного местоположения.
mkdir /drive2/repos # create a new base directory
ln -fs /drive2/repos /repos # create a link on the root
chown git:git /drive2/repos # make sure this is git friendly
теперь, используя ваш любимый редактор, измените /etc/gitlab/gitlab.rb
:
git_data_dirs({
"default" => {
"path" => "/repos"
}
})
тогда используйте rsync
или любой другой инструмент для копирования текущего местоположения в новое. Вы можете удалить позже, когда убедитесь, что все работает.
rsync -av /var/opt/gitlab/git-data/* /repos/. # copy keeping all
chown -R git:git /repos/ # reconfirm the ownership
# now reconfigure GitLab to the fire the new location
gitlab-ctl reconfigure