I've recently noticed that our MySQL entity fails to install on many
flavours of Red Hat due to missing perl dependencies [1]. While it's a
straightforward matter to hard-code additional prerequisites in the SSH
driver, I do wonder about playing whack-a-mole with dependencies in this
way. Package managers make this a solved problem.
In the past we've sought to preserve filesystem isolation between
entities and have avoided installing global packages [2]. Given the
trend towards containerisation (specifically isolated filesystem
namespaces) is this still a primary concern?
What does the community think? Should we embrace package managers and
resort to alternative (system-provided) mechanisms for isolation?
Pros:
* dependency management (obviously)
* install in locations familiar to sysadmins
* beautiful simple YAML entities
* codifies certain best practices [3]
Cons:
* Windows will need special treatment (meh, what's new?)
* Vagrant or boot2docker may be needed in place of native localhost
deployments
* need to rethink Brooklyn optimisations for avoiding repeat downloads
[1] For v5.5.x and 5.6.x, several admin utilities are provided as perl
scripts.
Specifically, mysql_install_db is required during customise.
[2] Except, of course, where we do, e.g. CouchbaseNode, RiakNode,
BashCommands.installXYZ()
[3] "The recommended way to install MySQL on RPM-based Linux
distributions is by using the RPM packages provided by Oracle."
https://dev.mysql.com/doc/refman/5.7/en/linux-installation-rpm.html
A.
--
Alasdair Hodge
Principal Engineer,
Cloudsoft Corporation