Установка 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:41 - Сохранение кэша образов
  • 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:13 - Создание виртуальной машины
  • 00:31:04 - Создание плейбуков для Ansible
  • 00:36:56 - Установка виртуальной машины
  • 00:38:02 - Команда деплоя
  • 00:40:32 - Установка Jenkins в production
  • 00:41:37 - Ad-Hoc команды в Ansible
  • 00:44:43 - Добавление тестового pipeline
  • 00:45:08 - Настройка числа исполнителей
  • 00:49:16 - Проблема последовательного запуска
  • 00:51:09 - Распределённая сеть агентов
  • 00:53:58 - Установка агента
  • 00:56:58 - Генерация SSH-ключа для агентов
  • 01:00:28 - Добавление Agent Node в Jenkins
Скрытый контент
Комментарии (17)
Руслан
2020-06-01 07:09

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

Ответить
Arunas
2020-06-01 15:59

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

Ответить
Роман
2020-06-01 18:56

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

Ответить
Bondarenko Alexandr
2020-06-02 05:57

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

Ответить
Роман
2020-06-02 06:36

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

Ответить
Bondarenko Alexandr
2020-06-02 06:46

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

Ответить
Дмитрий Елисеев
2020-06-07 05:48

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

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

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

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

Ответить
Bondarenko Alexandr
2020-06-02 06:45

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

Ответить
Дмитрий Елисеев
2020-06-07 06:08

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

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

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

Ответить
Bondarenko Alexandr
2020-06-07 18:55

Спасибо

Ответить
Руслан
2020-06-02 08:18

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

Ответить
fedot
2020-06-02 15:35

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

Ответить
Arunas
2020-06-04 15:56

согласен

Ответить
Bondarenko Alexandr
2020-06-05 07:58

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

Ответить
Дмитрий Елисеев
2020-06-07 06:21

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

Ответить
Дмитрий
2020-08-27 03:20

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

Ответить
Дмитрий
2020-08-27 03:42

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

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