For provisioners I don't want to run more than once, I leave a "bookmark"
file behind.
For what it's worth, here's some boilerplate (I ripped out of my Lucee
installer):
#!/usr/bin/env bash
set -e
description="Lucee installation"
runfile_name="lucee_install"
while :
do
case $1 in
--provisioned-dir=*)
provisioned_dir=${1#*=} # Delete everything up till "="
shift
;;
# ...other option blocks
--) # End of all options
shift
break
;;
-*)
echo "WARN: Unknown option (ignored): $1" >&2
shift
;;
*) # no more options. Stop while loop
break
;;
esac
done
runfile="${provisioned_dir}/${runfile_name}"
if [ -f "${runfile}" ]; then
echo "${description}: Already run."
exit 0
fi
# do a bunch of stuff
touch "${runfile}" || true
I then call it with the following in my Vagrantfile:
# Install Lucee
config.vm.provision :shell, :path =>
"#{host_script_dir}/web/lucee_install.sh", :args => [
"--provisioned-dir=#{vm_provisioned_dir}",
"--lucee-installer-path-name=#{lucee_installer_path_name}",
"--lucee-installer-download-url=#{lucee_installer_download_url}",
"--lucee-password=#{password}",
"--lucee-user=#{railo_user}"
]
Where:
host_script_dir = "C:/www/myproj_vagrant/scripts"
vm_provisioned_dir = "/vagrant/temp/provisioned"
Then, I've got a trigger to get rid of the bookmarks upon destroy:
config.trigger.after :destroy, :stdout => true, :force => true do
info "Removing provisioned directory contents:
#{host_provisioned_dir}/*"
FileUtils.rm_rf Dir.glob("#{host_provisioned_dir}/*")
end
Where:
host_provisioned_dir = "C:/www/myproj/temp\provisioned"
Thanks,
Jamie
On Fri, Jun 5, 2015 at 12:24 PM, <[email protected]> wrote:
> Hello,
>
> I have these three Shell provisioners in my Vagrantfile.
> After 'vagrant up' the first time, I like to run just the second Shell
> provisioner script "script2.sh".
> I can only run the provision by type "vagrant provision --provision-with
> shell", which run all the shell scripts.
>
> guest.vm.provision "shell" do |sh|
> sh.path = "./script1.sh"
> end
>
> guest.vm.provision "shell" do |sh|
> sh.path = "./script2.sh"
> sh.args = "centos"
> end
>
> guest.vm.provision "shell" do |sh|
> sh.path = "./script3.sh"
> end
>
> Any ideas?
> Thanks
>
> --
> You received this message because you are subscribed to the Google Groups
> "Vagrant" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.