GNU/Linux >> Belajar Linux >  >> Linux

Cara membuat tumpukan pengembang WordPress Anda di OpenShift 4

Saat itu sore musim gugur yang dingin di tahun 2019 dan saya duduk di belakang meja kerja saya dengan secangkir teh panas yang mengepul setelah berdiskusi dengan manajer saya. Saya akhirnya memutuskan untuk mengambil inisiatif dalam merencanakan migrasi situs web produksi global dari satu mesin virtual ke cloud. Saya sudah memiliki pengalaman dengan Nginx dan Apache sebagai administrator mesin virtual. Bagian kedua dari deskripsi pekerjaan saya adalah pengembangan fitur situs web di PHP. Saya tahu bahwa memahami persyaratan dari perspektif pengembang dan administrator akan menjadi penting untuk pendekatan saya dalam menerapkan tumpukan pengembang WordPress di OpenShift. Motivasi saya sebagai anak muda adalah untuk mengeksplorasi dan mempelajari teknologi baru saat melakukan eksperimen pertama saya di lingkungan kotak pasir yang aman.

[ Anda mungkin juga menyukai:Belajar OpenShift dengan Minishift ]

Saya menyadari bahwa sebelum bekerja dengan OpenShift di lingkungan produksi, saya perlu memiliki pemahaman yang kuat tentang komponen produk dan bagaimana mereka berinteraksi satu sama lain. Dalam beberapa minggu mendatang, saya menghabiskan waktu untuk mempersiapkan ujian Red Hat OpenShift Administration II dan mencari jawaban atas pertanyaan saya dari arsitek OpenShift jika diperlukan.

Ketika saya tidak belajar untuk ujian, saya melihat fitur produk OpenShift 4. Saya dapat melihat bahwa, untuk situs web global, banyak dari fitur tersebut sangat penting dan akan membuat pengalaman pengembangan saya menjadi lebih mudah. Berikut adalah beberapa manfaatnya:

  • Ketersediaan tinggi
  • Mengotomatiskan penskalaan
  • Manajemen aplikasi
  • Sistem operasi ringan

Konfigurasi dan penerapan aplikasi

Berikut beberapa catatan yang perlu diingat:

  • Dalam artikel ini, saya tidak melalui pemilihan layanan hosting atau langkah-langkah penginstalan OpenShift 4.
  • Kode sumber dan basis data yang digunakan dalam panduan ini adalah contoh dan tidak mencerminkan atau menggunakan data dari situs web produksi mana pun.
  • Panduan ini berasal dari pengalaman pribadi saya saat bekerja dengan alat yang disebutkan di bawah.
  • Jika cluster OpenShift Anda dapat diakses secara publik, alih-alih konfigurasi build berbasis Docker, Anda dapat menggunakan konfigurasi build berbasis Sumber.

1) Cloud IDE - Red Hat CodeReady

Catatan :Saya menggunakan dokumen ini sebagai referensi.

Prasyarat:

  • peran admin cluster

Langkah-langkah:

Buat proyek baru:

$ oc new-project wordpress-deploy

Pada menu dasbor kiri, klik Operator tab dan navigasikan ke OperatorHub tab. Ubah Proyek di sisi kiri atas halaman untuk wordpress-deploy proyek. Pilih Red Hat CodeReady Workspaces dan klik Pasang tombol. Di Instal Operator halaman, pilih Pilih ruang nama yang ada dan pastikan bahwa wordpress-deploy ruang nama dipilih. Terakhir, klik tombol Instal tombol.

Setelah penginstalan, lanjutkan dengan mengeklik Lihat Operator tombol. Di bawah API yang Disediakan , klik Buat Instance .

Pada Buat CheCluster halaman, pertahankan setelan default dan klik Buat tombol.

Verifikasi pemasangan Operator Ruang Kerja Red Hat CodeReady:

$ oc get csv -n wordpress-deploy
NAME                                  DISPLAY                        VERSION   REPLACES   PHASE
crwoperator.v2.4.0   Red Hat CodeReady Workspaces   2.4.0                Succeeded

Verifikasi bahwa semua pod dalam kondisi Berjalan status dan Siap . Untuk melacak kemajuan instalasi, ikuti log operator. Harap diperhatikan bahwa Rute tidak bersiaplah sampai log dari pod operator menunjukkan "Ruang Kerja CodeReady sekarang tersedia di http://xyz.org". Mungkin perlu beberapa menit.

$ oc get pods -n wordpress-deploy
NAME                                  READY   STATUS    RESTARTS   AGE
codeready-5d7b8f64d6-2rzkm            1/1     Running     0          60s
codeready-operator-5bc96f8c5f-c7hbt   1/1     Running     0          7m56s
devfile-registry-786f455b84-t45l8     1/1     Running     0          2m8s
keycloak-688b5d48f5-mgqn4             1/1     Running     0          2m41s
plugin-registry-8fb66b5cb-9kw8q       1/1     Running     0          99s
postgres-785f5864b-mmlpx              1/1     Running     0          5m1s

$ oc logs codeready-operator-5bc96f8c5f-c7hbt -f
...
time="2020-10-28T14:29:29Z" level=info msg="CodeReady Workspaces is now available at: https://codeready-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org"
...

Ambil rute codeready:

$ oc get route -n wordpress-deploy | grep codeready
NAME               HOST/PORT                                                                   PATH   SERVICES           PORT   TERMINATION     WILDCARD
codeready          codeready-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org                 che-host           8080   edge/Redirect   None

Kunjungi rute codeready dan perbarui Informasi Akun . Anda . Di bawah Memulai tab, pilih PHP CakePHP tumpukan.

Verifikasi bahwa Red Hat CodeReady Workspace telah dibuat:

2) CI/CD bagian 1 - Instal Tekton CLI dan OpenShift Pipelines

Catatan :Sebagai referensi, saya menggunakan tutorial openshift/pipelines ini. Jika tertarik, Anda dapat memeriksa Konsep tingkat tinggi OpenShift Pipelines. Untuk kasus saya, saya memilih Tekton tetapi jangan ragu untuk menggunakan Jenkins, CircleCI, atau alat saluran pipa lainnya yang disukai oleh Anda atau perusahaan Anda.

Tekton adalah framework open-source asli Kubernetes yang kuat namun fleksibel untuk menciptakan sistem continuous integration dan continuous delivery (CI/CD). Ini memungkinkan Anda membangun, menguji, dan menerapkan di beberapa penyedia cloud atau sistem lokal dengan mengabstraksikan detail implementasi yang mendasarinya. Peta Jalan Tekton Pipelines 2020.

Langkah-langkah:

Instal Tekton CLI (tkn) dari sini sesuai dengan file readme di repositori.

Instal Operator Pipa OpenShift.

Verifikasi pemasangan Tekton CLI dan Operator Pipa:

$ tkn version
Client version: 0.13.1
$ oc get csv -n wordpress-deploy
NAME                                  DISPLAY                        VERSION   REPLACES   PHASE
crwoperator.v2.4.0                    Red Hat CodeReady Workspaces   2.4.0                Succeeded
openshift-pipelines-operator.v1.0.1   OpenShift Pipelines Operator   1.0.1                Succeeded

3) Terapkan template khusus yang membuat pod aplikasi

Catatan :Saya menggunakan contoh kode sumber dari repositori Github.

Langkah-langkah:

Unduh file template menggunakan curl perintah:

$ curl -O https://raw.githubusercontent.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4/master/deploy/openshift-template.yaml

Unggah template ke namespace Anda:

$ oc create -f openshift-template.yaml

Sebelum membuat aplikasi, daftar terlebih dahulu variabel yang diperlukan untuk template:

$ oc process --parameters wordpress-nginx-php
NAME                        DESCRIPTION                                                                  GENERATOR           VALUE
NAME                        The name assigned to all of the frontend objects defined in this template.   expression          wordpress-[a-f0-9]{6}
NAMESPACE                   The OpenShift Namespace where the ImageStream resides.                                           
APP_MEMORY_LIMIT            Maximum amount of memory limits the App container can use.                                       512Mi
APP_CPU_LIMIT               Maximum amount of cpu limits the App container can use.                                          200m
APP_MEMORY_REQUEST          Maximum amount of memory requests the App container can use.                                     512Mi
APP_CPU_REQUEST             Maximum amount of cpu requests the App container can use.                                        200m
DB_MEMORY_LIMIT             Maximum amount of memory limits the MariaDB container can use.                                   512Mi
DB_CPU_LIMIT                Maximum amount of cpu limits the MariaDB container can use.                                      200m
DB_MEMORY_REQUEST           Maximum amount of memory requests the MariaDB container can use.                                 512Mi
DB_CPU_REQUEST              Maximum amount of cpu requests the MariaDB container can use.                                    200m
DB_VOLUME_CAPACITY          Volume space available for DB data, e.g. 512Mi, 2Gi                                              1Gi
FILES_VOLUME_CAPACITY       Volume space available for sites/default/files, e.g. 512Mi, 2Gi                                  1Gi
ROUTER_CANONICAL_HOSTNAME   Clusters Router Canonical Hostname is self-explanatory.                                          
MYSQL_DATABASE                                                                                                               wordpress
MYSQL_USER                                                                                                                   wordpress
MYSQL_ROOT_PASSWORD         Password for the MySQL root user.                                            expression          [a-zA-Z0-9]{16}
MYSQL_PASSWORD                                                                                           expression          [a-zA-Z0-9]{16}

Proses template yang disediakan termasuk nilai parameter Anda:

$ oc process wordpress-nginx-php -p NAME=wordpress -p NAMESPACE=wordpress-deploy -p ROUTER_CANONICAL_HOSTNAME=apps.tgabriel-test.y2pm.s1.devshift.org -p MYSQL_ROOT_PASSWORD=nKatIcTRIToR -p MYSQL_PASSWORD=eSoiDenThicO | oc create -f -

Verifikasi bahwa semua pod dalam kondisi Berjalan atau Selesai status:

$ oc get pods -n wordpress-deploy
NAME                                                    READY   STATUS      RESTARTS   AGE
codeready-5dc8dcd6f8-xm6tx                              1/1     Running     0          69m
codeready-operator-864446f6b-dpp52                      1/1     Running     0          74m
keycloak-7c4f96b7d9-m6nv9                               1/1     Running     0          72m
phpmyadmin-1-build                                      0/1     Completed   0          11m
phpmyadmin-1-deploy                                     0/1     Completed   0          3m36s
phpmyadmin-1-fmt7b                                      1/1     Running     0          3m28s
postgres-769b855b45-tlhcs                               1/1     Running     0          73m
wordpress-app-1-build                                   0/1     Completed   0          11m
wordpress-app-1-25p6n                                   2/2     Running     0          2m28s
wordpress-app-1-7mc4z                                   2/2     Running     0          2m28s
wordpress-app-1-deploy                                  0/1     Completed   0          2m43s

4) CI/CD bagian 2 - Jalankan pipeline Tekton

Langkah-langkah:

Periksa daftar sumber daya yang dibuat:

$ tkn resource ls
NAME              TYPE    DETAILS
app-git         git         url: https://github.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4
app-image   image   url: image-registry.openshift-image-registry.svc:5000/wordpress-deploy/openshift-nginx-phpfpm-s2i
$ tkn task ls
NAME               AGE
openshift-client   58 seconds ago
s2i-php            1 minute ago
$ tkn pipeline ls
NAME                   AGE                 LAST RUN                                                              STARTED         DURATION   STATUS
build-and-deploy  3 minutes ago   openshift-nginx-phpfpm-deploy-pipelinerun-vt7cf  3 minutes ago   1 minutes      Succeeded

Pantau saluran Tekton:

$ tkn pipeline logs -f
...
[deploy : oc] build.build.openshift.io/wordpress-2 started
...

Untuk memulai proses pipeline baru:

$ tkn pipeline start build-and-deploy-2 -w name=shared-workspace,volumeClaimTemplateFile=https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/01_pipeline/03_persistent_volume_claim.yaml -p deployment-name=wordpress -r app-git=app-git -r app-image=app-image -s pipeline

5) Impor data produksi sampel menggunakan CLI

Catatan :Karena ukuran file database yang diekspor, kami akan melanjutkan menggunakan perintah CLI. Harap dicatat bahwa dengan memanfaatkan alat impor Phpmyadmin, Anda akan mendapatkan kesalahan 504 Gateway Time-out karena batas impor Phpmyadmin.

Langkah-langkah:

Masuk ke dalam wadah pod DB:

$ oc get pods -n wordpress-deploy
NAME                        READY   STATUS       RESTARTS   AGE
phpmyadmin-1-build          0/1     Completed    0          19h
phpmyadmin-1-deploy         0/1     Completed    0          19h
phpmyadmin-1-fjhfn          1/1     Running      0          19h
wordpress-app-1-8jtzg       2/2     Running      0          19h
wordpress-app-1-build       0/1     Completed    0          19h
wordpress-app-1-deploy      0/1     Completed    0          19h
wordpress-app-1-ks48k       2/2     Running      0          19h
wordpress-app-db-1-bcmnn    1/1     Running      0          19h
wordpress-app-db-1-build    0/1     Completed    0          19h
wordpress-app-db-1-deploy   0/1     Completed    0          19h
$ oc rsh wordpress-app-db-1-bcmnn
sh-4.2$

Impor file cadangan menggunakan CLI:

sh-4.2$ curl -O https://raw.githubusercontent.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4/master/deploy/database_backup.sql
sh-4.2$ mysql -h 127.0.0.1 -u root -D wordpress < database_backup.sql

(Opsional) Di dalam wp_options tabel, edit situs web dan rumah nilai yang sesuai dengan jalur aplikasi Anda.

Dapatkan rute aplikasi WordPress:

$ oc get route wordpress-app
NAME            HOST/PORT                                                                 PATH   SERVICES        PORT    TERMINATION   WILDCARD
wordpress-app   wordpress-app-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org          wordpress-app   <all>                 None

Kunjungi rute aplikasi, di mana Anda akan melihat Beranda aplikasi .

[ Dapatkan ebook gratis ini:Mengelola kluster Kubernetes Anda untuk boneka. ]

Menutup

Panduan ini memberikan titik awal yang baik untuk membuat tumpukan pengembang WordPress Anda di OpenShift 4 dan mempersiapkan Anda untuk konfigurasi yang sukses.

Sumber daya dan kredit

  • Repositori kode sumber
  • Drupal di OpenShift:Menerapkan situs Drupal pertama Anda
  • Drupal di OpenShift:Meningkatkan pengalaman pengembang

Linux
  1. Cara men-deploy pod pertama Anda di Cluster Kubernetes

  2. Cara Membuat Subdomain Untuk Situs Web Anda

  3. Cara membuat situs Plesk

  1. Cara Membuat &Mengedit File .htaccess WordPress Default

  2. Cara Membuat pem Untuk SSL Anda yang Ada

  3. Cara membuat galeri gambar di WordPress

  1. Cara membuat distro Linux Anda sendiri menggunakan Yocto

  2. Cara Membuat Dan Memelihara Halaman Man Anda Sendiri

  3. Cara membuat program Java pertama Anda di CentOS 8