# Ansible Project > Florian Charlaix P1905458 | DevOps 1 ## Roles ### APT Installe les dépendances générales avec APT * zip * unzip * acl ### MariaDB Install et configure MariaDB. Crée une base de données, un utilisateur et mot de passe avec les variables : * `db_name`: Nom de la base de données * `db_user`: Nom de l'utilisateur * `db_password`: Mot de passe de l'utilisateur ### PHP Install, configure PHP et ses dépendances pour ProjectSend. ### NodeJS Installe et met en place NodeJS et NPM. Cela crée aussi le dossier npm pour l'utilisateur www-data ### Nginx Install et configure Nginx. Met en place la configuration pour ProjectSend. * `gzip`: Activer ou non gzip ### ansistrano.deploy Ce rôle fourni par la communauté permet de gérer le déploiement atomique. Il utilise les tags du GitHub afin de gérer la version. Une fois installer, la configuration pour la base de données est effectué et les dépendances installer et/ou compiler grace aux taches dans `ansistrano_tasks`. ## Setup * Mettre en place les bons hosts dans `hosts.yml` et les `host_vars` correspondents * Exécuter le playbook principale ```bash ansible-playbook playbook.yml ``` ## Schema ```mermaid graph TB; subgraph Playbook playbook.yml --> playbook-server.yml; playbook.yml --> playbook-app.yml; end subgraph Roles playbook-server.yml --- apt(apt); playbook-server.yml --- mariadb(mariadb); playbook-server.yml --- php(php); playbook-server.yml --- nodejs(nodejs); playbook-server.yml --- nginx(nginx); playbook-app.yml --- ansistrano.deploy(ansistrano.deploy); end subgraph Hooks ansistrano.deploy --- after_update.yml([after_update.yml]); after_update.yml --> configure.yml([configure.yml]); after_update.yml --> dependencies.yml([dependencies.yml]); end ``` ## VM * Ip: `192.168.140.142` * Utilisateur: `ubuntu` * Clé privée : ``` -----BEGIN OPENSSH PRIVATE KEY----- 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 -----END OPENSSH PRIVATE KEY----- ```