After years of using Terraform and Puppet, I seriously consider using plain bash to handle infrastructure as code on a future project, which deploys to multiple cloud and non-cloud vendors.<p>There is some beauty to creating a standalone idempotent and well-tested bash scripts that are simple to share and version using something like import.sh<p>Given the maturity of tools such as shellcheck, simple composable tools such as age (for encryption), machma (parallel execution), Make for the dependency graph and the assistance provided by Github Copilot to developers intimidated by bash syntax, what would be the drawbacks of going with this approach?<p>What other simple tools like import.sh would you recommend for building IaaC pipelines?
Curious about the cache directory tree structure.<p>Does this play well with VCS refs, for version pinning?<p>Does this play well with local forks, for testing and experimentation?<p>Something like the pre go mod system could be helpful for basic shell dependency management.<p>Also, this should really support vendoring, for users who prefer to keep a copy of the dependencies in full in their project's VCS.