Установка Jenkins с Docker

Установка Jenkins через Docker. Нюансы запуска docker-compose внутри контейнера. Организация сети распределённой сборки. Подготовка виртуальных машин для менеджера и агентов через Ansible.

  • 00:00:38 - Выбор системы автоматизации
  • 00:03:30 - Способы установки Jenkins
  • 00:05:40 - Создание проекта
  • 00:07:26 - Добавление Makefile
  • 00:08:46 - Доступ к Docker из контейнера
  • 00:10:43 - Использование Docker в Docker
  • 00:11:53 - Использование стороннего docker-демона
  • 00:14:17 - Пробрасывание сертификатов
  • 00:16:30 - Пробрасывание рабочей директории
  • 00:17:40 - Сохранение кэша образов
  • 00:19:28 - Локальная установка
  • 00:21:34 - Интерфейс Blue Ocean
  • 00:22:16 - Создание демонстрационного pipeline
  • 00:24:05 - Локальный прокси Nginx
  • 00:26:14 - Установка docker-compose
  • 00:28:29 - Конфигурация для production
  • 00:30:14 - Создание виртуальной машины
  • 00:31:05 - Создание плейбуков для Ansible
  • 00:36:57 - Установка виртуальной машины
  • 00:38:03 - Команда деплоя
  • 00:40:32 - Установка Jenkins в production
  • 00:41:38 - Ad-Hoc команды в Ansible
  • 00:44:44 - Добавление тестового pipeline
  • 00:45:09 - Настройка числа исполнителей
  • 00:49:18 - Проблема последовательного запуска
  • 00:51:10 - Распределённая сеть агентов
  • 00:54:01 - Установка агента
  • 00:57:02 - Генерация SSH-ключа для агентов
  • 01:00:32 - Добавление Agent Node в Jenkins
Скрытый контент
Комментарии (17)
Руслан

Спасибо, отличное видео.

Ответить
Arunas

Спасибо, очень!

Ответить
Роман

Дмитрий спасибо за качественный материал, и за тот труд ,который вы проделали, чтоб доступно все изложить,но не кажется вам что мы сильно начинаем углубляться в девопсовские вещи

Ответить
Bondarenko Alexandr

А как без этого?

Ответить
Роман

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

Ответить
Bondarenko Alexandr

Ну уж и не знаю... Я программист и я регулярно настраиваю CI/CD. Для меня материал довольно полезен.

Ответить
Дмитрий Елисеев

Данные знание мало пригодятся в работе, т.к. в любой студии или компании программисту не дадут этим заниматься, для этого есть devops

Наоборот, понятие DevOps как раз подразумевает, что всем этим начинают заниматься сами программисты. А не классический вариант, когда в компании есть отдельный программист (dev) и отдельный сисадмин (ops).

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

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

Ответить
Bondarenko Alexandr

Спасибо, Дмитрий! Одно время попробовал запустить Jenkins в docker с маунтом докер сокета, но во время сборки приложений при поднятии контейнеров не маунтились тома. Теперь понимаю, как этого избежать.

Ответить
Дмитрий Елисеев

В таком случае нужно было монтировать рабочую папку по тому же абсолютному пути:

volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /var/jenkins_home:/var/jenkins_home

чтобы внешний docker-демон видел тот же /var/jenkins_home.

Ответить
Bondarenko Alexandr

Спасибо

Ответить
Руслан

Отличный урок, спасибо!

Ответить
fedot

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

Ответить
Arunas

согласен

Ответить
Bondarenko Alexandr

Дмитрий, а почему задача из authorize.yml запускается отдельно от задачи создания пользователя?

Ответить
Дмитрий Елисеев

Потому что она необязательна для запуска.

Ответить
Дмитрий

Спасибо за замечательные уроки! Вопрос, почему мне приходится в плейбуках уточнять путь к ролям? Вместо просто: - swap, надо писать: .../roles/swap У меня ubuntu 16.

Ответить
Дмитрий

Сам себе отвечаю, потому что плейбуки зачем-то поместил в отдельную папку, а надо в корень рядом с папкой /roles

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий