Skip to content

Areen-alshwayat/Shwayat_Areen-htu_devops_ab_submission

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



Upskilling CAPSTONE PROJECT-Konsul Group

The Upskilling Program is a true community participation model created for a group of university graduates to develop our skills with soft and technical skills that will help us become more employable. In this program, we have taught courses in English and soft skills technical skills, and so we learned with the English language how to write a report, How to submit presentations, speak and communicate in English, how to write a CV, as well as with personal skills, we learned how to develop self and time management, how to communicate, writing and speaking skills, presentation skills Introductory, we also learned the skills to deploy software with confidence, agility and high reliability using modern practices such as Continuous Integration and Continuous Delivery, and tools such as GitHub, Docker, Kubernetes.

Upskilling program keeps graduates knowledgeable on new processes. Encourage graduates to build a Personal Development Plan that includes competencies that they want to improve upon and the skills they want to gain. Empowering graduates to come up with their own plan is key to the success of the upskilling training program. graduates can identify new skills and competencies that resonate with them as opposed to being told what they need to learn.while also preparing them for their future careers.

Capstone project is a multifaceted assignment that serves as a culminating academic and intellectual experience for students. Are generally designed to encourage students to think critically, solve challenging problems, and develop skills such as oral communication, public speaking, research skills, media literacy, teamwork, planning, self-sufficiency, or goal setting—i.e., skills that will help prepare them for modern careers.

This repository holds the Project and Dockerfile for the Konsul group website, Nextcloud and Statping server.

PROJECT SCOPE

DevOps is the practice of combining the philosophies and tools of software development (Dev) and software operation (Ops). DevOps can largely be thought of as a software development methodology, similar to other techniques like the Agile model,which aims to shorten the systems development life cycle and provide continuous delivery with high software quality. Companies like Konsul group that incorporate DevOps practices get more done, plain and simple. With a single team composed of cross-functional members all working in collaboration, DevOps organizations can deliver with maximum speed, functionality, and innovation.A DevOps Engineer will work with IT developers to facilitate better coordination among operations, development, and testing functions by automating and streamlining the integration and deployment processes.

This Report

This report for technical Track (DevOps And Linux) and depends on what I learned in this course about Basic of Container Operations with Docker, how Creating the Learning Environment, using Docker to Simplify CI pipelines among other examples. In this project as per as request of Kunsol group as a DevOps engineer required to develop and deploy a container-based architecture with multiple internal projects,required to build an automated Docker CI pipeline for this project.And Deploy the website on AKS cluster using orchestration

Develop and Deploy a Container-Based Architecture

Use the rancher:stable Docker image to deploy Rancher and Use the orchestrator to manage your architecture for this assignment. Deploy an AKS cluster with three worker nodes, and connect it for management using the orchestrator.

Prerequisites

  • Build a Docker image based on the current code, settings, and environment
  • Deploy the image to Docker Hub
  • Pull the image from Docker Hub
  • Create a Dockerfile to run Application

Requirements used in project -Konsul Website

enter image description here

Install dependencies for the application. To do so, we need to issue the npm install command.

$sudo apt install npm

Install Gridsome CLI globally

$sudo npm install --global @gridsome/cli

Used gridsome develop

$gridsome develop 

Run this command inside the project directory to start a local development server. The server will start at http://localhost:8080/ with hot-reloading etc.

You should see the following output:

enter image description here

Write Dokerfile

To use a container, you’ll need to give instructions to Docker via a file called Dockerfile in the root of project

enter image description here

Building Image

build the image, with a name, and optionally a tag

# Build an image
 $docker build -t arshwayat/node:14-alpine  .

enter image description here

enter image description here

enter image description here

Run the container

create a container with this image using

docker run -p 80:80 -p 443:443 -d arshwayat/node:14-alpine 

enter image description here

Push image into docker hub

Push your image to the repository you created

enter image description here

created repository. You should see:

enter image description here

enter image description here

Automated Builds With DockerHub_Continuous Integration

Docker Hub can automatically build images ,that can trigger a build on DockerHub as soon as you commit a code GitHub repository,image build is currently in queue,which will be scheduled eventually, and image would be created. After that, anybody would be able to download the image.

enter image description here

Now to download this image, use:

docker pull arshwayat/konsulweb-node:latest

Continuous delivery with Rancher

Rancher is a container management platform built for organizations that deploy containers in production. Rancher makes it easy to run kubernetes

  1. Launch the following command to fetch the docker image rancher/rancher to run in a container with automatic restarting enabled in case the container fails:

docker run -d --restart=unless-stopped
-p 80:80 -p 443:443
rancher/rancher:latest

  1. Once Rancher is installed, open a web browser and point it to rancher domain https://51.116.179.221/ The following page displays:
    user-name:admin
    pass:HTUDevOps1234

enter image description here

  1. Add Cluster to configure a new Kubernetes cluster.
Deploying a Cluster Workload :

The cluster is ready now and the deployment of a first pod can take place.

  1. The Rancher Dashboard displays:
    enter image description here

The clusters dashboard displays. Click on Deploy:
enter image description here

enter image description here

Enter a the details of the workload:
Name: konsul app
Docker Image: Enter arshwayat/konsulweb-node
Add Port to configure the port mapping
- Publish the container port: Set the value to port 80
- Protocol: Set the value to TCP
- As a: Set the Value to layer-4 load Balancer
- Listening Port: Set the value to port 80

Launch to create the workload.

enter image description here

  1. Once deployed, open a web browser and point it to http://52.170.2.101/ The KONSUL website display :
    enter image description here

    Nextcloud _ Deployment with Rancher

    enter image description here

Nextcloud is a suite of client-server software for creating and using file hosting services. Nextcloud is free and open-source, which means that anyone is allowed to install and operate it on their own private server devices.

Architecture_Nextcloud

Nextcloud is designed to work with several database management systems, including SQLite, MariaDB, MySQL, Oracle Database, and PostgreSQL

Nextcloud setup

Nextcloud is designed to work with several database management systems, including SQLite, MariaDB, MySQL, Oracle Database, and PostgreSQL

Auto configuration via environment variables

-To enable auto configuration, set database connection via the
following environment variable,I used PostgreSQL:

  • POSTGRES_DB Name of the database using postgres.
  • POSTGRES_USER Username for the database using postgres.
  • POSTGRES_PASSWORD Password for the database user using postgres.

-Click Deploy button from Dashboard Rancher screen to open workload for postgres_database and named by:
postgresql-db and fill the blank to setup the database information like this :
enter image description here

enter image description here

-Then create the nextcloud workload to setup container Nextcloud with port mapping which enables access to the service inside and outside of the cluster and by set these varibales showing here:

enter image description here

-can additionally configure Nextcloud instance by setting admin user and password only works if you set both:

enter image description here

-After that set the data directory so used: NEXTCLOUD_DATA_DIR to configures the data directory where Nextcloud stores all files from the users.

-Volumes are the preferred mechanism for persisting data generated by and used by Docker containers. Some use cases for volumes include:

  • When that container stops or is removed, the volume still exists.
  • When you want to store your container’s data on a remote host or a cloud provider, rather than locally.
  • When you need to back up, restore, or migrate data from one Docker host to another, volumes are a better choice.

so in this container used volumes in this container, look at this :

enter image description here

Finally, the workload is deployed You can view the workload’s status from the project’s Workloads view:

enter image description here

open a web browser and point it to :http://40.76.212.96/:
user-name: areen
password: areenpasscloud
enter image description here

After enter these inforamtion,you will I’ll get Nextcloud Web UI look at this:

enter image description here

On the User management page of your Nextcloud Web UI you can:

Create new user

To create a user account:

  • Enter the new user’s Login Name and their initial Password
  • Optionally, assign Groups memberships
  • Click the button

enter image description here

enter image description here

you can access this by using user-name and password I’ll give you as a user :
open a web browser and point it to :http://40.76.212.96/:

user-name: user-DevOps
password: HTUDEVOPS1234

enter image description here

Statping - Status Page & Monitoring Server

statping is a server monitoring application that includes a status page server. Statping will automatically fetch the application and render a beautiful status page with tons of features for you to build an even better status page.

setup statping server

–Click Deploy button from Dashboard Rancher screen to open workload for deploy statping and named to statping

And fill the blank to setup the statping information like this:

enter image description here

–Then create the statping workload to setup container statping with port mapping which enables access to the service inside and outside of the cluster and by set these varibales showing here:

can additionally configure Statping instance by setting ADMIN_USER and ADMIN_PASSWORD

enter image description here

Volumes are the preferred mechanism for persisting data generated by and used by Docker containers./app - Working directory in container. This directory will hold all configs, logs, assets, and sqlite database.Look at this :
enter image description here

Launch to deploy the statping workload.

Once deployed, open a web browser on http://40.112.50.146/ and point it to the statping website display :
enter image description here

To monitor websites and applications using Statping service.

–can I access dashboard login is shwayat-areen, password areenpass :
enter image description here

Click 0n the tab services to create once to monitor,look at this :

enter image description here

enter image description here

– Then you can fill the following services inforamtion to server you want to monitor for example for Nextcloud server look at this

enter image description here

– After that you can get a statping sample Data for Nextcloud server.Look at this :

enter image description here

Statping strives to remain future-proof and remain intact if a failure is created. If server crashes your Status Page should still remaining online to notify your users of downtime.

enter image description here

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published