Absolutely not, chef will run (converge) resources in the order specified in the recipe (minus the compile vs converge times, but that’s another story and there’s a lot of pages on it), and the recipes in the order specified in the run list. You may get a more complex ‘expanded runlist’ with roles runlist and all
include_recipe calls (search ‘wrapper cookbook’ for clues here)
What does really change between a bash script and chef is that Chef is meant to be run in a regular schedule and enforce the state described, the main difference is here, you describe a state more than a path to a desired state.
Because of this, you should never assume the state anything will be in when chef run, the goal is to end the run in the desired state, whatever was the starting state. This involve doing things in an idempotent manner, do something only if necessary, and if there’s nothing to do, don’t do anything (or for worst cases do a no-op thing, like executing something which will have no effect if the configuration is already ok, but will correct it if not)
I’ve the feeling you should take a day or two to go through https://learn.chef.io to get the hands on with this principal change and how to tackle things with Chef. As a rule of thumb, using
script (bash or else) or
execute resources is usually a sign you’re doing something wrong.
there’s side cases really precise where it’s unavoidable to use bash/script or execute, but 90% of time you can take advantage of existing cookbooks (for their LWRP/custom resources) or even base chef resources.