GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menginstal Jenkins di CentOS dan menghubungkannya ke GitHub

Jenkins menyediakan alat CI/CD open source yang banyak digunakan. Dalam artikel ini, kita akan mempelajari cara menginstal Jenkins dan mengkonfigurasinya dengan Github untuk mengirim file ke server menggunakan SSH.

Instalasi Jenkins:

Jenkins adalah aplikasi berbasis JAVA jadi pertama-tama, kita perlu menginstal JAVA. Perintah berikut akan menginstal JAVA pada centos 7.

sudo yum install java-1.8.0-openjdk-devel

Verifikasi versi Java

[[email protected] ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Sekarang konfigurasikan Jenkins Repository menggunakan perintah berikut.

curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo

Ini akan menampilkan output berikut.

[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1

Kemudian jalankan perintah berikut untuk menambahkan kunci Jenkins.

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Sekarang kami telah mengonfigurasi Jenkins Repository dan kami siap untuk menginstal Jenkins menggunakan perintah sederhana berikut.

sudo yum install jenkins

Setelah instalasi selesai, periksa layanan Jenkins dan aktifkan saat reboot sistem.

sudo systemctl start Jenkins
sudo systemctl enable jenkins

Sekarang reboot sistem dan pastikan layanan jenkins berjalan dengan menggunakan perintah berikut.

sudo systemctl enable jenkins

Sekarang izinkan Jenkins di firewall.

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

Konfigurasikan Pengaturan:

Kami tidak dapat menggunakan Jenkins secara langsung, kami perlu mengetikkan nama domain atau alamat IP di browser web diikuti dengan nomor port default Jenkins 8080.

Pada tangkapan layar di atas, kita perlu mengetikkan kata sandi yang dibuat secara otomatis Jenkins untuk satu kali. Jalankan perintah berikut untuk mendapatkan kata sandi.

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Ini akan memberikan output seperti 2179c452db3b45f98cf9e4c4961ab635

Setelah kata sandi, kita perlu menginstal plugin ke sistem Jenkins. Untuk itu cukup pilih plugin yang disarankan diinstal untuk menginstal semua plugin default.

Isi semua detail dan klik simpan dan lanjutkan.

Sekarang ia akan meminta Konfigurasi Instance, di mana kita juga dapat mengubah nomor port default.

Sekarang Jenkins kami disimpan dan siap digunakan.

Selamat, penyiapan Jenkins baru berhasil diselesaikan dan siap digunakan.

Tangkapan layar berikut menunjukkan dasbor default untuk Jenkins.

Konfigurasi Jenkins:

Instal Plugin:

Sebelum kita melanjutkan ke langkah selanjutnya pastikan untuk menginstal plugin berikut.

Buka Kelola Jenkins -> Kelola plugin -> Tersedia -> filter -> cari plugin berikut yang diperlukan untuk integrasi dengan GitHub.

Publikasikan Melalui SSH
Git
Plugin GitHub
Plugin klien Git

Di sini, plugin Publish Over SSH diperlukan untuk mendorong file kita ke server melalui SSH.

Tambahkan kredensial:

Kita perlu menambahkan kredensial server di Jenkins.

Buka Dasbor Jenkins → kredensial → sistem → Kredensial global (tidak dibatasi) → Tambahkan Kredensial

Kami dapat memilih jenis kredensial yang ingin kami instal. Di sini kami menambahkan nama pengguna dan sandi kredensial GitHub untuk digunakan nanti.

ssh di Server Jenkins.

Jenkins dapat terhubung ke server jarak jauh menggunakan ssh dan dapat menjalankan skrip, perintah, atau menyalin file dari satu server ke server lain.

Untuk tujuan ini, kita perlu membuat koneksi ssh antara server Jenkins &server jarak jauh.

Langkah selanjutnya tambahkan kredensial SSH pada Jenkins yang ingin kita hubungkan dengan server Jenkins.

Kami ingin terhubung ke server web dari Jenkins dengan root pengguna, Misalnya, server web kami adalah 138.197.151.144 dan root pengguna, jadi kami harus login ke server itu menggunakan ssh.

ssh [email protected]

Sekarang pergi ke direktori home dan cd ke folder .ssh.

cd ~/.ssh

Langkah selanjutnya adalah membuat kunci pribadi dan kunci publik untuk pengguna root di server web kami.

ssh-keygen -t rsa -f private_key_for_jenkins

Setelah menjalankan perintah di atas akan meminta "Masukkan frasa sandi", kita tidak perlu memasukkan frasa sandi. Jadi klik enter dua kali dan itu akan menghasilkan dua kunci di server web private_key_for_jenkins dan private_key_for_jenkins.pub.

Di sini private_key_for_jenkins adalah kunci pribadi 138.197.151.144 dan kita perlu menggunakan konten file ini ke server Jenkins kita.

Kami memiliki file kedua bernama private_key_for_jenkins.pub yang merupakan kunci publik server web. Kita perlu menyalin datanya ke file lain bernama authorised_keys yang terletak di direktori yang sama.

Dalam kebanyakan kasus, file authorised_keys ada di folder ~/.ssh/ tetapi terkadang file tersebut hilang dan kita perlu membuat file authorised_keys baru. Cukup jalankan perintah berikut untuk menyalinnya ke authorised_keys, perintah ini juga menghasilkan authorised_keys baru jika tersedia.

cat private_key_for_jenkins.pub > authorized_keys

Sekarang login ke server Jenkins lalu pergi ke Manage Jenkins -> Configure Systems

Alternatif yang bisa kita langsung tuliskan http://ip_address:8080/configure di browser web, ini akan membuka Konfigurasi Sistem untuk konfigurasi ssh.

Sekarang, cari bagian Server server SSH di "Konfigurasi Jenkins". Harap perhatikan bahwa bagian ini hanya tersedia jika kami telah menginstal ‘SSH Credential Plugin’ di server Jenkins.

Buka bagian Terbitkan melalui SSH, buka kunci dan tempel konten private_key_for_jenkins

Sekarang dalam opsi Server SSH, klik tombol Tambah dan masukkan detail Server SSH. Kami dapat mengubah port ssh dan pengaturan lainnya dari opsi Lanjutan.

Setelah melakukan perubahan, klik 'Test Configuration' dan kita akan mendapatkan pesan sukses seperti yang ditunjukkan pada gambar di atas jika semua pengaturan sudah benar.

Harap dicatat bahwa kami dapat menambahkan beberapa server sesuai kebutuhan kami untuk menerbitkan kode yang sama di beberapa server menggunakan ssh.

Untuk itu, kita perlu membuat kunci pribadi untuk setiap server seperti yang kita sebutkan sebelumnya dan perlu menambahkan kunci pribadi mereka ke server Jenkins.

Terakhir, klik tombol 'Simpan' dan simpan perubahan kami. Kami telah berhasil membuat koneksi ssh ke server jarak jauh. Sekarang kita dapat mengirim file ke server jarak jauh dan juga dapat menjalankan perintah atau skrip apa pun di server itu.

Konfigurasi Jenkins dengan Github

Untuk otomatisasi build yang dipicu oleh permintaan PUSH dan PULL, Jenkins WebHook perlu ditambahkan ke setiap repositori GitHub atau webhook organisasi.

Langkah-langkah untuk mengkonfigurasi webhook dari repositori Github.

1. Masuk ke akun GitHub Anda

2. Klik pada repositori tempat kita perlu mengatur webhook

3. buka opsi pengaturan untuk repositori itu

4. Klik Webhooks dan tambahkan Payload URL, Tampilannya seperti http://jenkins_ip:8080/github-webhook/

5. Pilih "application/json" sebagai jenis penyandian dari Jenis konten

6. Biarkan "Rahasia" kosong (kecuali rahasia telah dibuat dan dikonfigurasi di bagian Jenkins "Konfigurasi Sistem -> plugin GitHub")

7. Pilih "Biarkan saya memilih acara individu"

8. Aktifkan acara PUSH dan Pull Request

9. Pastikan "Aktif" dicentang

10. Terakhir, klik tombol "Tambahkan Webhook".

Periksa tangkapan layar di bawah untuk detailnya.

Jenkins sekarang akan menerima pemberitahuan permintaan push dan pull untuk repositori tersebut dan build terkait akan dipicu secara otomatis.

Membuat pekerjaan pertama di Jenkins

Sekarang buka dasbor Jenkins kami, pilih Item Baru lalu Masukkan nama item pilih Freestyle Project .

Setelah klik ok Anda akan diarahkan ke bagian konfigurasi.

Kami berada di tab umum sekarang seperti yang ditunjukkan pada tangkapan layar di bawah ini. Secara umum, tab berikan deskripsi proyek dan klik proyek Github, Di sini masukkan URL GitHub kami untuk proyek tersebut.

Sekarang Buka Manajemen kode sumber, lalu klik Git dan masukkan URL Repositori kami dari mana kami ingin mengambil kode.

Kami telah menambahkan kredensial GitHub, klik menu drop-down dan pilih nama pengguna dan kata sandi GitHub.

Selanjutnya, pergi ke Branches untuk membangun dan pilih */master branch, kita dapat menambahkan cabang apapun sesuai kebutuhan proyek kita.

Sekarang Buka tab Build Trigger dan pilih Github hook trigger untuk opsi polling GITScm, Ini akan secara otomatis
membangun setiap kali kita membuat perubahan apa pun pada repositori GitHub.

Sekarang buka Lingkungan build dan pilih Kirim file atau jalankan perintah melalui SSH setelah build berjalan.

Ini akan mengirim file ke server jauh setelah build berjalan.

Goto SSH Publishers --> SSH Server --> pilih nama server dari menu drop-down

Di sini Kami juga dapat mengatur parameter Lanjutan tetapi saat ini, kami menggunakan pengaturan dasar.

Sekarang kita perlu menambahkan jenis file yang ingin kita salin melalui ssh, Di sini kita memilih semua folder dan file dari repositori GitHub kita. Untuk menambahkan file dan pemilihan folder cukup tambahkan **/* di file sumber.

Cara yang sama kita dapat memberikan perintah apa pun di kotak teks perintah Exec, yang akan dieksekusi di server jauh kita.

Kemudian tentukan direktori Remote di mana kita perlu menyalin file kita. Ini adalah opsi opsional.

Penerbit SSH --> Transfer --> Transfer Set --> File sumber --> tambahkan **/*

Penerbit SSH --> Transfer --> Set Transfer --> Direktori jarak jauh --> /jenkins-test

SSH Publishers --> Transfer --> Transfer Set --> Exec command --> command

Secara default Jenkins akan mengecualikan file tertentu seperti .git .svn .gitignore dll. Di sini kita ingin menyalin semua file ke server jauh. Untuk itu Klik tombol Lanjutan tepat di bawah perintah Exec dan centang opsi "Tidak ada pengecualian default".

Itu saja, kami memiliki banyak opsi di Post-build Actions yang dapat kami gunakan sesuai dengan kebutuhan proyek kami.

Uji Pembuatan

Saatnya menguji konfigurasi kita.

Buka dasbor Jenkins lalu klik uji Jenkins proyek kami.

Kemudian klik opsi Build Now untuk build, Jika proses build gagal maka akan muncul nomor versi build dengan ikon kuning.

Mari kita verifikasi proses pembuatan kita, cukup klik pada nomor pembuatan seperti yang ditunjukkan pada tangkapan layar.

Sekarang klik Output Konsol. Di sini kita dapat melihat setiap proses dalam mode verbose.

Akhirnya, kita akan melihat "Selesai:SUKSES" baris di akhir keluaran konsol.

Selamat! Jenkins kami berhasil diintegrasikan dengan GitHub sekarang dan siap digunakan.


Cent OS
  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara Menginstal penggalian di CentOS 7 dan 8

  3. Cara menginstal Node.js dan NPM di CentOS

  1. Cara Instal Node.js dan NPM di CentOS 7

  2. Cara Menginstal Jenkins di CentOS 7

  3. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  1. Cara Menginstal dan Mengonfigurasi GitLab di CentOS 7

  2. Cara Instal dan Konfigurasi Redmine di CentOS 7

  3. Cara Menginstal Jenkins di CentOS 8