Skip to main content

OpenShift - Deploy your own Blog/WebApp/Web site?

  In one of my previous post I have explained that how to create your own blog using Docker. We will do same practical today but this time using one of the most demanding platform-as-a-service solution. Red Hat OpenShift container platform. I have explained in my previous posts that what extra we can achieve using OpenShift. Please have a look on below posts for more details-

  1. https://rakeshkumar0504.blogspot.com/2020/04/openshift-day-1.html
  2. https://rakeshkumar0504.blogspot.com/2020/04/openshift-day2.html
Let's start the practical:-
I have logged into my rol account and have oc command ready with me. If you also want to configure oc command you down from here setup as below.
[root@server106 ~]# cd /root/Desktop/
[root@server106 Desktop]# ll
total 117532
-rwxr-xr-x. 1 root root 120350344 Apr 27  2020 oc
[root@server106 Desktop]# chmod 755 oc
[root@server106 Desktop]# mv oc /usr/bin/
Run [root@server106 Desktop]# oc --version command, if you get options that means command is ready to use.
Step 1 :- Login into your OpenShift environment using below command. Username and paswrord is give in your lab environment. If your username password is correct you will get "Login successful" message.
[root@server106 ~]# oc login https://api.ocp-ap3.prod.nextcle.com:6443
Authentication required for https://api.ocp-ap3.prod.nextcle.com:6443 (openshift)
Username: XXXXXXXX
Password: XXXXXXXX
Login successful.
Step 2 :- Run oc --help command to check oc options after that create a project.
[root@server106 Desktop]# oc new-project lw1  [create new project]
[root@server106 ~]# oc get projects           [check available project]
NAME      DISPLAY NAME   STATUS
lw1                      Active
[root@server106 ~]# oc get pods    [check available pods]
No resources found.
[root@server106 ~]# oc get dc       [check available dc(deployment config)]
No resources found.
[root@server106 ~]# oc get bc      [check available bc(build config)]
No resources found.
Step 3 :- Create mysql pod, what is pod? to understand in simple language it is box which contain containers.
[root@server106 ~]# oc new-app -e MYSQL_USER=<USERNAME> MYSQL_PASSWORD=<PASSWORD> MYSQL_DATABASE=<DATABASE_NAME> openshift/mysql-56-centos
[root@server106 ~]# oc get pods
NAME                        READY     STATUS      RESTARTS   AGE
mysql-56-centos7-1-7flz9    1/1       Running     0          65m
mysql-56-centos7-1-deploy   0/1       Completed   0          88m
[root@server106 ~]# oc get dc
NAME               REVISION   DESIRED   CURRENT   TRIGGERED BY
mysql-56-centos7   1          1         1         config,image(mysql-56-centos7:latest)
[root@server106 ~]# oc get svc [check service]
NAME               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
mysql-56-centos7   ClusterIP   172.30.252.164   <none>        3306/TCP   89m
[root@server106 ~]# oc get is [check image service]
NAME               IMAGE REPOSITORY                                                                                                                                                         TAGS      UPDATED
mysql-56-centos7   default-route-openshift-image-registry.apps.ocp-ap3.prod.nextcle.com
[root@server106 ~]# oc describe pod mysql-56-centos7-1-7flz9     [check all details of pod]
Step 3 :- Create wordpress pod.
[root@server106 ~]# oc new-app https://github.com/wordpress/wordpress
[root@server106 ~]# oc get dc
NAME               REVISION   DESIRED   CURRENT   TRIGGERED BY
mysql-56-centos7   2          1         1         config,image(mysql-56-centos7:latest)
wordpress          0          1         0         config,image(wordpress:latest)
[root@server106 ~]# oc get pods
NAME                        READY     STATUS      RESTARTS   AGE
mysql-56-centos7-1-deploy   0/1       Completed   0          143m
mysql-56-centos7-2-deploy   0/1       Completed   0          15m
mysql-56-centos7-2-wsg9x    1/1       Running     0          6m16s
wordpress-1-build           1/1       Running     0          29s
[root@server106 ~]# oc get svc
NAME               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
mysql-56-centos7   ClusterIP   172.30.252.164   <none>        3306/TCP            144m
wordpress          ClusterIP   172.30.150.132   <none>        8080/TCP,8443/TCP   82s
[root@server106 ~]# oc expose svc wordpress
route.route.openshift.io/wordpress exposed
[root@server106 ~]# oc get route
NAME        HOST/PORT                                     PATH      SERVICES    PORT                                                                                    TERMINATION   WILDCARD
wordpress   wordpress-lw1.apps.ocp-ap3.prod.nextcle.com             wordpress   8080-tc                                                                             p                 None
If you followed the same steps you will be able to access wordpress framwork in your browser using this URL wordpress-lw1.apps.ocp-ap3.prod.nextcle.com.

Comments

Popular posts from this blog

error: db5 error(11) from dbenv->open: Resource temporarily unavailable

If rpm command is not working in your system and it is giving an error message( error: db5 error(11) from dbenv->open: Resource temporarily unavailable ). What is the root cause of this issue? How to fix this issue?   just a single command- [root@localhost rpm]# rpm --rebuilddb Detailed error message- [root@localhost rpm]# rpm -q firefox ^Cerror: db5 error(11) from dbenv->open: Resource temporarily unavailable error: cannot open Packages index using db5 - Resource temporarily unavailable (11) error: cannot open Packages database in /var/lib/rpm ^Cerror: db5 error(11) from dbenv->open: Resource temporarily unavailable error: cannot open Packages database in /var/lib/rpm package firefox is not installed [root@localhost rpm]# RPM manage a database in which it store all information related to packages installed in our system. /var/lib/rpm, this is directory where this information is available. [root@localhost rpm]# cd /var/lib/rpm [root@

Failed to get D-Bus connection: Operation not permitted

" Failed to get D-Bus connection: Operation not permitted " - systemctl command is not working in Docker container. If systemctl command is not working in your container and giving subjected error message then simple solution of this error is, create container with -- privileged option and also provide init file full path  /usr/sbin/init [root@server109 ~]# docker container run -dit --privileged --name systemctl_not_working_centos1 centos:7 /usr/sbin/init For detailed explanation and understanding I am writing more about it, please have look below. If we have a daemon based program(httpd, sshd, jenkins, docker etc.) running inside a container and we would like to start/stop or check status of daemon inside docker then it becomes difficult for us to perform such operations , because by default systemctl and service  commands don't work inside docker. Normally we run below commands to check services status in Linux systems. [root@server109 ~]# systemctl status

AWS cloud automation using Terraform

In this post I'll create multiple resources in AWS cloud using Terraform . Terraform is an infrastructure as code( IAC ) software which can do lots of things but it is superb in cloud automation. To use Terraform we have write code in a high-level configuration language known as Hashicorp Configuration Language , optionally we can write code in JSON as well. I'll create below service using Terraform- 1. Create the key-pair and security group which allow inbound traffic on port 80 and 22 2. Launch EC2 instance. 3. To create EC2 instance use same key and security group which created in step 1 4. Launch Volume(EBS) and mount this volume into /var/www/html directory 5. Upload index.php file and an image on GitHub repository 6. Clone GitHub repository into /var/www/html 7. Create S3 bucket, copy images from GitHub repo into it and set permission to public readable 8 Create a CloudFront use S3 bucket(which contains images) and use the CloudFront URL to update code in /var/w