Bonjour à tous. Chez Convergent, où je travaille, les équipes projets comprennent souvent plusieurs développeurs : ils peuvent être des spécialistes back-end, front-end et/ou layout. Les projets sont le plus souvent développés en PHP, ce qui entraîne des dépendances vis-à-vis de divers organismes externes tels que des bases de données, des systèmes de recherche en texte intégral, etc. Et il y a un gros problème ici : les collègues qui travaillent sur Linux, qui est la base du développement web, n'ont aucun problème. Les utilisateurs de Windows, en revanche, ont mal à la tête.
Comment résoudre ce problème? Dans notre entreprise, nous utilisons plusieurs options. Dans cet article, j'ai décidé de partager nos développements.

Option un. Un ensemble d'outils prêts à l'emploi comme OSPanel ou XAMPP. Dans la plupart des projets Yii qui n'utilisent pour la plupart que MySQL, ce sont de très bonnes solutions.
La deuxième option est Docker. C'est idéal pour automatiser les déploiements, y compris les projets hérités. Mais cela doit être pris en charge. Maintenant, avec la sortie de WSL 2, travailler avec Docker sur Windows 10 (y compris Home Edition) est devenu beaucoup plus pratique qu'avant. Il existe de nombreux articles à ce sujet sur Habré.
La troisième option est de mettre Linux sur un deuxième système. C'est un processus plutôt intimidant, je l'ai donc automatisé à l'aide des outils de virtualisation et d'automatisation VirtualBox, Vagrant et 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 . . , .

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 est un système de gestion de configuration.
VirtualBox est le système de virtualisation de système d'exploitation le plus populaire pour les postes de travail.
Vagrant est un outil de configuration d'un environnement virtuel.