{"id":18017313,"url":"https://github.com/isfegu/basic","last_synced_at":"2025-10-24T23:30:29.675Z","repository":{"id":101896126,"uuid":"48756956","full_name":"isfegu/Basic","owner":"isfegu","description":"Entorno (NGINX y PHP) de desarrollo/producción mediante el uso de Vagrant y Ansible","archived":false,"fork":false,"pushed_at":"2017-07-08T08:41:32.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-17T19:21:05.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Smarty","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isfegu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2015-12-29T16:41:40.000Z","updated_at":"2017-09-08T09:57:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"125c4dea-3b5a-4ee1-8f55-443912887d36","html_url":"https://github.com/isfegu/Basic","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isfegu%2FBasic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isfegu%2FBasic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isfegu%2FBasic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isfegu%2FBasic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isfegu","download_url":"https://codeload.github.com/isfegu/Basic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238044114,"owners_count":19407119,"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":[],"created_at":"2024-10-30T04:22:22.837Z","updated_at":"2025-10-24T23:30:29.330Z","avatar_url":"https://github.com/isfegu.png","language":"Smarty","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Entorno de desarrollo/producción mediante el uso de Vagrant y Ansible\n\n**Aviso**: Está probado en una Ubuntu 14.04 LTS como sistema operativo.\n\n## APLICACIONES\nInstala lo siguiente:\n\n- NGINX\n- PHP\n- COMPOSER\n\n## PREPARACIÓN DEL ENTORNO\nInstalar vagrant, virtualbox y ansible:\n\n``` bash\n$ sudo apt-add-repository ppa:ansible/ansible\n$ sudo apt-get update\n$ sudo apt-get virtualbox\n$ sudo apt-get vagrant\n$ sudo apt-get ansible\n```\n\n## CLONADO DEL PROYECTO\nCada cual clonará el proyecto donde mejor le convenga, para este tutorial será en _~/Projects/Provision/Basic_\n\n## CREACIÓN DE CLAVES\nPara poder usar _ansible_ deberemos crear dos claves ssh, una para desarrollo y otra para producción.\n\n``` bash\n$ ssh-keygen -t rsa -C \"correo@electronico.com\"\n```\nEjecutar el anterior comando una vez dándole a la clave el nombre _dev_ y _pro_ la segunda vez.\n\nTras la creación se deben copiar **ambas claves públicas** (.pub) en el directorio _common/keys_\n\nEstas claves se copiarán automáticamente en la _box_ _dev_ una vez se inicie.\n\n## ACTIVAR LAS CLAVES\nPara que nuestra máquina _host_ se pueda comunicar con las _boxes_ usando las claves que acabamos de crear debemos:\n\n``` bash\n$ ssh-agent bash\n$ ssh-add ~/.ssh/dev\n$ ssh-add ~/.ssh/pro\n```\n\n## INICIAR LAS MÁQUINAS VIRTUALES\n``` bash\n~/Projects/Provision/Basic/box$ vagrant up\n```\n\n## PROBANDO LA COMUNICACIÓN CON ANSIBLE\nPara comprobar que _ansible_ puede acceder a la _box_ _dev_ ejecutaremos:\n\n``` bash\n~/Projects/Provision/Basic$ ansible server -i provision/environments/dev/dev -m ping\n```\n\nDebiéndonos devolver lo siguiente:\n\n```\n10.10.10.10.10 | success \u003e\u003e {\n    \"changed\": false,\n    \"ping\": \"pong\"\n}\n```\n\nUsamos _server_ puesto que está creado un _group_ con ese nombre para especificar el host tanto de _dev_ como _pro_.\nVer archivos _provision/environments/pro/pro_ y _provision/environments/dev/dev_.\n\n## CONFIGURACIÓN DEL SERVIDOR MEDIANTE ANSIBLE\nPara aprovisionar *dev* ejecutaremos:\n\n``` bash\n~/Projects/Provision/Basic$ ansible-playbook -i provision/environments/dev/dev provision/dev.yml\n```\n\n## NGINX, PHP-FPM Y COMPOSER\nMediante ansible se instala _nginx_, _php-fpm_ y _composer_. En _provision/environments/dev/groups_vars_ se puede ver los parámetros\nconfigurables de cada uno de estos roles.\n\n## USAR UN SERVIDOR EXTERNO COMO PRODUCCIÓN\nModificamos el archivo _provision/environments/pro/pro_ especificando la IP del servidor externo.\n\n### PROBANDO LA COMUNICACIÓN CON ANSIBLE\n``` bash\n~/Projects/Provision/Basic$ ansible server -i provision/environments/pro/pro -m ping\n```\n\nDebiéndonos devolver lo siguiente:\n\n```\n\u003cIP\u003e | success \u003e\u003e {\n    \"changed\": false,\n    \"ping\": \"pong\"\n}\n```\n## CONFIGURACIÓN DEL SERVIDOR MEDIANTE ANSIBLE\nPara aprovisionar *dev* ejecutaremos:\n\n``` bash\n~/Projects/Provision/Basic$ ansible-playbook -i provision/environments/pro/pro provision/pro.yml\n```\n\n## AGRADECIMIENTOS\n- http://phansible.com/\n- http://future500.nl/articles/2014/05/how-to-use-ansible-for-vagrant-and-production/\n- http://www.erikaheidi.com/blog/configuring-a-multistage-environment-with-ansible-and-vagrant\n- https://serversforhackers.com/an-ansible-tutorial","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisfegu%2Fbasic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisfegu%2Fbasic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisfegu%2Fbasic/lists"}