Looking at how you use this thing, I'm really not sure it would save me any time versus using Ansible.
Ansible is also declarative (in principle) while shell scripts are imperative, which is a bit of mind bender. Then, when you debug, you have to understand that Ansible is implemented by imperative code.
Bringing people up to speed on in-house tools can be a major hassle. Never mind the fact that popular tools like Ansible are battle-tested and most likely has more documentations and tutorials.
Ansible has some undisputed advantages (e.g. idempotence) and if I had to recommend Ansible vs my approach, I'd always recommend Ansible. But for my personal needs (single-server rails apps), I prefer shell scripts.
Which for my FreeBSD machines I have to run some bootstrap code that installs Python on it before I can run ansible against it.
Would be nice if salt-ssh or ansible allowed me to have some bootstrap code that ran if Python didn't exist on the target machine.
Given you generally have to know what you're trying to achieve in shell anyway, the shell versions are simpler, if less robust. For example,
sudo apt update && sudo apt install nginx
is easier than become: True
tasks:
- name: install nginx for great justice
apt:
name: nginx
update_cache: yes
state: latest
There are also some edge cases where shell is better than ansible; some parameters are missing from some modules, meaning shell is more flexible; or if you want to read a command's STDOUT, it's a pain in Ansible.