Danilo Esser (https://www.linkedin.com/in/daniloesser) nos mostra a facilidade de ter um ambiente configurado e rodando utilizando o Vagrant e o Laravel Homestead.
---
Essa talk aconteceu durante o X PHPFC
Etc... ✖ Configurar Libs como CuRL, ImageMagick, APC, Oci... ✖ Configurar VirtualHosts do Apache.. ✖ Copiar arquivos de Setup/Config via Samba, FTP ou SCP... ✖ Importar databases... ✖ Fazer checkout de repositórios.. E se ao invés de você... ★ Especificar em texto simples como o hardware da máquina virtual deve ser configurado e o que deve ser instalado nela, como numa receita. ★ Fazer checkout do projeto. ★ Executar "vagrant up" e já começar a trabalhar.
Provisioners O Vagrant é um gerenciador de VMs (máquinas virtuais). Através dele é possível definir o ambiente de desenvolvimento onde seu projeto irá rodar. Com suporte para Mac OS, Linux e Windows, consegue atender boa parte dos desenvolvedores. Ele utiliza providers, boxes e se necessário, provisioners.
Vagrant provision Re-executa os scripts de provisionamento na maquina virtual. Vagrant ssh Acessa a maquina virtual via SSH. Vagrant halt Interrompe a maquina virtual em execução. Vagrant destroy Destrói a maquina virtual. Vagrant Box Adiciona, lista, remove ou atualiza os Boxes do Vagrant. Vagrant docker-run Executa um container Docker. P.S: Podemos utilizar qualquer um dos comandos Docker.
curva de aprendizagem DevOps. Uma coisa é você começar a usar Vagrant, outra coisa (totalmente diferente) é você fazer configuração e provisionamento do seu servidor personalizado utilizando Ansible, Chef ou Puppet.
todas essas dificuldades. Ele já vem pré-configurado para suprir as necessidades do Framework e de quebra ainda traz diversos recursos populares e essenciais.
16.04 – Fácil de usar e muito conhecido. • Git • PHP 7 – Ultima versão stable. • Nginx – Rápido, performático e fácil de configurar. • MariaDB – Vai além do MySQL, oferecendo nível empresarial de alta disponibilidade, escalabilidade e segurança ao MySQL. • Postgres • Composer • Node (com PM2, Bower, Grunt e Gulp) – Todas as Front-End tools + task runners • Redis – Cache de chave/valor de alta performance. • Memcached – Ferramenta de Cache • Beanstalkd – Queue server fácil de usar. • Sqlite3
o repositório oficial do Homestead e criar um único arquivo de config: ➔ Instalação do repositório do Homestead: ◆ Global: git clone [email protected]:laravel/homestead.git . ◆ Per project: composer require laravel/homestead --dev ➔ Criação do arquivo Homestead.yaml: ◆ Global: bash init.sh ◆ Per project: php vendor/bin/homestead make
para o nosso site, basta atualizar o arquivo host local: #127.0.0.1 localhost #::1 localhost 127.0.0.1 homestead.app 127.0.0.1 meu-projeto.local Isto dirá ao computador que o hostname homestead.app está localizado no endereço IP 127.0.0.1 (Que hospeda a nossa VM).
MySQL e o Postgres já estão instalados com um usuário root. Isto facilita muito o acesso e a gerência destas bases através de um client (Navicat ou similar): MySQL: Host: 127.0.0.1 User: homestead Password: secret Port: 33060 Postgres: Host: 127.0.0.1 User: homestead Password: secret Port: 54320
fácil de criar variáveis de ambiente no servidor. Você pode usar isso para várias coisas como senhas, chaves de API e configuração global. variables: - key: APP_ENV value: local - key: API_KEY value: 123abc - key: API_SECRET value: minh@-s3cr3t $app_env = getenv('APP_ENV'); // returns "local" $api_key = getenv('API_KEY'); // returns "123abc" $api_secret = getenv('API_SECRET'); // returns "minh@-s3cr3t"