PKC Complete Installation Process

From PKC
Jump to navigation Jump to search

Introduction

This page is written to give complete documentation on how the PKC is installed, description of all the related services, and the concept behind the architecture design. PKC Architecture is implemented at several docker container that runs its own service on same virtual network. PKC can be installed on a Virtual Machine or Bare-Metal machine.

Docker Concept

Docker is an containerized application runs on top of host operating system. It is some form of more lightweight implementation of virtualization. All we need to do to deploy and shipped new application is to containerized all our executable code and all its dependencies inside one docker container, and we are ready to delivered the application.

  • Docker is a tools, to develop and run container
  • Container is the packed executable and application code.

In order to run container, we need some kind of tools, which in this case are using Docker. For further readings, please visit this page for comprehensive explanation of Docker by Bibin Wilson.[1]
Below is the simple diagram on how container is deployed into one's computer, to give better understanding on high-level concept of docker container.

Simple diagram on How Docker is Deployed

On host Operating System, administrator only need to install and configured Docker or other software with the capability to run container, and installed all the application container within the operating system. Them all the service will be ready to go without need to install all the code and dependecies.

Ansible Concept

Ansible is open-source tools that provide automation tools for cross-platform computer support. Enabled developer or DevOps to perform various task of installation, configuration, and provisioning computer and/or server. Basically everything that system administrator does in routine. And it does not depend on any agent software nor additional security layers. So its easy to use and deploy. Below are the simple schematic diagram to better give high-level understanding of ansible.

Simple diagram on How Ansible is Work

The Ansile script, only need to be deployed on one ansible agent with connection to the servers. Then the task that has already defined in ansible agent will be executed on target computer and/or server.

PKC Architecture Review

Please find below are the diagram of PKC Implementation on micro-services and containerization.

PKC Implementation Overview

PKC consist of below containers

  1. XLP_Mediawiki: Mediawiki service, this is where all the content of XLP can be accessed, and the entrypoint for the implementation.
  2. XLP_Gitea: Gitea service, for storing files and source-code.
  3. XLP_Keycloak: Identity service provider for managing users
  4. XLP_Matomo: Web Analytic Service, to monitor the usage and
  5. XLP_VS: Web-Based Visual Studio Code, to manage source-code.
  6. phpmyadmin: Tools for managing the databaser server.
  7. XLP_MariaDB: mySQL RDBMS Provider
  8. NGINX: Installed on host server, to manage the connectivity between incoming traffic and microservices.

All the binds folder is under the folder of $HOME/cs/mountpoint, below are the list of folder bind into containers

Folder/Filename Container Container's Folder
backup_restore/mariadb xlp_mariadb /mnt/backup_restore/mariadb
backup_restore/mediawiki xlp_mediawiki /mnt/backup_restore/mediawiki
gitea gitea /data
images xlp_mediawiki /var/www/html/images
LocalSettings.php xlp_mediawiki /var/www/html/LocalSettings.php
mariadb xlp_mariadb /var/lib/mysql
matomo xlp_matomo /bitnami/matomo
vs xlp_vs /config
mysql-init xlp_mariadb /docker-entrypoint-initdb.d

NGINX Configuration is stored on host folder /etc/nginx/sites-enabled, which forward traffic from outside into each container's port. below are the table of default PKC Configurations.

Container Port# Remarks
xlp_mariadb N/A Not exposed
phpmyadmin 32040
xlp_keycloak 32060
xlp_matomo 32010
xlp_mediawiki 32001
xlp_gitea 32030
xlp_vs 32050

Pre-Requisite

How to provision your server

Installation Execution

Source Code

Configuration Explained

References