Hi all,
I'd like to use the omnibus installer to install chef rather than rely on the the system ruby + gems / package repos - I'm happy to fork and do the work, just wanted to canvas some opinions about the way to go in the hope could merge this back in :)
Deploy Targets1) deploy_chef updated to be a bit more flexible e.g
fix node:MYNODE deploy_chef:installer=omnibus,version=XXX
installer would then take one of: gems, package, omnibus.
2) new deploy_chef_omnibus target, so the previous behaviour stays as is for compatibility's sake.
Omnibus InstallerI'm not a big fan of the trend of echoing shell scripts from teh interwebz to an elevated privilege bash and even less a fan of the fact that the omnibus install
script does no checksum checks before installing a package.
I'm thinking the way to go at the moment would be to reimplement the shell scripts platform detection in python, then use opscode metadata api to get the url for the relevant package along with some checksums we can check against before we think about installing.
e.g
https://www.opscode.com/chef/metadata?p=el&pv=6&m=x86_64&v=11.4.4 gives us:
url
https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.4.4-1.el6.x86_64.rpm
md5 2b3405d6919320a6340760158e919712
sha256 2f28fedee04f6e5b315fb12ef98c944c79c611b44e1a92b1e5858ae4d7057c14
Could then check the downloaded file using hashlib (assuming our system python >= python 2.5, otherwise could fall back to trying to find a md5sum binary or an 'are you sure' prompt)
Let me know what you think,
Ian.