Como usar a variável de ambiente local com o Vagrant?

Valter Silva

Estou passando minhas variáveis ​​de ambiente local assim:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |de|

  de.vm.box = 'ubuntu/trusty64'
  de.vm.hostname = 'virtual_machine'
  de.vm.network 'public_network', bridge:ENV['NETWORK_INTERFACE'], ip:'192.168.2.170'

  de.vm.provider "virtualbox" do |v|
    v.memory = 4096
    v.cpus = 2
  end

  de.vm.synced_folder '.', '/vagrant', disabled:true
  de.vm.synced_folder '../../synced/shared/', '/shared/'
  de.vm.synced_folder '../../synced/devops/', '/devops/'

  install = ENV['DEVOPS_HOME'] + '/vagrant/lib/install'
  de.vm.provision 'shell', path: install + '/basic'
  de.vm.provision 'shell', path: install + '/java8', args: ['automatic']
  de.vm.provision 'shell', path: install + '/aws_cli', args: [ENV['S3_AWS_ACCESS_KEY_ID'],ENV['S3_AWS_SECRET_ACCESS_KEY']]

  setup = ENV['DEVOPS_HOME'] + '/vagrant/lib/setup'
  de.vm.provision 'shell', path: setup + '/hosts'

  sys = ENV['DEVOPS_HOME'] + '/vagrant/lib/system'
  de.vm.provision 'shell', path: sys + '/add_user', args: ['virtual-machine',ENV['VIRTUAL_MACHINE_PASSWORD']]

  steps = ENV['DEVOPS_HOME'] + '/vagrant/server/virtual_machine/steps'
  de.vm.provision 'shell', path: steps + '/install_rserve'

end

Obviamente, para isso preciso definir essa variável no meu ~/.profilearquivo. Mas me pergunto se há outra maneira de fazer isso. Onde eu não preciso informar isso via Vagrantfile, não parece bom.

Frederic Henri

uma maneira que consigo ter dependência de configurações é usar um arquivo externo (eu uso yaml, mas qualquer arquivo funcionaria como json .... Vagrantfile é um script ruby, contanto que você possa lê-lo facilmente usando ruby, está tudo bem )

Um exemplo do meu Vagrantfile usando uma dependência Yaml

:# -*- mode: ruby -*-
# vi: set ft=ruby :

require 'yaml'
settings = YAML.load_file 'settings/common.yaml'

Vagrant.configure("2") do |config|

  config.vm.box = settings['host_box'] || "pws/centos65"
  config.ssh.username = settings['ssh_user']

  config.vm.define "db" do |db|
    db.vm.hostname = settings['db_hostname']
    db.vm.network "private_network", ip: settings['host_db_address']
  end

...

end

o arquivo settings/common.yamlseria definido como

--- 
host_db_address:  "192.168.90.51" 
host_app_address: "192.168.90.52"

db_hostname:      "local.db"

ssh_user:         "pws"

Como disse no comentário, a principal vantagem que encontrei ao usar essa técnica é na hora de distribuir box. Minha equipe iria clonar o projeto, tem que preencher as configurações (para dependência de senha e assim por diante) e pronto para ir.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como usar a variável de ambiente local com o Vagrant?

Configurando a variável de ambiente php no Windows com o vagrant

como usar a variável de ambiente com spring boot quando o valor tem um símbolo especial como ':'?

Como mudar o nome de uma variável de ambiente com uma variável diferente?

É possível usar uma variável de ambiente como verificação de integridade do docker

Como configurar o ambiente de desenvolvimento local para Rails ao usar Devise Omniauth com GitHub?

Como usar uma variável de ambiente como caminho de prefixo ao configurar o NGINX?

Como usar uma variável de ambiente ASP.NET Core em testes com Visual Studio

Como você pode usar uma variável de ambiente com um pacote npm

Como usar condicionalmente uma variável de ambiente de desenvolvimento ou produção

Como usar o parâmetro de variável de ambiente na análise jq

Como usar o valor da variável de ambiente no arquivo de projeto?

Como posso usar a variável de ambiente no arquivo de configuração do hibernate?

Local adicional de configuração do Spring como variável de ambiente em docker-compose

Como usar uma variável de ambiente para comprimento em uma substituição de string variável?

Como usar uma variável de ambiente para comprimento em uma substituição de string variável?

Como combinar a atribuição de variável compatível com shell do ambiente por regex

Como usar o 'RAD Studio Command Prompt' com variáveis de ambiente?

Como usar o build create-react-app com variáveis de ambiente customizadas?

Como faço para usar a variável de ambiente Docker na matriz ENTRYPOINT?

Como faço para usar putenv () para atualizar a variável de ambiente existente?

como podemos usar a variável de ambiente na versão angular> = 2

Como usar a variável de ambiente jenkins na instrução if Jenkinsfile

como usar a variável de ambiente no cliente e servidor desde o início

Como usar a condição 'ou' ou 'está definido' para passar a variável de ambiente no modelo Ansible

Como definir uma variável de ambiente para apontar para um local e como definir o caminho de uma variável de ambiente no UBUNTU?

Como formatar um ponto flutuante para exibição com base em variáveis de ambiente local?

Inicie o sprinboot no minkube com o url de contexto personalizado como variável de ambiente

Como usar a variável de sessão com NodeJs?

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    UITextView não está exibindo texto longo

  3. 3

    Dependência circular de diálogo personalizado

  4. 4

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  5. 5

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  6. 6

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  7. 7

    Setas rotuladas horizontais apontando para uma linha vertical

  8. 8

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  9. 9

    Definir um clipe em uma trama nascida no mar

  10. 10

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  11. 11

    Como dinamizar um Dataframe do pandas em Python?

  12. 12

    regex para destacar novos caracteres de linha no início e no fim

  13. 13

    Why isn't my C# .Net Core Rest API route finding my method?

  14. 14

    Como obter a entrada de trás de diálogo em treeview pyqt5 python 3

  15. 15

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  16. 16

    How to create dynamic navigation menu select from database using Codeigniter?

  17. 17

    Como recuperar parâmetros de entrada usando C #?

  18. 18

    Changing long, lat values of Polygon coordinates in python

  19. 19

    Livros sobre criptografia do muito básico ao muito avançado

  20. 20

    Método \ "POST \" não permitido no framework Django rest com ações extras & ModelViewset

  21. 21

    Pesquisa classificada, conte números abaixo do valor desejado

quentelabel

Arquivo