{"id":14984499,"url":"https://github.com/ysodre/ansible-expressapp","last_synced_at":"2025-03-16T19:17:35.616Z","repository":{"id":177043965,"uuid":"659887489","full_name":"ySodre/ansible-expressapp","owner":"ySodre","description":null,"archived":false,"fork":false,"pushed_at":"2023-07-05T22:45:37.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T19:17:30.694Z","etag":null,"topics":["ansible-playbook","ansible-roles","database","website"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ySodre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-28T19:29:52.000Z","updated_at":"2023-07-05T18:58:50.000Z","dependencies_parsed_at":"2023-07-10T02:46:45.661Z","dependency_job_id":null,"html_url":"https://github.com/ySodre/ansible-expressapp","commit_stats":{"total_commits":18,"total_committers":2,"mean_commits":9.0,"dds":"0.16666666666666663","last_synced_commit":"df13ffb96be0c08ba8ea5ae0e564a25a624e8a42"},"previous_names":["ysodre/ansible-expressapp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ySodre%2Fansible-expressapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ySodre%2Fansible-expressapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ySodre%2Fansible-expressapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ySodre%2Fansible-expressapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ySodre","download_url":"https://codeload.github.com/ySodre/ansible-expressapp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243918630,"owners_count":20368745,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible-playbook","ansible-roles","database","website"],"created_at":"2024-09-24T14:09:10.378Z","updated_at":"2025-03-16T19:17:35.595Z","avatar_url":"https://github.com/ySodre.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projeto - Instalação da aplicação Web Allsafe Express\n\nO objetivo desse projeto é fazer o deploy de uma aplicação web que faz consultas ao servido de banco de dados de maneira automatizada com o ansible.\n\n![image](https://github.com/ySodre/ansible-expressapp/assets/89286829/121f1aac-2b68-493b-81c2-1789bf6c25e2)\n\n## Conhecimentos utilizados\n  \u003cul\u003e\n    \u003cli\u003eAnsible\u003c/li\u003e\n    \u003cli\u003eEstrutura de arquivos Ansible\u003c/li\u003e\n    \u003cli\u003eCódigo reutilizável\u003c/li\u003e\n    \u003cli\u003eApache2\u003c/li\u003e\n    \u003cli\u003eBanco de dados\u003c/li\u003e\n    \u003cli\u003ePar de chaves pública e privada\u003c/li\u003e\n    \u003cli\u003eVagrant\u003c/li\u003e\n  \u003c/ul\u003e\n\n## Configuração\n\n1 - Utilizei o vagrant para provisionar as instâncias do projeto: controle (ansible), web e db.\n\n2 - Configuração da máquina controle\n\n  \u003cul\u003e\n    \u003cli\u003e#apt update -y\u003c/li\u003e\n    \u003cli\u003e#apt install git -y\u003c/li\u003e\n    \u003cli\u003e#apt install ansible -y \u003c/li\u003e\n    \u003cli\u003e#cd /opt\u003c/li\u003e\n    \u003cli\u003e#mkdir expressapp\u003c/li\u003e\n    \u003cli\u003e#cd expressapp\u003c/li\u003e\n    \u003cli\u003e#git clone \u003cstrong\u003ehttps://github.com/ySodre/ansible-expressapp.git\u003c/strong\u003e\u003c/li\u003e\n    \u003cli\u003e#cd ansible-expressapp\u003c/li\u003e\n \u003c/ul\u003e\n\n3 - Gerar par de chaves para os servidor WEB e DB e importar para os servidores, por padrão o usuário e senha das máquinas provisionadas pelo vagrant é: vagrant.\n\n  \u003cul\u003e\n    \u003cli\u003e#ssh-keygen\u003c/li\u003e\n    \u003cli\u003e#ssh-copy-id vagrant@ip_db\u003c/li\u003e\n    \u003cli\u003e#ssh-copy-id vagrant@ip_web\u003c/li\u003e\n  \u003c/ul\u003e\n4 - Editar o arquivo hosts dentro do diretorio do ansible_expressapp, alterando o IP dos servidores e o caminho da sua chave privada gerada.\n\n## Testar comunicação com os servidores\n\n  \u003cul\u003e\n    \u003cli\u003e#\u003cstrong\u003eansible -i hosts all -m ping\u003c/li\u003e\n  \u003c/ul\u003e\n      \n  Você deverá ver o seguinte retorno.\n      \n  ![image](https://github.com/ySodre/ansible-expressapp/assets/89286829/ac0f7557-a632-4f28-bb58-0cb430fb397c)\n\n## Executar o playbook implementação\n\nNesse projeto existe apenas uma váriável de ambiente que é o IP do banco de dados então no momento da execução é necessário passar a váriavel informando qual o IP do servidor de banco de dados.\n\n  \u003cul\u003e\n    \u003cli\u003e#ansible-playbook -i hosts -e \"db_ip=ip_db\" playbook.yml \u003c/li\u003e\n  \u003c/ul\u003e\n\nAo finalizar você deverá ver o resultado das tarefas sem erros\n\n![image](https://github.com/ySodre/ansible-expressapp/assets/89286829/b0d45ff6-cd68-48fd-86a3-6e4eb3ac8ada)\n\n## Configuração DNS\n\nComo estamos trabalhando com IPs privados, será necessário editar o arquivo hosts da sua máquina e criar o apontamento necessário.\n\nExemplo em windows. Caminho: C:\\Windows\\System32\\drivers\\etc\\hosts\n\n![image](https://github.com/ySodre/ansible-expressapp/assets/89286829/925eb3f2-a15a-4452-8abc-4d9f9f0ad964)\n\nExemplo em Linux. Caminho /etc/hosts\n\n![image](https://github.com/ySodre/ansible-expressapp/assets/89286829/d1124001-5bb0-4491-9f72-a42c7c9db640)\n\n## Resultado\n\nO resultado esperado é que ao digitar express.asf.com abra o website da aplicação e além disso na guia de backups precisa aparecer dois backups, validando a comunicação com o banco de dados.\n\n![image](https://github.com/ySodre/ansible-expressapp/assets/89286829/2a4ef44b-240f-4862-8c9c-9cc35e454de3)\n\n![image](https://github.com/ySodre/ansible-expressapp/assets/89286829/2dc13b09-1509-4099-b3d8-e09b18dd02a9)\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysodre%2Fansible-expressapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fysodre%2Fansible-expressapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysodre%2Fansible-expressapp/lists"}