Le but de ce challenge est d’interfacer Keycloak avec Kibana afin de mettre en place une solution de SSO sans avoir recours à l’offre payante de la suite ElasticSearch / Kibana, puis de déployer automatiquement cette solution via Ansible.
- Keycloak doit stocker ses données dans une base de données postgresql,
- Keycloak doit permettre de gérer différents rôles dans kibana, par exemple, un rôle permettant uniquement de lire les dashboards, et un rôle permettant de manager kibana
- Le résultat doit être fourni sous la forme d’un docker-compose,
- Le docker-compose doit être déployé sur un environnement ubuntu 20.04 LTS vierge via une procédure ansible,
- L’ensemble de votre travail doit être fourni dans une archive,
- Fournir un Readme détaillant les actions à mener pour installer le résultat de votre travail.
ansible-galaxy install -r requirements.yml
or
ansible-galaxy install geerlingguy.pip
ansible-galaxy install geerlingguy.docker
[ubuntu_20]
#your_ubuntu_20_host ansible_host=X.X.X.X
ssh-keygen -t rsa -b 4096
ssh-copy-id -i .ssh/id_rsa.pub YOUR_USER_NAME@your_ubuntu_20_host
ssh YOUR_USER_NAME@your_ubuntu_20_host
2.6 - Lancer ansible-playbook avec un nom d'utilisateur qui est "sudoers", le mot de passe correspondant sera demandé
ansible-playbook -i hosts -u YOUR_USER_NAME -K playbook.yml
ou (pour les logs mode verbose)
ansible-playbook -i hosts -u YOUR_USER_NAME -K playbook.yml -vv
(Durée d'environ 1h06 avec une connexion ADSL d'environ 3Mbps)
http://your_ubuntu_20_host:8080/
login : admin
mot de passe : admin
http://your_ubuntu_20_host:8080/auth/realms/example/account/
login : jdoe
mot de passe : jdoe
role : visualisation du dashbord de kibana
login : adminops
mot de passe : adminops
role : visualisation et management de kibana
ssh YOUR_USER_NAME@your_ubuntu_20_host
sudo docker exec -u 0 -it kibana /bin/bash
bin/kibana-plugin install file:./keycloak-kibana-3.3.0_7.5.0.zip --allow-root
2.12 - Copier le fichier de config prennant en change le plugin keycloak-kibana, confirmer l'overwrite
cp -u kibana.yml config/
exit
sudo docker-compose -f /root/docker-compose.yaml restart kibana
sudo docker-compose -f /root/docker-compose.yaml ps
Name Command State Ports
-----------------------------------------------------------------------------------------
elasticsearch /usr/local/bin/docker-entr ... Up 0.0.0.0:9200->9200/tcp, 9300/tcp
keycloak /opt/jboss/tools/docker-en ... Up 0.0.0.0:8080->8080/tcp, 8443/tcp
kibana /usr/local/bin/dumb-init - ... Up 0.0.0.0:5601->5601/tcp
postgres docker-entrypoint.sh postgres Up 5432/tcp
login : jdoe
mot de passe : jdoe
role : visualisation du dashbord de kibana
login : adminops
mot de passe : adminops
role : visualisation et management de kibana