РЭДЛАЙН
Лучшие решения для Вас и Вашего бизнеса!
На нашем сайте вы можете получить информацию о веб-разработке, обслуживании и продвижении сайта. Интернет-маркетинге. SEO (поисковой оптимизации). Контекстной и медийной рекламе в Интернете. SMM. Регистрации доменов и хостинговых услугах. И современном дизайне сайтов. Вообщем того что касается веб-разработки, а также много другой полезной информации из мира интернета, бизнеса и интернет-технологий...
Создаем доступные и современные сайты, которые работают! Обслуживаем и эффективно продвигаем интернет-проекты с 2006 года!
Главная Web-мастеру GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере


GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере


Когда вы думаете о развертывании на удаленном сервере, SSH — первый сетевой протокол, который приходит вам на ум. Добавив его поверх GitLab CI/CD, вы сможете воспользоваться преимуществами автоматизации. Чтобы использовать GitLab CI/CD pipeline вместе с SSH-соединениями, необходимо сначала настроить GitLab, и я хотел бы показать вам, как настроить его и запустить простой скрипт.

Необходимые условия

  • Учетная запись GitLab
  • Удаленный сервер (я использую Linux VM в Azure).

Повестка дня

  1. Создайте новый проект GitLab
  2. Создайте и добавьте SSH-ключи
  3. Создание и запуск CI/CD конвейера GitLab

Создание нового проекта GitLab

В качестве первого шага мы создадим проект GitLab.

Войдите в GitLab и перейдите в Новый проект -> Создать из шаблона -> Страницы/Простой HTML -> Использовать шаблон. Дайте проекту имя и нажмите Создать проект. Это создаст простой проект plain html.

Создание проекта

Шаблон создаст файл README.md, начальный .gitlab-ci.yml и общий каталог с файлами index.html и style.css.

Создание и добавление ключей SSH

У нас уже есть пример проекта, теперь нам нужно создать SSH-ключи. Они будут использоваться для подключения к нашему удаленному серверу. Каждый раз, когда запускается конвейер GitLab CI/CD, он использует GitLab Runner.

GitLab Runner — это приложение, задачей которого является запуск заданий в конвейере GitLab CI/CD. GitLab Runner можно установить самостоятельно на своей инфраструктуре или воспользоваться общими бегунами, поддерживаемыми GitLab. GitLab предоставляет вам 400 минут в месяц бесплатно. Мы будем использовать Shared Runner, так как они радикально просты в использовании и не требуют настройки для нашего примера. Нам нужно настроить SSH-ключи таким образом, чтобы задания, выполняемые Shared Runner, могли получить доступ к нашему удаленному серверу через SSH-соединение.

Создание SSH-ключа

Вы можете создать новый SSH-ключ в любой среде, даже в локальной. При создании нового SSH-ключа вы получите два ключа: закрытый и открытый. Важно, чтобы у GitLab был закрытый ключ, а у вашего удаленного сервера — открытый. Поэтому не имеет значения, где вы создаете ключи, важно только поделиться ими соответствующим образом с GitLab и удаленным сервером.

У меня есть виртуальная машина linux на Azure, и я буду использовать ее для целей этой статьи. Я создам новый ssh-ключ с помощью виртуальной машины. GitLab рекомендует создать SSH ключ типа ED25519, который является более безопасным, чем RSA. Для создания нового ключа выполните команду ssh-keygen -t ed25519 -C "GitLab SSH key". Текст после опции -C является комментарием, и вы можете его изменить.

Создание SSH-ключа

Ключ будет создан в директории по умолчанию, которая для linux имеет вид /home//.ssh. Не указывайте ключевую фразу, иначе это будет громоздко для конвейера GitLab CI/CD. У вас должно быть два новых файла в каталоге .ssh:

Добавьте закрытый ключ в качестве переменной GitLab

Скопируйте содержимое закрытого ключа и вернитесь в проект GitLab. Перейдите к Settings -> CI/CD -> Variables -> Expand -> Add Variable. Переменная GitLab представляет собой пару ключ-значение. Назовите ключ SSH_PRIVATE_KEY и вставьте закрытый ключ в поле значения. Нажмите Add Variable.

Добавьте еще две переменные:

Закрытый ключ

Добавить открытый ключ для удаленного сервера

Скопируйте содержимое открытого ключа и вернитесь на удаленный сервер. Войдите под тем же пользователем, которого вы указали в переменной SSH_USER GitLab. Если у вас еще нет такого пользователя, самое время его создать.

Перейдите в каталог /home//.ssh. Если каталог .ssh не существует, то создайте его. Вставьте открытый ключ в файл authorized_keys. Если у вас нет файла authorized_keys, создайте его. Вот скриншот с моей VM (который я удалил перед публикацией, так что теперь он бесполезен).

Открытый ключ

Создание и запуск конвейера GitLab CI/CD

Пришло время создать CI/CD конвейер GitLab. Мы хотим достичь двух целей с помощью SSH: записать имя хоста удаленного сервера и создать файл примера в домашней директории пользователя.

Конвейер определен в .gitlab-ci.yml, и у нас есть два варианта создания/редактирования:

  1. Непосредственно в проекте GitLab в веб-браузере, мы можем редактировать .gitlab-ci.yml и фиксировать изменения.
  2. Клонировать репозиторий, отредактировать .gitlab-ci.yml в вашем любимом редакторе кода, зафиксировать изменения и отправить в GitLab.

Я выберу вариант номер 2, это более правильный способ работы с .gitlab-ci.yml.

Вы можете клонировать репозиторий с помощью команды git clone и адреса репозитория, который вы можете найти в репозитории GitLab, нажав кнопку Clone.

После клонирования откройте уже существующий .gitlab-ci.yml, который был создан как часть шаблона Pages/Plain HTML.

Оригинальный .gitlab-ci.yml:

image: alpine:latest
    
    pages:
      stage: deploy
      script:
      - echo 'Nothing to do...'
      artifacts:
        paths:
        - public
      only:
      - master
    

Нам нужно добавить раздел before_script и обновить раздел script.

Окончательный вариант .gitlab-ci.yml:

image: alpine:latest
    
    pages:
      stage: deploy
      before_script:
      - 'command -v ssh-agent >/dev/null || ( apk add --update openssh )' 
      - eval $(ssh-agent -s)
      - echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add -
      - mkdir -p ~/.ssh
      - chmod 700 ~/.ssh
      - ssh-keyscan $VM_IPADDRESS >> ~/.ssh/known_hosts
      - chmod 644 ~/.ssh/known_hosts
      script:
      - ssh $SSH_USER@$VM_IPADDRESS "hostname && echo 'Welcome!!!' > welcome.txt"
      artifacts:
        paths:
        - public
      only:
      - master
    

.gitlab-ci.yml определяет конвейер. Он использует образ докера alpine:latest для запуска заданий, определенных в трубопроводе. У нас есть только одно задание pages.

Это задание выполняется на этапе: deploy. Мы не определили никаких этапов, но у нас есть 5 этапов по умолчанию: .pre, build, test, deploy, .post. В нашем случае это не имеет значения, так как наш конвейер на данный момент прост и не требует настройки стадий.

Далее у нас есть before_script, который не требует пояснений и будет выполняться перед командой script. Давайте объясним сценарий строка за строкой:

script — это место, где определяется наш фактический код для выполнения. Мы просто хотим вывести имя хоста в журнал заданий, а затем создать файл примера на удаленном хосте.

artifacts указывают, какие артефакты использовать при развертывании. В нашем примере мы его не используем.

only указывает, что задание должно быть запущено только в том случае, если любое изменение будет размещено в ветке master в репозитории.

После внесения изменений нам необходимо зафиксировать их и поместить в хранилище.

Хранилище

Как только изменение будет помещено в ветку master, будет запущен GitLab CI/CD. Перейдите в CI/CD -> Pipelines и вы должны увидеть pipeline в статусе running.

Pipeline в статусе running

Нажмите на него, а затем нажмите на задание pages, чтобы посмотреть журналы.

Просмотр журналов

Работа должна завершиться быстро, в моем случае это заняло 16 секунд. Последняя строка показывает, что задание было выполнено успешно. В строке 51 показана часть script из .gitlab-ci.yml, а в строке 52 мы видим имя хоста удаленного сервера, что является именно тем, чего мы хотели добиться. Проверьте ваш удаленный сервер, вы найдете там welcome.txt.

Вот и все! Мы успешно создали новый проект GitLab, настроили SSH-соединение с удаленным сервером и создали простой конвейер GitLab CI/CD для запуска скрипта через SSH на удаленном сервере.

Спасибо за прочтение.

Источник: https://codertime.ru/blog-ru/gitlab-ci-pipeline-zapusk-stsenariya-cherez-ssh-na-udalennom-servere/

GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере | | 2024-01-31 14:00:00 | | Статьи Web-мастеру | | Когда вы думаете о развертывании на удаленном сервере, SSH — первый сетевой протокол, который приходит вам на ум. Добавив его поверх GitLab CI/CD, вы сможете воспользоваться преимуществами автоматизации. Чтобы использовать GitLab CI/CD pipeline вместе с SSH- | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Дайджест новых статей по интернет-маркетингу на ваш email
Подписаться

Продающие сайты "под ключ"!

Наши сайты зарабытывают вам деньги. Landing-page. Эффективные продающие сайты точно в срок и под ключ! Всего от 14700 рублей
Подробнее...

Интернет-магазины и каталоги "под ключ"!

Эффективные и удобные инструменты торговли (электронной торговли) "под ключ". Продают, даже когда вы спите! Всего от 33800 рублей
Подробнее...

Комплексный интернет-маркетинг и продвижение сайтов

Максимальную эффективность дает не какой-то конкретный метод, а их комбинация. Комбинация таких методов и называется комплексным интернет-маркетингом. Всего от 8000 рублей в месяц
Подробнее...

Реклама в Yandex и Google

Контекстная реклама нацелена лишь на тех пользователей, которые непосредственно заинтересованы в рекламе Ваших услуг или товаров. Всего от 8000 рублей в месяц
Подробнее...

Social media marketing (SMM) — продвижение в социальных медиа

Реклама в Однокласcниках и на Mail.ru Создание, ведение и раскрутка групп и реклама ВКонтакте и Facebook. Всего от 8000 рублей в месяц
Подробнее...

Приглашаем к сотрудничеству рекламные агентства и веб-студии!

Внимание Акция! Приглашаем к сотрудничеству рекламные агентства и различные веб-студии России! Индивидуальные и взаимовыгодные условия сотрудничества.
Подробнее...

Ускоренная разработка любого сайта от 5 дней!

Внимание Акция! Ускоренная разработка любого сайта! Ваш сайт будет готов за 5-10 дней. Вы можете заказать разработку любого сайта "под ключ" за 5-10 рабочих дней, с доплатой всего 30% от его стоимости!
Подробнее...

Ждем новых друзей!

Внимание Акция! Ждем новых друзей! Скидка 10% на услуги по созданию и(или) обслуживанию вашего сайта при переходе к нам от другого разработчика.
Подробнее...

Приведи друга и получи скидку!

Внимание Акция! Приведи друга и получи скидку! Скидка 10% на услуги по созданию и(или) обслуживанию вашего сайта, если клиент заказавший наши услуги, пришел по Вашей рекомендации.
Подробнее...

1 2 3 4 5 6 7 8 9

Новые статьи и публикации



Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!

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

Заявка
Позвоните или оставьте заявку на сайте.


Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!


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


Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.


Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.

Остались еще вопросы? Просто позвоните и задайте их специалистам
с 2:30 до 11:30 по Мск, звонок бесплатный
Или напишите нам в WhatsApp
с 9:30 до 18:30 по Хабаровску
Или напишите нам в WhatsApp
Веб-студия и агентство комплексного интернет-маркетинга «РЭДЛАЙН» © 2006 - 2024

Профессиональная Веб-разработка. Создание сайтов и магазинов "под ключ" , а также по всей России и зарубежью. Продвижение и реклама. Веб-дизайн. Приложения. Сопровождение. Модернизация. Интеграции. Консалтинг. Продвижение и реклама. Комплексный Интернет-маркетинг.

Оставьте заявку / Задайте вопрос

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Заказать услугу

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Обратный звонок

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Подписка на дайджест новостей

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Заказать услуги со скидкой \ Бесплатная консультация







КАКИЕ УСЛУГИ ВАС ИНТЕРЕСУЮТ?

КАКИЕ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ ПОТРЕБУЮТСЯ?

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

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

Что нужно сделать, чтобы заказать создание сайта у нас?

Ну для начала вам нужно представлять (хотя бы в общих чертах), что вы хотите получить от сайта и возможно каким вы хотите его видеть. А дальше все просто. Позвоните нам или оставьте заявку нашим менеджерам, чтобы они связались с Вами, проконсультировали и помогли определиться с подходящим именно Вам сайтом по цене, сроку, дизайну или функционалу. Если вы все ещё не уверены, какой сайт вам нужен, просто обратитесь к нам! Мы вместе проанализируем вашу ситуацию и определим максимально эффективный для вас вариант.

Быстрый заказ \ Консультация

Для всех тарифных планов на создание и размещение сайтов включено:

Комплексная раскрутка сайтов и продвижение сайта Комплексный подход это не просто продвижение сайта, это целый комплекс мероприятий, который определяется целями и задачами поставленными перед сайтом и организацией, которая за этим стоит. Время однобоких методов в продвижении сайтов уже прошло, конкуренция слишком высока, чтобы была возможность расслабиться и получать \ удерживать клиентов из Интернета, просто сделав сайт и не занимаясь им...

Комплексная раскрутка работает в рамках стратегии развития вашего бизнеса в сети и направлена

Быстрый заказ \ Консультация

ЭФФЕКТИВНОЕ СОПРОВОЖДЕНИЕ (ПОДДЕРЖКА, ОБСЛУЖИВАНИЕ) САЙТОВ

Полный комплекс услуг по сопровождению сайтаМы оказываем полный комплекс услуг по сопровождению сайта: информационному и техническому обслуживанию и развитию Интернет сайтов.

Передав свой сайт для поддержки в руки наших специалистов, Вы избавитесь от проблем, связанных с обновлением информации и контролем за работой ресурса.

Наша компания осуществляет техническую и информационную поддержку уже имеющихся сайтов. В понятие «поддержка сайтов» также входят услуги администрирования сайтов, обновления сайтов и их модернизация.

Быстрый заказ \ Консультация

Редизайн сайта и Адаптивный веб дизайн

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

Редизайн сайта — создание нового дизайна сайта с целью улучшения внешнего вида, функциональности и удобства использования. Редизайн сайта – это способ преобразовать проект к извлечению из него максимальной отдачи и средств. В современном мире задачами редизайна является поднятие существующего сайта на новый уровень для внедрения новых технологий, при этом сохраняя многолетний сформировавшийся опыт и успешные решения компаний.

Адаптивный дизайн сайтов и веб-приложений

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

На сегодняшний день адаптивный дизайн является стандартным подходом при разработке новых сайтов (или веб-приложений) и в идеале ваш сайт должен смотреться и функционировать так, как вы задумывали, на всём разнообразии устройств.

Быстрый заказ \ Консультация

Контекстная реклама в Яндекс и GoogleКонтекстная реклама - это эффективный инструмент в интернет маркетинге, целью которого является увеличение продаж. Главный плюс контекстной рекламы заключается в том, что она работает избирательно.

Реклама в поисковых системах Яндекс и Google. Профессиональная настройка рекламы и отслеживание эффективности!

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

Быстрый заказ \ Консультация

Скидка

1500 руб.
Заинтересовались услугами создания, обслуживания или продвижения вашей компании в Интернете?!
Получите 1500 руб.
за он-лайн заявку
Предложение ограничено.

После получения заявки с Вами свяжутся наши специалисты и уточнят все детали по интересующей вас услуге.
«Нажимая на кнопку "Получить скидку", я даю согласие на обработку персональных данных»
×
Получите 1500 рублей!
×
×