Comtrya is a promising project, I have faced similar problem in the past and mostly used shell scripts or Ansible - and always wonder if a tool can be built to have Terraform like semantics.
In the cloud world I like Terraform, mainly because one can add, update or destroy resources declaratively. I was wondering if same concept can be applied to this project - for OS provisioning - that would mean, the project will need to have a 'state' to reconcile configuration files with current state of the OS to determine whether to add, update or destory (remove) existing packages, files, and anything to manage OS.
The workflow would be very similar to Terraform, for example:
comtrya plan (this could act as dry run)
comtrya apply
An alternative I could think is building a custom Terraform provider which does local OS provisioning. I thought to share the overall idea, not sure if this aligns with overall goal of the project - but I'm looking forward to hearing your thoughts, what do you think?