Automatización de la configuración del escritorio o cómo entregar Linux a quienes no tienen uno

Hola a todos. En Convergent, donde trabajo, los equipos de proyectos a menudo incluyen varios desarrolladores: pueden ser especialistas en back-end, front-end y / o diseño. Los proyectos se desarrollan con mayor frecuencia en PHP, lo que genera dependencias en varios organismos externos, como bases de datos, sistemas de búsqueda de texto completo y otros. Y aquí hay un gran problema: los colegas que trabajan en Linux, que es la base del desarrollo web, no tienen problemas. Los usuarios de Windows, por otro lado, están teniendo un dolor de cabeza.





¿Cómo resolver este problema? En nuestra empresa utilizamos varias opciones. En este artículo, decidí compartir nuestros desarrollos.





  • Opcion uno. Un conjunto de herramientas listas para usar como OSPanel o XAMPP. En la mayoría de los proyectos Yii que en su mayoría solo usan MySQL, estas son muy buenas soluciones.





  • La segunda opción es Docker. Es excelente para automatizar implementaciones, incluidos proyectos heredados. Pero esto debe solucionarse. Ahora, con el lanzamiento de WSL 2, trabajar con Docker en Windows 10 (incluida Home Edition) se ha vuelto mucho más conveniente que antes. Hay muchos artículos sobre esto en Habré.





  • La tercera opción es poner Linux en un segundo sistema. Este es un proceso bastante abrumador, así que lo automaticé usando las herramientas de virtualización y automatización VirtualBox, Vagrant y Ansible.





GitHub . :





  • Ubuntu 20.04 . , , Ubuntu, .





  • Ansible (Git, Ansible, NVM, PHP, MC, Docker, Docker Compose, PhpStorm, Visual Code, DBeaver Community Edition). Ansible.





VirtualBox Vagrant. — . BIOS/UEFI, - (, VT).





PowerShell Git :





git clone https://github.com/s-mokrushin/ubuntu-development-box
cd ubuntu-development-box
cp .env.example .env
      
      



— .env . , Ubuntu 16 .





  • BOX_CPU_COUNT — . = / 2. — 4. — 1.





  • BOX_MEMORY_SIZE — . = / 2. — 8096. — 2048.





  • BOX_DISK_SIZE — . — 75GB. , ( 12 ).





  • BOX_IP_ADDRESS — IP- . .





  • BOX_HOSTNAME — . .





. . Git, SSH, id_rsa. Ansible /home/vagrant/.ssh.





:





vagrant up
      
      



Vagrant , vagrant up . . , .





Ubuntu 20.04
Ubuntu 20.04

Ansible, vagrant provision ( vagrant up — provision, ).





Ansible. , “ Ansible, 3 .” “ Ansible”. .





Linux , Windows 10. , , , Ansible Vagrant , .





, . - , .





  • OSPanel — - Windows ( MongoDB, Redis . .).





  • XAMPP — Apache + MariaDB + PHP + Perl Windows.





  • Ansible es un sistema de gestión de la configuración.





  • VirtualBox es el sistema de virtualización de sistemas operativos más popular para estaciones de trabajo.





  • Vagrant es una herramienta para configurar un entorno virtual.








All Articles