GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menjalankan Jenkins Container sebagai Layanan Systemd dengan Docker

Tugas yang berulang biasanya membosankan dan akhirnya menghabiskan banyak waktu dan energi Anda. Seiring waktu, beberapa alat otomatisasi telah dikembangkan untuk membantu meringankan kerumitan dalam melakukan pekerjaan yang berulang. Salah satu alat otomatisasi tersebut adalah Jenkins. Jenkins adalah server otomasi sumber terbuka yang dirancang untuk membantu pengembang perangkat lunak membangun, menguji, dan menyebarkan aplikasi dan dengan demikian menyederhanakan proses integrasi dan pengiriman yang berkelanjutan.

Kami telah menulis artikel sebelumnya tentang cara menginstal Jenkins di CentOS 8/ RHEL 8. Pada artikel ini, kami akan melakukan hal-hal yang sedikit berbeda dan menjalankan wadah Jenkins sebagai layanan systemd dengan buruh pelabuhan.

Prasyarat

Beberapa hal diperlukan sebelum Anda melanjutkan.

  • Docker diinstal pada sistem Linux Anda.
  • Pengguna biasa dengan hak istimewa sudo.

Langkah 1) Instal Mesin Docker

Untuk memulai, Anda harus menginstal mesin Docker di sistem Anda. Kami memiliki artikel terperinci tentang cara menginstal Docker di CentOS 8 / RHEL 8. Jalankan perintah docker di bawah ini untuk menampilkan versi docker

$ sudo docker version

Dari cuplikan di atas, kami telah mengonfirmasi bahwa buruh pelabuhan diinstal dan bahwa kita menjalankan buruh pelabuhan versi 19.03.13.

Langkah 2) Buat pengguna Jenkins

Selanjutnya, kita akan membuat pengguna sistem 'Jenkins' yang akan mengelola layanan Jenkins. Tapi pertama-tama, buat grup sistem untuk Jenkins:

$ sudo groupadd --system jenkins

Kemudian buat pengguna sistem Jenkins

$ sudo useradd -s /sbin/nologin --system -g jenkins jenkins

Dan akhirnya tambahkan pengguna Jenkins ke grup buruh pelabuhan seperti yang ditunjukkan:

$ sudo usermod -aG docker jenkins

Untuk mengonfirmasi bahwa pengguna Jenkins ditambahkan ke grup buruh pelabuhan, jalankan perintah id seperti yang ditunjukkan

$ id jenkins

Outputnya adalah,

[[email protected] ~]$ id jenkins
uid=991(jenkins) gid=986(jenkins) groups=986(jenkins),989(docker)
[[email protected] ~]$

Fantastis! Mari kita lanjutkan dan tarik gambar Jenkins.

Langkah 3)  Tarik Jenkins Image dari hub Docker

Panggil perintah berikut untuk menarik gambar Jenkins terbaru dari hub Docker.

$ sudo docker pull jenkins/jenkins:lts

Ini biasanya memakan waktu beberapa detik pada koneksi internet yang cukup stabil. Setelah diunduh, verifikasi bahwa gambar Jenkins ada dengan menjalankan perintah berikut:

$ sudo docker images | grep jenkins

Output dari perintah di atas adalah:

[[email protected] ~]$ sudo docker images | grep jenkins
jenkins/jenkins     lts                 f669140ba6ec        6 days ago          711MB
[[email protected] ~]$

Jenkins memerlukan penyimpanan yang persisten untuk menyimpan data dan digunakan kembali bahkan jika container mogok. Oleh karena itu, kita akan membuat direktori penyimpanan seperti yang ditunjukkan.

$ sudo mkdir /var/jenkins
$ sudo chown -R 1000:1000 /var/jenkins

Langkah 4) Buat layanan systemd untuk Jenkins

Menggunakan editor teks pilihan Anda, buat file systemd Jenkins seperti yang ditunjukkan:

$ sudo vi /etc/systemd/system/jenkins-docker.service

Tempel konten berikut &simpan file.

[Unit]
Description=Jenkins Server
Documentation=https://jenkins.io/doc/
After=docker.service
Requires=docker.service

[Service]
Type=simple
User=jenkins
Group=jenkins
TimeoutStartSec=0
Restart=on-failure
RestartSec=30s
ExecStartPre=-/usr/bin/docker kill jenkins-server
ExecStartPre=-/usr/bin/docker rm jenkins-server
ExecStartPre=/usr/bin/docker pull jenkins/jenkins:lts
ExecStart=/usr/bin/docker run  --name jenkins-server  --publish 8080:8080 --publish 50000:50000  --volume /var/jenkins:/var/jenkins_home  jenkins/jenkins:lts
SyslogIdentifier=jenkins
ExecStop=/usr/bin/docker stop jenkins-server

[Install]
WantedBy=multi-user.target

Untuk memulai layanan Jenkins, muat ulang systemd terlebih dahulu dan kemudian mulai Jenkins.

$ sudo systemctl daemon-reload
$ sudo systemctl start jenkins-docker

Sekarang mari kita periksa apakah Jenkins sedang berjalan. Untuk melakukannya, kami akan mengeksekusi:

$ sudo systemctl status jenkins-docker

Besar ! Jenkins aktif dan berjalan sebagai layanan systemd. Karena Jenkins akan berjalan di port 8080, buka port di firewall seperti yang ditunjukkan:

$ sudo firewall-cmd --permanent --add-port=8080/tcp
$ sudo firewall-cmd --reload

Untuk menyiapkan Jenkins, cukup telusuri URL server seperti yang ditunjukkan

http://server-ip:8080

Anda akan mendapatkan halaman 'Buka Kunci Jenkins' seperti yang ditunjukkan. Untuk melanjutkan, Anda perlu memberikan kata sandi yang terletak di file yang ditampilkan

[[email protected] ~]$ cat /var/jenkins/secrets/initialAdminPassword
9c61bd823a404056bf0a408f4622aafc
[[email protected] ~]$

Setelah selesai, Klik 'Lanjutkan'

Selanjutnya, pilih opsi ‘Instal plugin yang disarankan’ seperti yang ditunjukkan.

Setelah itu, buat pengguna administratif untuk akun Jenkins dan klik 'Simpan dan lanjutkan'

Pemasang akan memandu Anda melalui langkah-langkah yang tersisa sampai akhir. Setelah Instalasi berhasil, kita akan mendapatkan dasbor Jenkins berikut

Dan itu bungkus. Dalam panduan ini, Anda mempelajari cara menjalankan Jenkins di dalam wadah buruh pelabuhan sebagai layanan systemd.

Baca JugaCara Memasang dan Mengonfigurasi Jenkins di Ubuntu 20.04


Docker
  1. Cara Menginstal WordPress dengan Docker di Ubuntu

  2. Bagaimana Cara Menjalankan Program Di Dalam Wadah Docker?

  3. Cara Menyebarkan Wadah nginx dengan Docker di Linode

  1. Cara Menginstal Jenkins dengan Docker

  2. Cara Menjalankan MySQL Dalam Wadah Docker

  3. Cara Menjalankan Perintah di Running Docker Container

  1. Cara Menggunakan Perintah Docker Run dengan Contoh

  2. Cara Menjalankan Container sebagai Layanan Systemd dengan Podman

  3. Bagaimana cara menjalankan skrip dengan systemd tepat sebelum dimatikan?