Як створити свій перший трубопровід Дженкінса?

Покрокове керівництво по створенню трубопроводу Дженкінса


Чому трубопровід Дженкінса?

Безперервна доставка (CD) є невід’ємною частиною життєвого циклу DevOps.

Це гарантує, що розробники програмного забезпечення / додатків завжди готові до виробництва. Щоб це сталося, кожного разу, коли код оновлюється, його потрібно будувати, тестувати та розгортати постійно. Ось тут в картину входить Дженкінс Трубопровід.

У DevOps безперервна інтеграція та безперервна доставка (CI / CD) досягається за допомогою трубопроводу Jenkins. Використання Jenkins Pipeline для CD допомагає постачати програмне забезпечення з більш швидкими та частими версіями. Це допомагає включити відгуки у кожній наступній версії.

Що таке труба Дженкінса?

Трубопровід Дженкінса – це комбінація робочих місць для постійної доставки програмного забезпечення за допомогою Дженкінса.

Я припускаю, що ви знаєте, що таке Дженкінс. Якщо ні, то перевірити це Курс Удемі для опанування Дженкінса.

Трубопровід Дженкінса складається з декількох станів або етапів, і вони виконуються послідовно один за одним. JenkinsFile – це простий текстовий файл, який використовується для створення конвеєра як код у Дженкінса. Він містить код у специфічній мові Groovy Domain (DSL), який простий у записі та читається людиною.

Або ви можете запустити JenkinsFile окремо, або також можете запустити код конвеєра з веб-інтерфейсу Jenkins. Є два способи створення трубопроводу за допомогою Дженкінса.

  • Декларативний – новий спосіб створення трубопроводу Дженкінса. Тут ви пишете groovy-код, що містить “трубопровідні” блоки, який перевіряється в SCM (управління вихідним кодом)
  • Сценарій – спосіб написання кодового коду, де код визначений всередині «вузлових» блоків.

Перш ніж ми розпочнемо демонстрацію, якщо ви ще не встановили Дженкінса, спочатку встановіть її. Переконайтеся, що у вас система працює і працює Джинкінс.

Створіть трубопровід Дженкінса

Так виглядає потік трубопроводу Дженкінса, який складається з декількох етапів між розробниками, що створюють програмне забезпечення (кодування) та програмне забезпечення, що постачається на виробництво.

Трубопровід Дженкінса

Створимо декларативний конвеєр.

На інформаційній панелі Дженкінса натисніть Новий товар. Потім введіть назву елемента, наприклад, “Перший трубопровід” та виберіть проект “Трубопровід”. Потім натисніть кнопку Гаразд.

Новий предмет - трубопровід Дженкінса

Перейдіть на вкладку Трубопровід, як показано на зображенні нижче, і введіть тут свій код JenkinsFile (код Groovy).

Код Дженкінса

трубопровід {
агент будь-який
етапи {
етап (“Збірка”) {
кроки {
echo ‘Привіт, GeekFlare. Починаємо створювати додаток. ‘
}
}
етап (“Тест”) {
кроки {
input (“Ви хочете продовжити?”)
}
}
етап (“Розгортання”) {
паралельний {
етап (“Розгортання запуску”) {
кроки {
відлуння "Почніть розгортання .."
}
}
етап (“Розгортання зараз”) {
агент {
докер {
reuseNode true
зображення “nginx”
}
}

кроки {
відлуння "Докер створено"
}
}
}
}
етап (“Прод”) {
кроки {
відлуння "Додаток готово"
}

}
}
}

Дозвольте пояснити вищезазначені блоки.

  • The трубопровід блок складається з усіх інструкцій зі складання, тестування та доставки програмного забезпечення. Це ключовий компонент трубопроводу Дженкінса.
  • An агент призначається для виконання трубопроводу на вузлі та виділення робочої області для трубопроводу.
  • А етап це блок, який має кроки зі створення, тестування та розгортання програми. Етапи використовуються для візуалізації процесів Дженкінського трубопроводу.
  • А крок це єдине завдання, яке потрібно виконати, наприклад, створити каталог, запустити зображення докера, видалити файл тощо.

Код Groovy вище, я використовую для JenkinsFile. Будь-який доступний агент призначається до конвеєра. Потім я визначаю етап нарощування і виконую простий ехо-крок. Потім я визначив етап тестування, де на етапі запитується, чи потрібно продовжувати чи ні Після цього я створив етап Deploy, який має ще два етапи, які працюють паралельно. Стартовий етап розгортання має крок із командою echo, а тепер Розгортання має крок, який тягне зображення докера Nginx на вузол. Нарешті, є етап Prod з простим ехо-кроком.

Вищеописаний трубопровід має етапи, які мають прості кроки, щоб зрозуміти, як він працює. Як тільки ви дізнаєтесь, як створити трубопровід, ви можете додати більше складності та створити складні трубопроводи також.

Коли у вас є код на вкладці Трубопровід, натисніть кнопку Застосувати та зберегти. Нарешті, натисніть на Створити зараз, щоб почати будувати щойно створений вами трубопровід Дженкінса.

Побудувати зараз

Ось так виглядатиме інтерфейс користувача, коли конвеєр працює. Якщо ви правильно виконали всі кроки, ваша збірка буде успішною, і на ній з’явиться синій колір (# 27). Якщо в складанні є помилки, це додасть червоний колір збірці (# 27).

Дженкінс Build 27

Тепер натисніть на складання №27, а потім натисніть на консольний вихід, щоб перевірити, що саме сталося в бек-енді, коли він запустився.

Jenkins Build

Ось як буде виглядати вихід, що закінчується повідомленням SUCCESS.

Вихід консолі успіху

Розпочав користувач geekflare
Працює на рівні міцності: MAX_SURVIVABILITY
[Трубопровід] Початок трубопроводу
[Трубопровід] вузол
Працює на Jenkins у / var / lib / jenkins / workpace / Перший трубопровід
[Трубопровід] {
[Трубопровід] етап
[Трубопровід] {(збірка)
[Трубопровід] відлуння
Привіт, GeekFlare. Початок створення додатка.
[Трубопровід]}
[Трубопровід] // етап
[Трубопровід] етап
[Трубопровід] {(Тест)
[Трубопровід] вхід
Ви хочете продовжити?
Продовжуйте або скасовуйте
Затверджено geekflare
[Трубопровід]}
[Трубопровід] // етап
[Трубопровід] етап
[Трубопровід] {(Розгортання)
[Трубопровід] паралельно
[Трубопровід] {(Відділення: Початок розгортання)
[Трубопровід] {(Відділення: Розгортання зараз)
[Трубопровід] етап
[Трубопровід] {(Розгортання запуску)
[Трубопровід] етап
[Трубопровід] {(Розгортання зараз)
[Трубопровід] getContext
[Трубопровід] isUnix
[Трубопровід] ш
[Трубопровід] відлуння
Почніть розгортання ..
[Трубопровід]}
+ докер оглянути -f. nginx
[Трубопровід] // етап
[Трубопровід]}

Помилка: такого об’єкта немає: nginx
[Трубопровід] isUnix
[Трубопровід] ш
+ докер тягнути nginx
Використання тегу за замовчуванням: останнє
останнє: витягнення з бібліотеки / nginx
8d691f585fa8: Потягнення шару fs
5b07f4e08ad0: Потягнення шару fs
abc291867bca: Потягнення шару fs
abc291867bca: Перевірка контрольної суми
abc291867bca: Завантаження завершено
5b07f4e08ad0: Перевірка контрольної суми
5b07f4e08ad0: Завантаження завершено
8d691f585fa8: Перевірка контрольної суми
8d691f585fa8: Завантаження завершено
8d691f585fa8: Витягніть у комплекті
5b07f4e08ad0: Витягніть завершено
abc291867bca: Витягніть у комплекті
Дайджест: sha256: 922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
Статус: Завантажено нове зображення для nginx: найновіше
[Трубопровід] зDockerContainer
Здається, Дженкінс не працює в контейнері
$ docker run -t -d -u 125: 131 -w "/ var / lib / jenkins / робоча область / Перший трубопровід" -v "/ var / lib / jenkins / робоча область / Перший трубопровід: / var / lib / jenkins / робоча область / Перший трубопровід: rw, z" -v "/ var / lib / jenkins / робочий простір / Перший [захищено електронною поштою]: / var / lib / jenkins / робоча область / Перша [захищено електронною поштою]: rw, z" -e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** nginx кіт
$ docker top 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943 -eo pid, comm
[Трубопровід] {
[Трубопровід] відлуння
Докер створено
[Трубопровід]}
$ docker stop –time = 1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
$ docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[Трубопровід] // withDockerContainer
[Трубопровід]}
[Трубопровід] // етап
[Трубопровід]}
[Трубопровід] // паралельно
[Трубопровід]}
[Трубопровід] // етап
[Трубопровід] етап
[Трубопровід] {(Прод.)
[Трубопровід] відлуння
Додаток готово
[Трубопровід]}
[Трубопровід] // етап
[Трубопровід]}
[Трубопровід] // вузол
[Трубопровід] Кінець трубопроводу
Готово: УСПІХ

Вищевказаний Дженкінс Трубопровід створив зображення докера Nginx. Ви можете перевірити це, виконавши команду нижче. Ви також можете побачити зображення докера Nginx.

[захищено електронною поштою]: ~ $ docker image ls
РЕЗОЗИТОРІЯ МАТЕРІАЛУ ІЗОБРАНОГО СТВОРЕНОГО РОЗМІРУ
nginx остання 540a289bab6c 2 тижні тому 126MB
httpd остання 7d85cc3b2d80 2 місяці тому 154MB
redis остання f7302e4ab3a8 2 місяці тому 98.2MB
geekflare_mongodb останній 095d17727ca0 3 місяці тому 325MB

Висновок

Я сподіваюся, що це дає вам уявлення Трубопровід Дженкінса переваги та те, як ви можете їх створити. Сказане – це проста демонстрація, і найкращий спосіб дізнатися – спробувати створити складні трубопроводи.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map