Over the past couple of weeks we’ve been very busy preparing to upgrade Hypernode to the latest LTS version Ubuntu 16.04 Xenial. While for Hypernode we highly modify the Ubuntu base, upgrading to this newer version will have many advantages like newer releases of various packages. For Hypernode we build all important parts of the web stack ourselves, which means that for the major components there won’t be much to update since we’ve always run recent versions of all relevant software (PHP, NGINX, etc). But for tooling that we don’t maintain ourselves there will be some newer versions out of the box, which is great.
Upgrading to Xenial gave us the chance to automate some of our external software integration even further by building that infrastructure from scratch again. For example, now whenever Debian tags a new version for their PHP packaging we can automatically integration test freshly compiled builds with our patches all the way up to the Magento application level. This gives us even more control over the stability of Hypernode as a platform. By testing the entire stack we can be even more sure that new software we introduce to the ecosystem doesn’t get in the way of Magento.
To build a testing pipeline like this for Xenial we had to rebuild the hypernode-vagrant image from scratch as well. This release (in combination with vagrant-hypconfigmgmt (0.0.8)) makes that Ubuntu 16.04 image the default for new checkouts of hypernode-vagrant, which means that you can already start testing with a Xenial Hypernode development environment right now.
The vagrant up
dialogue now prompts for Ubuntu version if no local.yml
is configured. If you already have a local.yml without an ubuntu_version
defined your project will be unaffected until your remove the local.yml file and re-run vagrant up
to trigger the prompt or manually add ubuntu_version: xenial
to the top level of your local.yml
like so:
~/code/projects/hypernode-vagrant$ cat local.yml
---
fs:
folders:
magento2:
host: data/web/magento2
guest: "/data/web/magento2"
nginx:
host: data/web/nginx/
guest: "/data/web/nginx/"
type: virtualbox
disabled_folders:
magento1:
host: data/web/public
guest: "/data/web/public"
hostmanager:
extra-aliases:
- my-custom-store-url1.local
- my-custom-store-url2.local
default_domain: hypernode.local
magento:
version: 2
php:
version: 7.0
varnish:
state: false
firewall:
state: false
cgroup:
state: false
xdebug:
state: false
vagrant:
box: hypernode_xenial
box_url: http://vagrant.hypernode.com/customer/xenial/catalog.json
ubuntu_version: xenial
New clones of hypernode-vagrant
will assume the Xenial image as the configured image unless specified otherwise.
~/code/projects/hypernode-vagrant$ vagrant up
Bringing machine 'hypernode' up with 'virtualbox' provider...
...
hypernode: What Ubuntu version do you want to use? Options: xenial, precise (deprecated) [default xenial]:
==> hypernode: Will use the Xenial version. This is the default.
==> hypernode: Your hypernode-vagrant is now configured. Please run "vagrant up" again.
If you want to keep using the Precise image either answer precise
to the dialogue, or add ubuntu_version: precise
to local.yml instead. Leaving ubuntu_version
out of the local.yml
will also fall back to Precise at this point in time (for backwards compatibility with previously generated local.yml
configurations). Additionally the hypernode-vagrant-runner tool now supports the --xenial
flag. If you encounter any problems please let us know.
Also, all production Hypernodes now have mercurial installed due to popular request.