Last week we briefly discussed the features of Murano V0.3 and promised to show you a demo of deploying Linux applications. As we work to bring you even more features in the upcoming V0.4, please take a look at the demo at the end of this overview.
In Murano 0.2, a thin line separated Murano from the ability to deploy Linux applications: the Murano Agent. This component was created especially for Windows using the .NET Framework as the platform and PowerShell as the execution engine. But before simply rewriting the Murano Agent on something that has a native support in Linux OS, we stopped for a moment and revised our Agent architecture. There are several key differences:
- The new agent can execute plans targeting different deployment platforms.
- The agent supports non-linear execution of scripts and functions making up the execution plan. The agent can control the order of execution using conditional branching and loops. It also enables execution plans to pass data between scripts and functions (such as making the output of function 1 go to the input of function 2).
As a result of the revisions, we created the new Murano Agent (it is available on the Wiki). An Agent can be implemented for different platforms and will work with Murano at the same time, as long as the implementation complies with the specification.
After revising the architecture, we created a Linux agent from scratch using Python and the same OpenStack common code as the other Murano components. We also updated our Windows Agent to the new specification. So, currently we use separate agents for Windows and Linux, but our plan is to use only a Python-based agent for both operating systems. Currently, we support sh as the execution engine so the user can have full power and create provisioning scripts.
We’ve added two new Linux-based applications as reference implementations: Telnet and Apache Webserver. Our demo showcases one of these applications: Telnet Server.