I understand, but i think will be easier in the other way around.
The scripts you create should be idempotent, that is, sense they are already executed, or skip running twice for any check you do.
when you provision, if one script fail, my impression is the provision will fail, and the err will be displayed on the screen on a nice red color.
There is nothing wrong with this approach, as you can just 'vagrant provision' a 2nd time, and the script(s) should be smart enough to sense witch ones/parts did run and skip them.
I deploy multi node oracle rac clusters, and I need all the scripts to be run at least once, but in case of error, I would like to avoid a partition be blown away, or the 2nd disk to be formatted again, etc..
Then later on my test case, I add a 3rd or 4th node, and I can safely run vagrant up / vagrant provision and will just do the new nodes.
this require a little bit more effor on the script, but later it pays pretty soon.