+3

Glpi Deployment on Kubernetes with persistent volumes and SSL certificate Document

KDR hace 1 año actualizado hace 1 año 0

# glpi

Glpi Deployment on Kubernetes with persistent volumes and SSL certificate


Glpi Prerequisites - WebServer, PHP, Mysql/Mariadb Database.

Glpi Key Directories - /var/www/html/glpi/{config, plugins, marketplace.Files}.

MariadDB - /var/lib/mysql

Prerequisites for deploying GLPI:-

Kubernetes Cluster

Shared Storage for PV (You may also use local storage, but it is not recommended.)

1. Clone above repo - https://github.com/Dineshk1205/glpi.git

$ git clone https://github.com/Dineshk1205/glpi.git

2. Crate MariaDB root password as secret –

$ kubectl create secret generic mariadb --from-literal=mariadb-root-password=xxxxx

Image 453


3. Create a glpi namespace.

$ Kubectl create ns glpi

4. Extract controller-v1.9.0.tar.gz file

$ tar -xvf controller-v1.9.0.tar.gz

6. Installing the Nginx controller helm is required.

Helm installation –

$curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3

$ chmod 700 get_helm.sh

$ ./get_helm.sh

6. Nginx deployment: -

Switch to ingress-controller directory.

$ cd ingress-nginx-controller-v1.9.0/charts/ingress-controller

7. Create a ingress-controller namespace

$ kubectl create namespace ingress-nginx

8. Run the following command to install the nginx ingress –

$ helm install -n ingress-nginx ingress-nginx -f values.yaml.

9. SSL Certificate Configuration –

Generate a self-signed certificate or use ca certified certificate.

Crate Secret using Certificate key and cert file in glpi namespace

$ kubectl create secret tls glpi-tls --key xx.key --cert xx.crt -n glpi

Image 456


10. Update the IP address Range in metallb-pool.yaml file based on your network

11. Update host name in ingress.yaml based on your requiremnts

12. Finally, Install MariaDB And glpi

Switch to cloned Directory glpi and run the below command

$ kubectl apply -f .

Check pod status

$ kubectl get pods -A

Once pods are up, check glpi IP to access the GLPI GUI.

$ kubectl get ingress -n glpi

Image 455

Create DNS records for the above IP ( IP is above ingress IP, and Hostname will be matched with ingress.yaml file hostname).Access GLPU using FQDN.

Image 457



DB for Configuring the GLPI

In the Kubernetes cluster, check MariaDB IP

$ kubectl get svc

Image 458

Note down above mariadbsv cluster IP; use IP for connected Glpi.SQL user use root as user and enter a password. (Password created as secret in previous steps)


Image 459


Image 464

Image 465