|
|
|
|
|
by moe
6193 days ago
|
|
Try getting a moderately complex shell script to run across different platforms. I dare you. That's a broken premise. Your deployment script doesn't need (and should not) be complex by any metric. Your dependencies are ssh, tar, mv, cp, rsync/git/svn and a very small number of other utilities which are easily tested or wrapped for compatibility.
If you think you need more then you're likely doing it wrong (e.g. trying to reinvent version control and package management at the same time). and they vary from platform to platform That's the other broken premise. You don't "build once, run anywhere". You build platform specific modules and only trigger them centrally. Puppet shows the way. To me it seems like you never actually used shell script for anything serious. Hm, let me think, I've created and managed a deployment of >20 racks. But yeah, nothing serious. |
|
I kind of agree, but complexity is a relative concept. mv and cp doesn't exist on Windows. And you really don't have to use exotic commands to run into compatibility issues between bsd and linux. It's not long ago I had an error reported due to the fact that readlink doesn't work equal on linux and bsd. I don't think readlink is in the "too complicated" basket.
> That's the other broken premise. You don't "build once, run anywhere".
Why would I prefer to write three different deployment scripts, if I could write one? Am I missing something here?
> Puppet shows the way.
I don't know Puppet. I'll have a look at it.