Задать вопрос
Ответы пользователя по тегу GitLab
  • Почему на сайте через gitlab pages может не отображаться видеофайл?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Gitlab pages - это стандартный статический хостинг через ngnix. Соответственно вам следует для начала открыть логи ngnix, который используется гитлабом и найти проблемный запрос. Далее идёте в конфиг гитлаба и там дополняете конфиг ngnix для страниц. Там используется шаблон, в который добавляются параметры из гитлабовского конфига и результат скармливается ngnix. Если хотите чего-то большего - то просто поднимаете свой nginx с нужными вам параметрами и там размещаете нужное вам. А в pages просто делаете редирект.
    Ответ написан
    Комментировать
  • Как организовать автодеплой на сервер в закрытом контуре?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ставите на целевой сервер gitlab-runner и далее настраиваете деплой стандартным способом через gitlab ci/cd. Триггеры деплоя - стандартные PR в master ветку только мэйнтэйнером или администратором проекта/группы. Все остальные разработчики работают по стандартному github-flow режиму ну или какой у вас там рабочий процесс принят. В идеале, конечно, следует делать деплой через SSH, как вариант - прокинуть сервер гитлаба в закрытый контур через любой шифрованный тунель, а внутри контура настроить прямой доступ к нему по DNS.
    Раз стоит цель настроить деплой без SSH в закрытый контур, то значит разрешение на такой деплой уже есть. А если нет - ну, что ж, это уже ответственность ТС и что делать в этом случае это уже совсем другой вопрос.
    Ответ написан
    Комментировать
  • Почему gitlab-ci в одном проекте требует запускать строки с sudo а через несколько тегов без sudo те же самые строки?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Потому что неправильно настроены права. Права на каталог/файл у одного пользователя, а скрипт выполняется от имени другого пользователя. Если скрипт выполняется в докере, а файл/каталог на хосте - то плюс еще один уровень настроек доступа в хостовой ОС.
    Ответ написан
    Комментировать
  • Можно ли динамически формировать перечень jobs?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, можно настроить триггер запуска задачи при изменении определенного файла или каталога:
    https://docs.gitlab.com/ee/ci/yaml/#ruleschanges
    docker build:
      script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
      rules:
        - if: $CI_PIPELINE_SOURCE == "merge_request_event"
          changes:
            - Dockerfile
          when: manual
          allow_failure: true
    
    docker build alternative:
      variables:
        DOCKERFILES_DIR: 'path/to/dockerfiles'
      script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
      rules:
        - if: $CI_PIPELINE_SOURCE == "merge_request_event"
          changes:
            - $DOCKERFILES_DIR/**/*

    Если такой вариант не устраивает и надо выполнить какой-то скрипт и по его результатам запускать задачи, то у гитлаба есть API и через него можно запустить любую задачу: https://docs.gitlab.com/ee/ci/triggers/#trigger-a-...
    Ответ написан
    4 комментария
  • Не находит пакет gitlab-ee на Ubunty. Что делать?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Скорее всего вы неверно выполняете шаги установки, описанные в инструкции. Начните сначала и выполните все шаги более внимательно и точно. Рекомендую использовать Debian как наиболее стабильный и наименее проблемный дистрибутив.
    Ответ написан
    4 комментария
  • Не могу зарегистрировать gitlab-runner говорит не валидный сертификат, почему?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    А зачем вам раннер внутри докера, если у вас на машине уже есть раннер? Вы с хостовой машины спокойно можете как выполнять команды в докере, так и использовать докер в самом раннере - там есть поддержка из коробки. Если нужно иметь несколько раннеров - можете спокойно поставить несколько раннеров с разными настройками. Кроме того, CI/CD и прочие тяжелые вещи лучше выносить на отдельную от гитлаба машину - иначе в самом гитлабе получите тормоза во время работы.
    Ответ написан
  • Как ограничить доступ к веб интерфейсу gitlab?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Настроить доступ через VPN - OpenVPN, WG и т.д.
    Ответ написан
    Комментировать
  • Как открыть 22 порт для локального Gitlab Server через роутер?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Включить и настроить встроенный гитлабовский SSH сервер (чтобы отделить его от стандартного SSH сервера)
    2. На вашем прокси сервере стандартный SSH перенести на любой другой порт
    3. Использовать стандартный SSH тунель на прокси сервере для проброса SSH сервера гитлаба с его сервера на локальный стандартный SSH порт (чтобы порт не указывать при работе гита через SSH)
    Ответ написан
  • GitLab CI: как динамически предопределять значения переменных в global-vars?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Использовать переменные окружения проекта/группы: Settings -> CI/CD -> Variables. Плюс можно при ручном выполнении задачи указать нужно значение нужной переменной в интерфейсе пайплайна.
    Ответ написан
    Комментировать
  • Почему не работает авторизация в Gitlab по SSH?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Какая ОС? В убунте мой коллега так и не смог настроить работу SSH - я отдельно поставил в чистом дебиане гитлаб и там все заработало сразу из коробки. В гитлабе есть два механизма доступа по SSH: стандартный SSH сервер - для этого при установке гитлаб настраивает пользователя git и далее через него идет все взаимодействие; и второй вариант - это отдельный SHH демон gitlab-sshd, который используется только гитлабом и запускается на отдельном порту. Тут пару месяцев назад уже был аналогичный вопрос: Как настроить работу с репозиторием GitLab через SSH?
    Ответ написан
  • Возможно ли в gitlab ci динамически поднимать микросервисы в зависимости от переменных?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, можно. Просто запускаете свой скрипт в пайплайне, который читает список файлов и запускает триггер деплоя с вашими условиями.
    Ответ написан
  • Как настроить работу с репозиторием GitLab через SSH?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Проверьте настройки сервера SSH: попробуйте включить вход только через публичный ключ, а вход по паролю отключить. У меня сейчас такая же петрушка на рабочем сервере ) Я локально развернул гитлаб в виртуалке, сразу ссх не заработало, но вчера все внезапно заработало. У меня локально включен вход только по ключу, а по паролю отключен. Проверить коннект ссх для гита к серверу можно так:
    ssh -i ~/.ssh/<YOUR_KEY> -T git@<SERVER IP OR DOMAIN>


    Если нужен детальный лог, то вот так:
    ssh -i ~/.ssh/<YOUR_KEY> -v -T git@<SERVER IP OR DOMAIN>


    При этом ссх агент не должен быть запущен и в .ssh/config нет настроек для сервера. Это проверка конкретного ключа. Если настройки есть в конфиге или в агенте - ссх использует их.

    UPD 1: По информации от системного администратора, оказалось, что почему-то не принимается ключ типа ed25519, а RSA - работает. Рабочий гитлаб на 22 бубунте, а у меня локально - на дебиане 12. Пока что копаем дальше...

    UPD 2: В общем админ пока так и не смог побороть эту напасть и пришли к выводу, что настроить gitlab_sshd будет проще и останемся на нем. А потом, как будет возможность мигрируем сервер на дебиан с бубунты.

    UPD 3: В итоге я просто поднял новый инстанс с чистым дебианом и накатил туда гитлаб - SSH заработал сразу из коробки. Его и используем.
    Ответ написан
    2 комментария
  • Как синхронизировать реплику с Gitlab?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Webhooks + http эндпоинт на нужном сервере, который запустит git pull и/или еще какой скрипт.
    Ответ написан
    Комментировать