4 ms·
Indeed. Puppet was created in Ruby and thus requires it to function. Puppet is generally meant to be a replacement for configuration scripts. Essentially your
by druiid 13y ago
Indeed. Puppet was created in Ruby and thus requires it to function.
Puppet is generally meant to be a replacement for configuration scripts. Essentially your Puppet scripts define a 'state' that you want the server to be in, thus if you want a user account called 'bob' you'd do something like this:
user {'bob':
ensure => present,
gid => '0',
uid => '0',
password => '<my encrypted password>',
}
From this Puppet would do all the 'difficult' bits for you.
You mention that if you get paid to write Puppet scripts you wouldn't need to know how things work at the shell level. That is extremely far from the truth. You need a strong background and experience with shell commands, configuration layouts, shell/CLI methodology, etc. Without those you would quickly be lost both in terms of managing and dealing with Puppet and scripting in it.
Knowing Puppet is no replacement for Shell knowledge unless the extent of what you need to do with Puppet is understand you're using it to launch your Vagrant instances. Honestly there are things which to build out in Puppet would require extensive Ruby based functions and sometimes you really just need to fall back to using exec {} statements in Puppet (Meaning you're running shell commands from within Puppet). You can see some examples of this in the zookeeper module I built: https://github.com/justicel/puppet-zookeeper https://github.com/justicel/puppet-zookeeper
Feel free to message me with Puppet questions and really, if you're just using Shell scripts I highly, highly recommend moving toward configuration-management (even if it's not Puppet), unless you only have one or two servers to manage.
- gwu78 13y agoInformative response. Thank you for this. Perhaps my time has been well spent mastering the shell at the expense of not learning Ruby and Puppet. I have a need for keeping things small (too small for Ruby) so if I do need to use scripting languages other than sh for configuration, I'm planning to use Lua. Here's a question for you since you mentioned Vagrant: I'm interested in hosting that allows me to run my preferred bootloader that reliably boots my DomU kernels instead of the PyGrub hack that AWS uses. I can deploy my systems as Xen kernels, as filesystem images that have a Dom0 that can run my DomU kernels, whatever. I can also run limited purpose kernels in userspace so I am not necessarily restricted to Xen as a means of "virtualization". I want the AWS convenience of creating and launching an instance remotely rather than having to visit a datacenter. But I do not want anything to do with grub. All my configuration is in the DomU kernel's embedded filesystem. When I change configs I simply edit the kernel source and recompile. My kernels recompile very quickly. I don't use kernels provided by third parties. I'll probably have to build my own "cloud" to get things the way I want. Big itch; relentless scratching. Easy? No. But, so often that's how useful software comes into existance: because of someone personally finds the status quo inadequate.