Os recursos provisionamento do Vagrant devem ser perfeitos para isso. Há um monte de maneiras que você poderia fazer, mas o mais simples é provavelmente pegar o script do Upstart e torná-lo um script de shell simples. Em seguida, coloque um desses blocos no seu Vagrantfile
:
-
Usando um script "inline". O Vagrant copiará o conteúdo do
Vagrantfile
para um script no diretório/tmp
e o executará.$script = <<<SCRIPT // The contents of your script go here SCRIPT config.vm.provision "shell", inline: $script
Note que o script aqui está dentro de um "heredoc" , o que significa que você precisa ser Tenha cuidado para garantir que o token
SCRIPT
que termina o heredoc esteja no lugar certo - ou seja, em uma linha sozinho, sem espaços em branco extras. (O link sobre heredoc acima mostra uma maneira de permitir espaços em branco, mas você precisa ser cuidadoso de qualquer maneira.) -
Apontando para um arquivo de script . O Vagrant irá copiar este arquivo para o diretório
/tmp
e executá-lo.config.vm.provision "shell", path: "setup.sh"
Observe que o caminho aqui é relativo ao local
Vagrantfile
. No entanto , o arquivo não é executado a partir daquele local, então se você precisar que o arquivo esteja em um determinado diretório, você deve seguir o método # 3. -
Usando um script "in-line" que aponta para um arquivo de script. Dessa forma, você pode executar um script em um local escolhido (no exemplo abaixo, em
/vagrant
depois de ter feito pré-requisitos comochmod
ou configuração de variáveis de ambiente.$script = <<SCRIPT chmod +x /vagrant/setup.sh cd /vagrant ./setup.sh SCRIPT config.vm.provision "shell", inline: $script
Você também pode usar um método de provisionamento que funcione por meio de um sistema "real" de implantação e provisionamento, mas dependendo de seus requisitos, que podem ser exagerados.