Falando sobre o Vagrant da Bye Bye e o ambiente de desenvolvimento de construção repetida

Cada vez que um novo colega entra em um trabalho, ele tem que configurar um monte de ambientes em seu computador , e leva um monte de esforços; cada vez que um teste de desenvolvimento tem de reconfigurar o ambiente de desenvolvimento, construção manual, os passos são muito complicado e fácil cometer erros .

Quando o Grande Deus está presente, o Grande Deus constrói, e o Grande Deus não está , então ele se senta e suspira com as mãos . Por isso nasceu o VVVV Vagrant ! ! !

Ferramenta de orquestração de máquina virtual Vagrant

image.png

Ele , baseado em máquinas virtuais , pode criar um isolamento físico perfeito !

Ele constrói -o uma vez , utiliza -lo em todos os lugares , a cópia de um espelho pode fazer novos funcionários imediatamente colocadas em desenvolvimento , é o patrão 's favorito !

Ele só precisa de um texto e algumas linhas para controlar a configuração da rede e construir clusters !

O bom suporte de terceiros também o torna um peixe na água, suporta scripts de shell , suporta implantação automática de ansible e assim por diante. Ele é nosso protagonista  Vagrant  .

Desta vez, tomaremos a construção de um ambiente de desenvolvimento Python como exemplo para aproveitar a conveniência que o vagrant nos traz.

instalação

Comando de duas linhas do ambiente Mac

brew cask install virtualbox
brew cask install vagrant

Baixe dois pacotes de instalação em outros ambientes para obter o
pacote vagrant https://www.vagrantup.com/downloads.html
virtualbox https://www.virtualbox.org/wiki/Downloads

Verifique se a instalação foi bem sucedida

$ vagrant version
Installed Version: 2.2.5
Latest Version: 2.2.5

You're running an up-to-date version of Vagrant!

Inicialize o ambiente

O primeiro método para baixar o espelho

vagrant box add --provider virtualbox centos/7

O que --provider virtualboxrepresenta para verificar se é o
segundo método de download oficialmente fornecido pela virtualbox

vagrant box add  --name centos/7  --provider virtualbox  /Users/pzqu/Documents/code/test/vbox/centos_virtualbox.box

Aqui /Users/pzqu/Documents/code/test/vboxestá meu diretório de download selecionado

Uma série de documentos de comando de operação para box pode ser encontrada aqui https://www.vagrantup.com/docs/cli/box.html.

inicialização

cd /Users/pzqu/Documents/code/test/vbox
vagrant init centos/7

Neste momento, um Vagrantfilearquivo será gerado no diretório , este arquivo é a chave para a configuração automática

https://www.vagrantup.com/docs/vagrantfile/

Dê uma olhada nos comentários dentro e provavelmente você saberá como escrevê-lo. É principalmente a sintaxe do ruby. Você pode montar um diretório local em uma máquina virtual, configurar a rede (acesso à rede pública, apenas acesso à máquina virtual ), etc.

Além de configurar algumas máquinas virtuais, você também pode instalar software automaticamente e ajustar a configuração por meio de vários Provisioners.
Consulte https://www.vagrantup.com/docs/provisioning/ para obter detalhes

Minha configuração é relativamente simples, usando o sistema centos / 7, basta montar o /data/codediretório do projeto do código nativo no diretório.

Após iniciar a máquina virtual, instale o ambiente de desenvolvimento diretamente na máquina virtual e, finalmente, marque-o como um espelho.

A configuração é a seguinte

Vagrant.configure("2"do |config|
  config.vm.box = "centos/7"
  config.vm.synced_folder "/Users/pzqu/Documents/code/gerrit""/data/code"
end

Um erro é relatado ao montar o diretório de arquivos

Instale este plugin

vagrant plugin install vagrant-vbguest

Crie um ambiente de desenvolvimento

No Vagrantfilediretório, use para vagrant upiniciar a máquina virtual e, em
seguida, use para vagrant sshfazer login na máquina virtual

Em seguida, execute o seguinte comando para instalar automaticamente o ambiente Python que queremos, observe requirements.txtque o pythonprojeto é gerado automaticamente

pip install -r requirements.txt

Suplemento: requirementsMétodo de geração automática de arquivos

pip freeze > requirements.txt

Configurar o pycharm

Abra a configuração, adicione o plugin

VagrantAmbiente de configuração

imagem

Especifique o caminho do Python na máquina virtual, a primeira etapa é selecionar mostrar todos

imagem

Escolha Vagrantselecionar o diretório espelho e o pythoncaminho na máquina virtual

imagem

image.png

Configure o método de inicialização. Aqui eu gero swagger, principalmente o Python interpretercaminho python e o caminho do Working direftoryprojeto (observe que o caminho é mapeado na máquina virtual, que configurei aqui na seção anterior /data/code. Iremos modificá-lo automaticamente quando desenvolvermos localmente)

imagem

corre

imagem

Exportar arquivo de imagem de caixa para outros usarem

1. Execute o comando vboxmanage list vms, você pode ver a lista de máquinas virtuais em nosso vagrant (minha máquina virtual tem apenas uma caixa, "vbox_default_1563884434349_3918".)

$ vboxmanage list vms
"vbox_default_1563884434349_3918" {59864f0b-9731-4839-baa2-95d9a6aab731}
  1. Para exportar a imagem da caixa
    , desligue e exporte. pacote vagrant é o comando de embalagem para exportar caixa

vagrant package --base vbox_default_1563884434349_3918 --output centos7_hanah_environment.box

--base Em nome do local 
vbox_default_1563884434349_3918é o nome da caixa que deseja exportar
--outputEm nome da exportação , o nome  da
centos7_hanah_environment.box caixa exportada  é centos7_hanah_environment.boxsalvo no diretório atual

  1. Em seguida, você verá o seguinte, ou seja, a exportação foi bem-sucedida

$ vagrant package --base vbox_default_1563884434349_3918 --output centos7_hanah_environment.box
==> vbox_default_1563884434349_3918: Exporting VM...
==> vbox_default_1563884434349_3918: Compressing package to: /Users/pzqu/Documents/code/test/vbox/centos7_hanah_environment.box

O trabalho de beber uma mamadeira de leite está completo. Depende do tamanho da sua caixa. Minha caixa tem cerca de 900M.
Envie-o diretamente para o seu amigo e você obterá um ambiente de desenvolvimento / teste idêntico ao seu com um comando.

$ vagrant box add centos7_hanah_environment ./centos7_hanah_environment.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos7_hanah_environment' (v0) for provider:
    box: Unpacking necessary files from: file:///Users/pzqu/Documents/code/test/vbox/centos7_hanah_environment.box
==> box: Successfully added box 'centos7_hanah_environment' (v0) for 'virtualbox'!


vagrant box add alias box name

Outras ideias

Parece que o vagrant se sobrepõe muito ao docker, por que não usar o docker para fazer isso diretamente? Não só pode iniciar um ambiente mais adequado em um segundo, mas também é leve e puro.

Pesando os prós e os contras, o vagrant em si não é uma tecnologia de virtualização. Para executá-lo, você deve instalar uma plataforma de virtualização como o virtualbox. É mais como um programa de plug-in e uma ferramenta de orquestração para máquinas virtuais; é voltado para o gerenciamento de máquinas virtuais em lote, que geralmente é usado Crie um ambiente de desenvolvimento instantaneamente.

E o docker em si é uma tecnologia de virtualização, que é construída rapidamente e não ocupa recursos, é voltada para a orquestração de aplicativos e é freqüentemente usada para unificar o ambiente de desenvolvimento e o ambiente de produção.

Afinal, não é tanto vagrant e docker, é a diferença entre plataforma de virtualização e container.

imagem

O Docker ainda depende do kernel do sistema. Se o kernel for diferente, ele precisa ser reconstruído.

Quando tivermos tempo, vamos falar sobre o ambiente de desenvolvimento criado pelo docker e conversaremos novamente quando tivermos a oportunidadeDocker Machine


Acho que você gosta

Origin blog.51cto.com/15076235/2608323
Recomendado
Clasificación