Jenkins adalah alat otomatisasi alat sumber terbuka untuk menyiapkan seluruh jalur pengiriman perangkat lunak -pengiriman berkelanjutan. Hal ini memungkinkan pengembang untuk mengelola dan mengontrol proses pengiriman perangkat lunak di seluruh siklus hidup seperti untuk membangun, menguji, dan menerapkan perangkat lunak mereka dengan andal.
Jenkins memiliki komunitas yang aktif dan dapat diperluas. Itu ditulis dalam bahasa Jawa. Secara umum, Jenkins berjalan sebagai aplikasi servlet Java bawaan yang berdiri sendiri. Dimungkinkan juga untuk dijalankan dalam wadah servlet Java seperti Apache Tomcat atau GlassFish.
Dalam tutorial ini, kita mempelajari cara mengonfigurasi Jenkins dengan SSL di belakang Nginx di Ubuntu 20.04 .
Prasyarat
- Server Ubuntu 20.04
- Pengguna dengan ketentuan sudo
- Minimum 1 GB RAM
- Oracle JDK 11 atau yang lebih baru diinstal.
Langkah 1:Instal Jenkins di Ubuntu
Paket Jenkins yang tersedia di repositori default Ubuntu kemungkinan besar berada di belakang versi terbaru. Disarankan untuk menginstal Jenkin dari paket pemeliharaan yang diproyeksikan yang tersedia di repositori resmi.
Kami pertama-tama akan menambahkan kunci repositori ke sistem.
$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
Saat menulis panduan ini, prosedur akan menginstal versi 2.303.3 dari Jenkins
Selanjutnya, mari tambahkan repositori paket ke sources.list berkas:
$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' Kita harus memperbarui cache repositori
$ sudo apt update Sekarang Anda dapat menginstal Jenkins:
$ sudo apt install jenkins Kemudian mulai layanan
$ sudo systemctl start jenkins Mari konfigurasikan layanan untuk memulai secara otomatis dengan server
$ sudo systemctl enable jenkins Anda dapat memeriksa status layanan
$ sudo systemctl status jenkins
Anda dapat memeriksa versinya dengan melihat file /var/lib/jenkins/config.xml
$ cat /var/lib/jenkins/config.xml <?xml version='1.1' encoding='UTF-8'?><hudson><disabledAdministrativeMonitors/><version>2.303.3</version>......</hudson>
Langkah 2:Konfigurasi Nginx dengan sertifikat SSL
Sekarang karena kita akan menggunakan Nginx untuk mem-proxy komunikasi, pertama-tama kita harus menginstalnya
$ sudo apt install nginx Sekarang Anda perlu menyalin sertifikat di folder untuk digunakan. Kami akan menganggap Anda sudah memiliki sertifikat SSL.
Kami akan menyalin sertifikat
$ sudo cp jenkins.domain.com.crt /etc/nginx/certs/jenkins.domain.com.crt Kemudian salin kuncinya
$ sudo cp jenkins.domain.com.key /etc/nginx/certs/jenkins.domain.com.key
Untuk menghindari konflik dengan konfigurasi default Nginx, kami akan menghapus konfigurasi default dari sites-enabled direktori
sudo rm /etc/nginx/sites-enabled/default Sekarang mari kita buat file konfigurasi Jenkins. Jenkins biasanya menggunakan port 8080 untuk menjalankan tetapi karena kami menggunakan Nginx, itu akan mendengarkan pada port 80 dan 443, kemudian dengan informasi nama domain, itu akan mem-proxy komunikasi secara internal pada port 8080 untuk Jenkins.
Konfigurasi yang akan kita atur akan otomatis memaksa semua permintaan HTTP ke HTTPS
$ sudo vim /etc/nginx/sites-available/jenkins.conf upstream jenkins.domain.com {
server SERVER_IP:8080;
}
server {
server_name jenkins.domain.com;
listen 80 ;
access_log /var/log/nginx/jenkins.log;
return 301 https://$host$request_uri;
}
server {
server_name jenkins.domain.com;
listen 443 ssl http2 ;
access_log /var/log/nginx/jenkins.log;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_certificate /etc/nginx/certs/jenkins.domain.com.crt;
ssl_certificate_key /etc/nginx/certs/jenkins.domain.com.key;
add_header Strict-Transport-Security "max-age=31536000";
location / {
proxy_pass http://jenkins.domain.com;
}
} Selain konfigurasi Jenkins Nginx, kami telah menambahkan beberapa turunan nginx yang diperlukan. Anda dapat menggunakan dan mengoptimalkan sesuai dengan kebutuhan server web Anda.
Sekarang buat simbol dari file konfigurasi untuk mengaktifkannya
$ sudo ln -s /etc/nginx/sites-available/jenkins.conf /etc/nginx/sites-enabled/jenkins.conf Sekarang mulai layanan Nginx
$ sudo systemctl start nginx Kemudian aktifkan saat startup
$ sudo systemctl enable nginx Sekarang Anda dapat menguji konfigurasi Nginx Anda
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful Sekarang restart layanan Nginx untuk mempertimbangkan konfigurasi
$ sudo systemctl restart nginx Sekarang buka port 80 dan 443 di firewall:
$ sudo ufw allow 80,443/tcp Juga, pastikan untuk membuka port ssh sebelum mengaktifkan UFW jika tidak, Anda dapat kehilangan koneksi ssh jika terjadi kesalahan
$ sudo ufw allow 'OpenSSH' Sekarang aktifkan UFW jika belum
$ sudo ufw enable Langkah 3:Akses dan konfigurasikan Jenkins
Sekarang buka browser Anda dengan URL http://jenkins.domain.com dan kemudian Anda akan melihat halaman Jenkins yang meminta kata sandi Anda
Untuk memiliki kata sandi, Anda harus menampilkan konten file yang ditunjukkan
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword 88ba484d8cff4150a90683a07c89ea7c Kemudian paste password dan lanjutkan ke halaman berikutnya. Anda sekarang akan memiliki halaman yang meminta untuk menginstal plugin default atau memilih yang akan diinstal. Dalam kasus kami, kami akan membiarkan yang default
Kemudian Anda akan melihat proses instalasi
Sekarang Anda perlu membuat pengguna admin.
Sekarang validasi URL Jenkins.
Sekarang Anda dapat mulai menggunakan Jenkins
Kesimpulan
Dalam tutorial ini, kita belajar cara mengkonfigurasi Jenkins dengan SSL di belakang Nginx di Ubuntu 20.04. Anda dapat mulai mengonfigurasi tugas dan alur proses CI/CD Anda.