Hello! I need to convert a chef cookbook to ansible as part of a proof-of-concept . . . anyone have a thoughts/suggestion about the best way to go about this? any pitfalls, etc. to avoid?
I’ve just been going through the cookbook and trying to translate 1:1, but the cookbook is full of spaghetti code and other chef-isms that don’t translate well . . . for example, this cookbook works for both linux and windows which - I think! - would need to be separated out into different playbooks in ansible . …
I’d recommend figuring out what the end result of the cookbook does, and then write it in ansible, rather than trying to read it and port it.
Chef code can get (no offense intended to Chef) programmatically complex, when too much Ruby is involved, and that can lead to frustration when Ansible usually has a preference about how things should be done (simply, but also idiomatically).
I’d find just one part of your systems to automate with ansible, and then grow into more and more as you go.
Ansible can definitely call multiple plays in the same playbook, so addressing Windows and Linux from one ansible-playbook run is quite possible.