Ela
Ela

Reputation: 373

How to run scripts automatically after doing vagrant ssh?

I am new to Vagrant but good in Docker.

In Vagrant I am aware of the fact that config.vm.provision :shell,path: "bootstrap.sh", run: 'always' in the Vagrantfile will provision vagrant box while doing vagrant up. With this, the vagrant box interactive console appears after the intended provisioning is done.

But I need to configure in such a way that, first the control goes in to vagrant box console and then the intended script is up and running. Because my requirement is to run a script automatically post vagrant up and not to run a bootstrapped script.

In analogy with Docker, my question can be seen as

what is the Vagrant equivalent for CMD in Dockerfile ?

Upvotes: 0

Views: 1797

Answers (1)

Frederic Henri
Frederic Henri

Reputation: 53703

You can look at vagrant triggers. You can run dedicated script/command after each specific vagrant command (up, destroy ...)

For example

Vagrant.configure("2") do |config|
  # Your existing Vagrant configuration
  ...
  
  # start apache on the guest after the guest starts
  config.trigger.after :up do |trigger|
    trigger.run_remote = {inline: "service apache2 start"}
  end

end

Upvotes: 1

Related Questions