« Previous 1 2
Installing applications in OpenStack with Murano
Ready-Made
Packetize It Yourself
Readers might now be wondering in what marvelous way the components' dependencies or the parameters to be configured come into play to create a working environment. The installation sequence of the applications involved also plays an important role in many cases. The magic is hidden in the Murano packages for the applications involved, which contain the recipes with all their ingredients, including cross-references to other instructions.
As a first step, you can download ready-made packages from the community catalog [12] and integrate them into your own OpenStack installation. Preparing your own package, of course, gives you an in-depth look behind the scenes. In principle, the required procedure is documented [13]-[15], but the documentation is not easy to read. The instructions contain several cross-references, meaning you often need to switch back and forth. You also need to learn the Murano programming language (MuranoPL) [16], which comprises the markup languages YAML [17] and YAQL [18].
There are two approaches to building packages. The variant that is initially easier relies on a Heat template as a base [19]. Entering
murano package-create --template </path/to/Heat-template>
generates a ZIP archive that can be integrated using
murano package-import </path/to/ZIP-file>
The users' control methods are pretty limited here. Only a few additional options are available for the package-create
subcommand and the configurations in the Heat template itself.
Putting together a Murano package manually might require more overhead, but manual packages can also be easily customized to suit your own needs. The essential components are a general description of the application and the installation instructions. The latter contains references to scripts to be used, MuranoPL classes, and possibly user dialogs for querying configuration settings. The description is made in the previously mentioned YAML/YAQL format. A specific directory structure is used for storing the various files. I posted a simple example on my GitHub page [20].
This Side of the Horizon and Beyond
Murano currently has some very useful features. The standout feature is the ability to install complete applications including dependencies and additional definitions at the touch of a button. In one fell swoop, OpenStack gives administrators more than just an infrastructure in which users still have much work to complete before meaningful business becomes possible.
Murano takes this a step further: From now on, Murano administrators can define application actions. Using these actions, administrators can implement features like automatic scaling, high availability, or backups [21].
A quick look at the roadmap for the next version [2] shows that the project still has plenty of potential for improvement. The only bad news is that Mirantis is the only highly visible supporter thus far. More cooperation from other members of the OpenStack family would be very desirable here. Murano can therefore be viewed as a big step in the right direction, conveniently linking applications and infrastructure.
Infos
- Murano: http://wiki.openstack.org/wiki/Murano
- Murano roadmap: http://wiki.openstack.org/wiki/Murano/Roadmap
- Mirantis: http://www.mirantis.com
- Django: http://www.djangoproject.com
- Formtools: http://readthedocs.org/projects/django-formtools/
- Murano installation: http://murano.readthedocs.org/en/latest/install/
- Python Murano client: http://git.openstack.org/cgit/openstack/python-muranoclient
- Glance images: http://apps.openstack.org/#tab=glance-images
- UnifiedAgent: http://wiki.openstack.org/wiki/Murano/UnifiedAgent
- Murano agent: http://github.com/openstack/murano-agent
- Glance images: http://apps.openstack.org/#tab=glance-images
- Murano apps: http://apps.openstack.org/#tab=murano-apps
- Murano packages: http://murano.readthedocs.org/en/latest/draft/appdev-guide/murano_packages.html
- App package: http://murano.readthedocs.org/en/latest/articles/app_pkg.html
- Murano Heat support: http://murano.readthedocs.org/en/latest/articles/heat_support.html
- MuranoPL: http://murano.readthedocs.org/en/latest/draft/appdev-guide/murano_pl.html
- YAML: http://yaml.org
- YAQL: https://github.com/openstack/yaql
- Hot Guide: http://docs.openstack.org/developer/heat/template_guide/hot_guide.html
- Murano dummy app: http://github.com/useidel/murano-dummy-app
- Murano video: https://www.youtube.com/watch?v=OvPpJd0EOFw
« Previous 1 2
Buy this article as PDF
(incl. VAT)