πŸš€ DevOps & SRE Certification Program πŸ“… Starting: 1st of Every Month 🀝 +91 8409492687 πŸ” Contact@DevOpsSchool.com

Upgrade & Secure Your Future with DevOps, SRE, DevSecOps, MLOps!

We spend hours on Instagram and YouTube and waste money on coffee and fast food, but won’t spend 30 minutes a day learning skills to boost our careers.
Master in DevOps, SRE, DevSecOps & MLOps!

Learn from Guru Rajesh Kumar and double your salary in just one year.


Get Started Now!

Step-by-Step OpenShift WordPress Deployment Demo


πŸ›  Prerequisites:

  • OpenShift cluster (Local or Cloud)
  • oc CLI installed
  • Basic access (developer/admin rights)
  • DockerHub or Red Hat certified WordPress container access
  • (Optional) OpenShift Web Console access

πŸ”₯ Step 1: Login to OpenShift Cluster

oc login --token=<your-token> --server=https://api.<cluster-domain>:6443

Or via the Web Console.


πŸ— Step 2: Create a New Project (Namespace)

oc new-project wordpress-demo

(You can also create it from Web Console: Projects > Create Project.)


πŸ“¦ Step 3: Deploy MySQL Database (for WordPress backend)

WordPress needs a database. Let’s deploy a simple MySQL Pod + Service.

a) Create a Secret for MySQL Passwords

oc create secret generic mysql-pass --from-literal=password=Wordpress@123

b) Deploy MySQL using a Template or YAML

Here’s a sample YAML to create MySQL:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-pass
              key: password
        - name: MYSQL_DATABASE
          value: wordpress
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
      volumes:
      - name: mysql-persistent-storage
        emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
  - port: 3306
  selector:
    app: mysql

Apply it:

oc apply -f mysql.yaml

βœ… Now you have a MySQL backend running!


🌟 Step 4: Deploy WordPress Application

a) Deploy WordPress using YAML

Here’s a WordPress Deployment YAML:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wordpress
  template:
    metadata:
      labels:
        app: wordpress
    spec:
      containers:
      - name: wordpress
        image: wordpress:latest
        env:
        - name: WORDPRESS_DB_HOST
          value: mysql
        - name: WORDPRESS_DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-pass
              key: password
        ports:
        - containerPort: 80
        volumeMounts:
        - name: wordpress-persistent-storage
          mountPath: /var/www/html
      volumes:
      - name: wordpress-persistent-storage
        emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: wordpress
spec:
  ports:
  - port: 80
  selector:
    app: wordpress

Apply it:

oc apply -f wordpress.yaml

βœ… Now WordPress Pod + Service are deployed!


🌍 Step 5: Expose WordPress to Public

Expose WordPress Service via Route (URL):

oc expose service wordpress

This will automatically create a Route.

πŸ“ You can get the URL:

oc get route wordpress

Example output:

NAME        HOST/PORT                         PATH   SERVICES    PORT   TERMINATION   WILDCARD
wordpress   wordpress-demo.apps.cluster.com          wordpress   80                   None

Visit the URL in your browser β€” you’ll see the WordPress Installation Page πŸŽ‰


πŸ“ˆ Full Deployment Map:

ComponentDeployed AsNotes
MySQL DatabaseDeployment + Service + SecretWordPress backend
WordPress SiteDeployment + Service + RouteFrontend exposed to public

πŸ’¬ Final Words:

βœ… This is the simplest, fastest OpenShift WordPress demo. βœ… For Production:

  • Use Persistent Volumes (PVCs) instead of emptyDir.
  • Secure MySQL and WordPress (TLS, strong passwords).
  • Set Resource limits (CPU, Memory).
  • Scale Replicas.
  • Use OpenShift templates or Helm Charts.

πŸ“¦ Bonus: One-Line Deployment (S2I)

You can also deploy WordPress from Source using OpenShift templates:

oc new-app wordpress

Subscribe
Notify of
guest


0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Certification Courses

DevOpsSchool has introduced a series of professional certification courses designed to enhance your skills and expertise in cutting-edge technologies and methodologies. Whether you are aiming to excel in development, security, or operations, these certifications provide a comprehensive learning experience. Explore the following programs:

DevOps Certification, SRE Certification, and DevSecOps Certification by DevOpsSchool

Explore our DevOps Certification, SRE Certification, and DevSecOps Certification programs at DevOpsSchool. Gain the expertise needed to excel in your career with hands-on training and globally recognized certifications.

0
Would love your thoughts, please comment.x
()
x