Live data from Hacker News

Show HN: Welder – set up your Linux server with plain shell scripts

github.com

1–10 of 71 posts

Re: Show HN: Welder – set up your Linux server with plain shell scripts

#3

I was about to make the point about Ansible but I guess you've already made it in the README.

Is Ansible really too much though, as the author suggests in README for simple tasks? If all you want is basic "SSH to a server, install some packages" type behavior, I'd still make the argument Ansible is simpler than this. Ansible isn't like Chef/other competitors where you have to bootstrap or install a client on the target machine. IIRC it only really needs SSH access and a Python installation present on the target machine, which is basically most Linux distros.

Looking at how you use this thing, I'm really not sure it would save me any time versus using Ansible.

Re: Show HN: Welder – set up your Linux server with plain shell scripts

#5
post #3

I was about to make the point about Ansible but I guess you've already made it in the README.

Is Ansible really too much though, as the author suggests in README for simple tasks? If all you want is basic "SSH to a server, install some packages" type behavior, I'd still make the argument Ansible is simpler than this. Ansible isn't like Chef/other competitors where you have to bootstrap or install a client on the target machine. IIRC it only really needs SSH access and a Python installation present on the targ…

There's also a learning curve case to be made against Ansible: if you've spent years polishing your Bash and coreutils one liners, you start over at zero when switching to 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.

Re: Show HN: Welder – set up your Linux server with plain shell scripts

#6
I came from setup shell scripts (especially running in the postinstall step of debian-installer) to Ansible, and I think the big win with Ansible is at least the ideal of idempotency.

That's a lot harder to achieve with plain shell scripts, unless you're pretty disciplined about only performing mutations to your system that are themselves idempotent (like a package install).

Re: Show HN: Welder – set up your Linux server with plain shell scripts

#7
post #3

I was about to make the point about Ansible but I guess you've already made it in the README.

Is Ansible really too much though, as the author suggests in README for simple tasks? If all you want is basic "SSH to a server, install some packages" type behavior, I'd still make the argument Ansible is simpler than this. Ansible isn't like Chef/other competitors where you have to bootstrap or install a client on the target machine. IIRC it only really needs SSH access and a Python installation present on the targ…

Author here. It's just a matter of personal preference. If you're proficient with Ansible then I'm sure you can achieve the same task even quicker. But to me, shell scripts are a more natural & faster way to get going for single-server setups and I always have a hard time with Ansible yaml syntax.

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.

Re: Show HN: Welder – set up your Linux server with plain shell scripts

#8

I came from setup shell scripts (especially running in the postinstall step of debian-installer) to Ansible, and I think the big win with Ansible is at least the ideal of idempotency. That's a lot harder to achieve with plain shell scripts, unless you're pretty disciplined about only performing mutations to your system that are themselves idempotent (like a package install).

the ideal of idempotency.

Indeed. That's why I use Saltstack. I can do all I use Salt for without Salt. Except Idempotency

Re: Show HN: Welder – set up your Linux server with plain shell scripts

#10

I came from setup shell scripts (especially running in the postinstall step of debian-installer) to Ansible, and I think the big win with Ansible is at least the ideal of idempotency. That's a lot harder to achieve with plain shell scripts, unless you're pretty disciplined about only performing mutations to your system that are themselves idempotent (like a package install).

Stupid question, but why are Ansible playbooks supposed to be "more idempotent" than plain shell scripts?

Due to taking over a project I had to deep dive into it pretty quickly and to me it feels like shell in yaml syntax.

Post reply on HN