Update README.md
This commit is contained in:
105
README.md
105
README.md
@@ -1,48 +1,75 @@
|
|||||||
# demoAnsible
|
# TP Ansible
|
||||||
|
|
||||||
## Setup
|
## Objectif du TP
|
||||||
|
|
||||||
- Install Virtualbox
|
Ce TP est une introduction pratique à Ansible. Le but est d'observer le déploiement automatisé à l'aide d'Ansible. Ce TP est donné dans le cadre du cours [TLC](https://hackmd.diverse-team.fr/s/SJqu5DjSD) au [département d'Informatique et d'Electronique](https://istic.univ-rennes1.fr/) de l'[Université de Rennes 1](https://www.univ-rennes1.fr/).
|
||||||
- Install vagrant
|
|
||||||
- Install ansible
|
|
||||||
- Start the VMs using vagrant
|
|
||||||
|
|
||||||
|
# Modalités de rendu
|
||||||
|
|
||||||
|
Tous les rendus TLC se font à travers le gitlab de l'ISTIC : https://gitlab2.istic.univ-rennes1.fr/
|
||||||
|
|
||||||
|
Si vous ne l'avez pas déjà fait, créez sur Gitlab ISTIC un groupe nommé `TLC_2025_<votre_nom>_<votre_prenom>`
|
||||||
|
|
||||||
|
Pour chaque TP, vous devrez créer un projet dans ce groupe (il est fortement conseillé de fork le repo du projet en le plaçant dans votre groupe gitlab), nommé `TP<numero>_<votre_nom>_<votre_prenom>` et le projet finale nommé `Projet_<votre_nom>_<votre_prenom>`
|
||||||
|
|
||||||
|
Pour chaque TP, vous devrez ajouter votre enseignant en tant que membre du projet avec le rôle de "Reporter" pour permettre la correction.
|
||||||
|
|
||||||
|
### Tâche 0
|
||||||
|
|
||||||
|
- Utilisez le Vagrantfile dans le répertoire `vagrant` pour créer des machines virtuelles en local.
|
||||||
|
Plus d'informations dans [run_demo.md](run_demo.md).
|
||||||
|
|
||||||
|
|
||||||
|
### Tâche 1
|
||||||
|
|
||||||
|
- En s'inspirant du playbook disponible [lamp_ubuntu2204_2hosts_withroles](lamp_ubuntu2204_2hosts_withroles), déployez cette simple application Ansible sur vos VMs.
|
||||||
|
|
||||||
|
Sur votre portable :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
apt-get install ansible
|
||||||
git clone https://github.com/barais/demoAnsible
|
git clone https://github.com/barais/demoAnsible
|
||||||
cd vagrant
|
cd demoAnsible/lamp_ubuntu2204_2hosts_withroles
|
||||||
vagant up
|
# éditez le fichier hosts pour y mettre les IP de vos VMs ainsi que le login et le mot de passe
|
||||||
# Check that the VM are up
|
nano -w hosts
|
||||||
# Check that you can login using ssh (ssh vagrant@192.168.56.141 # password: vagrant)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Demo 1
|
|
||||||
|
|
||||||
Run the playbook
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ansible-playbook playbook.yml -i hosts
|
|
||||||
```
|
|
||||||
|
|
||||||
Try to access http://192.168.56.141/index.php
|
|
||||||
|
|
||||||
## Demo 2
|
|
||||||
|
|
||||||
- Kill the VMs and remove them.
|
|
||||||
- Use vagrant to recreate them from scratch
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/barais/demoAnsible
|
|
||||||
cd vagrant
|
|
||||||
vagant up
|
|
||||||
# Check that the VM are up
|
|
||||||
# Check that you can login using ssh (ssh vagrant@192.168.56.141 # password: vagrant)
|
|
||||||
```
|
|
||||||
|
|
||||||
Run the playbook
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ansible-playbook site.yml -i hosts
|
ansible-playbook site.yml -i hosts
|
||||||
```
|
```
|
||||||
|
|
||||||
Try to access http://192.168.56.141/index.php
|
Essayez d'accéder à http://ADRESSE_IP_DE_VOTRE_VM_WEB/index.php
|
||||||
|
|
||||||
|
### Tâche 2
|
||||||
|
|
||||||
|
- Créer un nouveau playbook pour installer un **control node** dans une VM.
|
||||||
|
|
||||||
|
Tout d'abord, créez la structure de votre playbook. Prenez le temps de lire les recommandations [ici](https://docs.ansible.com/ansible/latest/tips_tricks/sample_setup.html).
|
||||||
|
|
||||||
|
En utilisant les modules apt, snap et shell, créez un playbook pour installer microk8s.
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Cliquez ici pour des lien utiles</summary>
|
||||||
|
|
||||||
|
- Install Docker
|
||||||
|
|
||||||
|
[Install Docker on ubuntu](https://docs.docker.com/engine/install/ubuntu/)
|
||||||
|
|
||||||
|
- Install microk8s
|
||||||
|
|
||||||
|
[See docs](https://microk8s.io/docs/getting-started)
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### Tâche 3
|
||||||
|
- Étendez votre playbook pour installer un **worker node** dans une VM. Et ajoutez-le à votre cluster.
|
||||||
|
|
||||||
|
### Tâche 4
|
||||||
|
- Créez une resource Deployment avec un simple pod Nginx.
|
||||||
|
- Étendez votre playbook en utilisant le module `kubernetes.core.k8s` pour deployer nginx.
|
||||||
|
- Vérifiez que le pod est bien déployé. Pouvez-vous accéder à la page d'accueil de Nginx ?
|
||||||
|
|
||||||
|
### Tâche Bonus
|
||||||
|
|
||||||
|
Pour les plus guerriers, révisez votre playbook Ansible pour utiliser le module suivant : [gepaplexx/microk8s](https://galaxy.ansible.com/gepaplexx/microk8s)
|
||||||
|
|
||||||
|
### Rendu TP Ansible
|
||||||
|
- un playbook pour installer un cluster microk8s
|
||||||
|
- tâches pour deployer un pod nginx
|
||||||
|
|||||||
@@ -1,89 +0,0 @@
|
|||||||
# TP Ansible
|
|
||||||
|
|
||||||
## Objectif du TP
|
|
||||||
|
|
||||||
Ce TP est une introduction pratique à Ansible. Le but est d'observer le déploiement automatisé à l'aide d'Ansible. Ce TP est donné dans le cadre du cours [TLC](https://hackmd.diverse-team.fr/s/SJqu5DjSD) au [département d'Informatique et d'Electronique](https://istic.univ-rennes1.fr/) de l'[Université de Rennes 1](https://www.univ-rennes1.fr/).
|
|
||||||
|
|
||||||
## Enoncé
|
|
||||||
|
|
||||||
### Tâche 0
|
|
||||||
|
|
||||||
Créer deux machines virtuelle (https://vm.istic.univ-rennes1.fr/ séléctionner **ubuntu22** comme image de base), l'accès au port 22 se fera au travers du [VPN](https://istic.univ-rennes1.fr/intranet/services#section-4).
|
|
||||||
|
|
||||||
Une fois que vous avez créer ces machines, vérifier que vous avez accès à ces machines en ssh avec les instructions reçues par email.
|
|
||||||
|
|
||||||
De manière alternative, vous pouvez utiliser VirtualBox et le script Vagrant fourni dans ce repositor pour créer ces VMs.
|
|
||||||
|
|
||||||
|
|
||||||
### Tâche 1
|
|
||||||
|
|
||||||
En s'inspirant du playbooks disponible [ici](https://github.com/barais/demoAnsible/tree/main/lamp_ubuntu2204_2hosts_withroles), déployer cette simple application ansible sur vos vms.
|
|
||||||
|
|
||||||
Sur votre portable :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
apt-get install ansible
|
|
||||||
git clone https://github.com/barais/demoAnsible
|
|
||||||
cd demoAnsible/lamp_ubuntu2204_2hosts_withroles
|
|
||||||
# edit the hosts to put the IP of your VMs and the login and password
|
|
||||||
nano -w hosts
|
|
||||||
ansible-playbook site.yml -i hosts
|
|
||||||
```
|
|
||||||
|
|
||||||
Essayer d'accéder à http://ADRESSE_IP_DE_VOTRE_VM_WEB/index.php
|
|
||||||
|
|
||||||
### Tâche 2
|
|
||||||
|
|
||||||
Créer un nouveau playbook pour installer micok8S sur votre VM.
|
|
||||||
|
|
||||||
Tout d'abord, créer la structure de votre playbook. Prenez le temps de lire les recommandations ici.
|
|
||||||
https://docs.ansible.com/ansible/latest/tips_tricks/sample_setup.html
|
|
||||||
|
|
||||||
En utilisant les modules apt, snap et shell, créer un playbook pour installer microk8S.
|
|
||||||
|
|
||||||
Je rappelle que microk8s s'installe manuellement avec les commandes suivantes.
|
|
||||||
|
|
||||||
- Install Docker
|
|
||||||
|
|
||||||
[Install Docker on ubuntu](https://docs.docker.com/engine/install/ubuntu/)
|
|
||||||
|
|
||||||
- Install microk8s
|
|
||||||
|
|
||||||
[See docs](https://microk8s.io/docs/getting-started)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo snap install microk8s --classic --channel=1.25
|
|
||||||
sudo usermod -a -G microk8s $USER
|
|
||||||
sudo chown -f -R $USER ~/.kube
|
|
||||||
microk8s start
|
|
||||||
microk8s status --wait-ready
|
|
||||||
```
|
|
||||||
|
|
||||||
Enable services
|
|
||||||
|
|
||||||
```bash
|
|
||||||
microk8s enable dns storage
|
|
||||||
microk8s enable dashboard ingress
|
|
||||||
microk8s enable registry
|
|
||||||
```
|
|
||||||
|
|
||||||
Pushing to this insecure registry may fail in some versions of Docker unless the
|
|
||||||
daemon is explicitly configured to trust this registry. To address this we need
|
|
||||||
to edit /etc/docker/daemon.json and add:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"insecure-registries" : ["localhost:32000"]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
The new configuration should be loaded with a Docker daemon restart:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo systemctl restart docker
|
|
||||||
```
|
|
||||||
|
|
||||||
### Tâche 3
|
|
||||||
|
|
||||||
Pour les plus gerriers, révisez votre playbook ansible pour utiliser le module suivant
|
|
||||||
https://galaxy.ansible.com/gepaplexx/microk8s
|
|
||||||
48
run_demo.md
Normal file
48
run_demo.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# demoAnsible
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
- Install Virtualbox
|
||||||
|
- Install vagrant
|
||||||
|
- Install ansible
|
||||||
|
- Start the VMs using vagrant
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/barais/demoAnsible
|
||||||
|
cd vagrant
|
||||||
|
vagant up
|
||||||
|
# Check that the VM are up
|
||||||
|
# Check that you can login using ssh (ssh vagrant@192.168.56.141 # password: vagrant)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Demo 1
|
||||||
|
|
||||||
|
Run the playbook
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook playbook.yml -i hosts
|
||||||
|
```
|
||||||
|
|
||||||
|
Try to access http://192.168.56.141/index.php
|
||||||
|
|
||||||
|
## Demo 2
|
||||||
|
|
||||||
|
- Kill the VMs and remove them.
|
||||||
|
- Use vagrant to recreate them from scratch
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/barais/demoAnsible
|
||||||
|
cd vagrant
|
||||||
|
vagant up
|
||||||
|
# Check that the VM are up
|
||||||
|
# Check that you can login using ssh (ssh vagrant@192.168.56.141 # password: vagrant)
|
||||||
|
```
|
||||||
|
|
||||||
|
Run the playbook
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook site.yml -i hosts
|
||||||
|
```
|
||||||
|
|
||||||
|
Try to access http://192.168.56.141/index.php
|
||||||
Reference in New Issue
Block a user