Skip to content
Snippets Groups Projects
Commit 1e93b310 authored by MUNIER Florian's avatar MUNIER Florian
Browse files

Update README.md

parent e6bc262b
No related branches found
No related tags found
No related merge requests found
......@@ -4,8 +4,6 @@
- Formation : MS Infrastructures Cloud et DevOps
- Date : 13/03/2023 - 16/03/2023
- Description : Ce projet a pour but de déployer les outils de monitoring Prométheus et Zabbix.
- projet_terraform :
- projet_ansible_vapormap :
> A noter qu'il faut au préalable avoir créé l'infrastructure via Terraform (lien du GitLab ci-dessus) et lancer le cluster Kubernetes.
......@@ -15,45 +13,187 @@
git clone https://gitlab.imt-atlantique.fr/f21munie/fil_rouge5_groupe1.git
```
# Installation de Prométheus
#######################################################################################################
###################################CONFIGURER TERRAFORM###############################################
#######################################################################################################
# Installation de Terraform
# Installation de Zabbix
- Installer Terraform :
## Création d'un environnement virtuel
```sh
TF_VERSION=1.3.6
echo "Downloading terraform binary ..."
if [ ! -e terraform_${TF_VERSION}_linux_amd64.zip ]; then
curl -O https://releases.hashicorp.com/terraform/${TF_VERSION}/terraform_${TF_VERSION}_linux_amd64.zip
fi
if [ ! -x ~/bin/terraform ]; then
unzip terraform_${TF_VERSION}_linux_amd64.zip -d ~/bin/
fi
rm -f terraform_${TF_VERSION}_linux_amd64.zip
```
- Vérifier le bon fonctionnement de Terraform :
```sh
terraform -v
```
> Terraform v1.3.6
> on linux_amd64
# Configuration de l'interaction avec Openstack
Pour pouvoir interagir avec Openstack, créer ou récupérer via horizon un fichier RC, et initialiser l'environnement :
```sh
cd projet_terraform_ansible_k8s
source os-openrc.sh
env | grep OS_
```
> Le fichier "os-openrc.sh" correspond à votre fichier RC perso. N'oubliez pas de préciser le chemin.
# Renseigner les variables de Terraform
Il est nécessaire de paramétrer les variables suivantes afin de choisir vos caractéristiques de l'infrastructure (, nom du réseau, du sous-réseau, du routeur, le CIDR, ...).
Pour cela, allez dans le fichier "main.tf" et veuillez à renseigner les variables. Vous pouvez modifier les variables à partir <ROUTER_NAME> jusqu'à <K3S_TOKEN>.
```sh
cd projet_ansible_vapormap
cd projet_terraform_ansible_k8s/Terraform
sudo vim main.tf
```
```sh
module "mod-os-private-network" {
source = "./mod-os-private-network/"
KEYPAIR_PATH = "$HOME/.ssh"
EXTERNAL_NETWORK = "external"
ROUTER_NAME = "router_tf_private"
NETWORK_NAME = "network_tf_private"
SUBNET_NAME = "subnet_tf_private"
SUBNET_IP_RANGE = "192.168.1.0/24"
DNS = ["192.44.75.10"]
INSTANCE_BASTION_NAME = "bastion"
INSTANCE_BASTION_IMAGE = "imta-docker"
INSTANCE_BASTION_FLAVOR = "s10.medium"
INSTANCE_BASTION_KEY_PAIR = "projet_terraform"
INSTANCE_ORCHEST_NAME = ["node01", "node02", "node03"]
INSTANCE_ORCHEST_IMAGE = "imta-docker"
INSTANCE_ORCHEST_FLAVOR = "s10.medium"
INSTANCE_ORCHEST_KEY_PAIR = "cluster_key"
INSTANCE_ZABBIX_SERVER_NAME = "zabbix-server"
INSTANCE_ZABBIX_SERVER_IMAGE = "imta-docker"
INSTANCE_ZABBIX_SERVER_FLAVOR = "s10.medium"
INSTANCE_ZABBIX_SERVER_KEY_PAIR = "projet_terraform"
SECGROUP_BASTION_NAME = "secgroup_bastion"
SECGROUP_APPLICATION_NAME = "secgroup_application"
SECGROUP_INTERNAL_NETWORK_NAME = "secgroup_internal_network"
K3S_TOKEN = "cluster"
}
```
#######################################################################################################
#####################################CONFIGURER ANSIBLE################################################
#######################################################################################################
# Création d'un environnement virtuel
```sh
cd projet_terraform_ansible_k8s
python3 -m venv ./venv/ansible
source ./venv/ansible/bin/activate
pip install ansible
deactivate
```
#######################################################################################################
########################################DEPLOIEMENT###################################################
#######################################################################################################
# Déploiement de l'architecture et de l'application Vapormap
```sh
cd projet_terraform_ansible_k8s
source ./venv/ansible/bin/activate
cd projet_terraform_ansible_k8s/Terraform
terraform init
terraform plan
terraform apply
```
> Terraform apply vous demandera d'entrer une valeur (Enter a value:), taper "yes" et valider avec "entrée".
## Déploiement de l'outil zabbix
> L'application Vapormap est automatiquement déployée par Terraform qui lance le playbook Ansible.
1 - Dans le fichier "hosts.ini", remplacer les adresses ip par celles des différentes instances déployées ainsi que les chemins des clés privées :
# Accéder à l'application
Pour accéder à l'application Vapormap, rendez-vous sur les adresses suivantes :
> Vous pouvez trouver la variable <PUB_API_IP> dans le fichier "hosts.ini".
- Frontend
```sh
http://<PUB_API_IP>
```
- API
```sh
http://<PUB_API_IP>/api/points/
```
# Visualisation de l'architecture
Vous pouvez vérifier l'état des ressources vues par Terraform. Elles seront listées avec leurs attribus.
```sh
terraform show
```
Vous pouvez également lister les ressources par type dans Openstack, directement en ligne de commande :
```sh
[admin]
bastion ansible_host=10.29.244.72 ansible_user=ubuntu ansible_ssh_private_key_file=.ssh/projet_terraform.pem
[node]
node03 ansible_host=192.168.1.107
node02 ansible_host=192.168.1.157
node01 ansible_host=192.168.1.246
[monitoring]
zabbix-server ansible_host=10.29.244.29 ansible_user=ubuntu ansible_ssh_private_key_file=.ssh/projet_terraform.pem
openstack network list
openstack subnet list
openstack router list
openstack floating ip list
openstack security group list
```
2 - Lancer le playbook :
L'architecture est graphiquement visualisable via Openstack :
```sh
Projet / Réseau / Topologie du réseau
```
# Suppression de l'application Vapormap sur une instance
```sh
cd projet_terraform_ansible_k8s
source ./venv/ansible/bin/activate
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i hosts.ini deploy.yml
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i Ansible/hosts.ini Ansible/destroy.yml
deactivate
```
3 - Se connecter au serveur Zabbix :
# Suppression de l'architecture
Si vous voulez supprimer l'architecture, lancer la commande suivante :
```sh
cd projet_terraform_ansible_k8s/Terraform
terraform destroy
```
#######################################################################################################
########################################MONITORING####################################################
#######################################################################################################
# Déploiement de l'outil Prométheus
# Déploiement de l'outil zabbix
1 - Se connecter au serveur Zabbix :
```sh
http://<IP_PUBLIC_ZABBIX_SERVER>/zabbix
......@@ -61,7 +201,7 @@ http://<IP_PUBLIC_ZABBIX_SERVER>/zabbix
> Identifiants : Admin / zabbix
4 - Création d'un groupe
2 - Création d'un groupe
```sh
- Sélectionner "Collecte de données"
......@@ -71,7 +211,7 @@ http://<IP_PUBLIC_ZABBIX_SERVER>/zabbix
- Sélectionner "Ajouter"
```
5 - Création des hôtes
3 - Création des hôtes
```sh
- Sélectionner "Collecte de données"
......@@ -84,7 +224,7 @@ http://<IP_PUBLIC_ZABBIX_SERVER>/zabbix
- Sélectionner "Ajouter"
```
6 - Visualiser les métrics
4 - Visualiser les métrics
```sh
Pour visualiser de façon générale les alertes :
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment