This document provides an overview of OpenStack Murano, an application catalog service for OpenStack. It discusses why Murano is used, what Murano is, the Murano architecture including key components, how to use Murano through different personas like end users and application providers, and how to install, configure, design application catalogs, and troubleshoot Murano. The document aims to explain all aspects of working with the Murano application catalog service on OpenStack.
The just released Murano V0.3 adds several features and improvements, of which the ability to deploy Linux applications is a major and highly anticipated feature.
Running Dockerized services across several cloud providersKontena, Inc.
Running applications and services across several cloud providers and/or data centers can bring many benefits for organisations. Actually, in some cases it can even be a mandatory requirement. Making your application stack compliant with multiple different cloud providers can be a bit problematic as all the cloud providers have slight differences for example in networking configurations. And to make things even more difficult you should have a way to secure the intra-services’ communications between many cloud providers. In practice this means cumbersome network configurations with VPN and other networking security solutions. Luckily containers and modern (container) overlay networks can solve the complexity for you.
This session was presented at Kontena meetup in Helsinki and in Leonidas Afterwork in Tampere on January 2017.
The just released Murano V0.3 adds several features and improvements, of which the ability to deploy Linux applications is a major and highly anticipated feature.
Running Dockerized services across several cloud providersKontena, Inc.
Running applications and services across several cloud providers and/or data centers can bring many benefits for organisations. Actually, in some cases it can even be a mandatory requirement. Making your application stack compliant with multiple different cloud providers can be a bit problematic as all the cloud providers have slight differences for example in networking configurations. And to make things even more difficult you should have a way to secure the intra-services’ communications between many cloud providers. In practice this means cumbersome network configurations with VPN and other networking security solutions. Luckily containers and modern (container) overlay networks can solve the complexity for you.
This session was presented at Kontena meetup in Helsinki and in Leonidas Afterwork in Tampere on January 2017.
OpenStack Explained: Learn OpenStack architecture and the secret of a success...Giuseppe Paterno'
OpenStack can help your business in cutting costs and have a faster time to market. A lot of people are looking at OpenStack as an alternative to VMware and most of the vendors are trying to let you think that visualization is cloud. While Cloud implies a virtualized environment, virtualization is not a cloud.
This ebook will go through the concept of Cloud and help you understand the architecture of OpenStack and its benefits. It also explores DevOps and reveal the "secret ingredient" to have a successful cloud project.
This ebook was created to raise funds for the Nepalese population after the Earthquake in 2015.
Build cloud like Rackspace with OpenStack AnsibleJirayut Nimsaeng
Build cloud like Rackspace with OpenStack Ansible Workshop in 2nd Cloud OpenStack-Container Conference and Workshop 2016 at Grand Postal Building, Bangrak, Bangkok on September 22-23, 2016
For the past 5 years, Canonical has engaged with dozens of communications service providers to design, build and operate virtualization infrastructure for network functions -- for the acronym lovers, delivering NFVI for VNFs. This presentation goes over the approach, challenges and learnings from multiple NFVI projects supporting multiple telco use cases.
Presentation of OpenStack survey to Internet Research Lab at National Taiwan University, Taiwan. OpenStack framework and architecture overview. (ppt slide for download.) Materials collected from various resources, not originally produced by the author.
Briefly explained Nova, Swift, Glance, Keystone, and Quantum.
Bringing New Experience with Openstack and Fuel (Ihor Dvoretskyi, Oleksandr M...IT Arena
Lviv IT Arena is a conference specially designed for programmers, designers, developers, top managers, inverstors, entrepreneur and startuppers. Annually it takes place on 2-4 of October in Lviv at the Arena Lviv stadium. In 2015 conference gathered more than 1400 participants and over 100 speakers from companies like Facebook. FitBit, Mail.ru, HP, Epson and IBM. More details about conference at itarene.lviv.ua.
Solum - OpenStack PaaS / ALM - Austin OpenStack summitdevkulkarni
Solum is a native Platform-as-a-service for OpenStack providing capabilities for application lifecycle management (testing, building, deploying, scaling).
OpenStack Explained: Learn OpenStack architecture and the secret of a success...Giuseppe Paterno'
OpenStack can help your business in cutting costs and have a faster time to market. A lot of people are looking at OpenStack as an alternative to VMware and most of the vendors are trying to let you think that visualization is cloud. While Cloud implies a virtualized environment, virtualization is not a cloud.
This ebook will go through the concept of Cloud and help you understand the architecture of OpenStack and its benefits. It also explores DevOps and reveal the "secret ingredient" to have a successful cloud project.
This ebook was created to raise funds for the Nepalese population after the Earthquake in 2015.
Build cloud like Rackspace with OpenStack AnsibleJirayut Nimsaeng
Build cloud like Rackspace with OpenStack Ansible Workshop in 2nd Cloud OpenStack-Container Conference and Workshop 2016 at Grand Postal Building, Bangrak, Bangkok on September 22-23, 2016
For the past 5 years, Canonical has engaged with dozens of communications service providers to design, build and operate virtualization infrastructure for network functions -- for the acronym lovers, delivering NFVI for VNFs. This presentation goes over the approach, challenges and learnings from multiple NFVI projects supporting multiple telco use cases.
Presentation of OpenStack survey to Internet Research Lab at National Taiwan University, Taiwan. OpenStack framework and architecture overview. (ppt slide for download.) Materials collected from various resources, not originally produced by the author.
Briefly explained Nova, Swift, Glance, Keystone, and Quantum.
Bringing New Experience with Openstack and Fuel (Ihor Dvoretskyi, Oleksandr M...IT Arena
Lviv IT Arena is a conference specially designed for programmers, designers, developers, top managers, inverstors, entrepreneur and startuppers. Annually it takes place on 2-4 of October in Lviv at the Arena Lviv stadium. In 2015 conference gathered more than 1400 participants and over 100 speakers from companies like Facebook. FitBit, Mail.ru, HP, Epson and IBM. More details about conference at itarene.lviv.ua.
Solum - OpenStack PaaS / ALM - Austin OpenStack summitdevkulkarni
Solum is a native Platform-as-a-service for OpenStack providing capabilities for application lifecycle management (testing, building, deploying, scaling).
Openstack Cloud Management and Automation Using Red Hat Cloudforms 4.0Prasad Mukhedkar
To success in Private Cloud, You have to have develop management and automation
strategy. Cloudforms is CPM (Cloud Platform Management) software that provides framework to develop management and automation strategy with its flaxible automation
module
Murano is an application catalog that enables OpenStack administrators to one-click deploy scalable and highly available composite apps.
Murano applications are specially developed applications that make full use of OpenStack resources.
https://github.com/stackforge/murano
Getting Started with OpenStack, Red Hat Summit 2016Charles Eckel
Hearing a lot about OpenStack and want to check it out for yourself? See how quick and easy it is to install and start using OpenStack using containers running within a VM on your own laptop. Familiarize yourself with the environment. Learn to use the Horizon (GUI) and the CLI to view and operate an OpenStack cloud, both as a cloud administrator as well as a tenant/user of the cloud.
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...Cloud Native Day Tel Aviv
The Ubuntu Openstack ecosystem is growing fast. This is good news. But as the options in cloud building grow, so does the task of ensuring interoperability between all the components. At Canonical we have deep experience of conformity and interoperability testing between OpenStack and Ubuntu. To bring this to the wider ecosystem we’ve opened a lab dedicated to testing components’ interoperability. We want to be able to present a wide a range of validated and supportable technical solutions. The talk will present the OIL describe how and why Canonical creates it and how to benefit from it.
Mirantis, Openstack, Ubuntu, and it's Performance on Commodity HardwareRyan Aydelott
In this document I use some basic off the shelf commodity servers and build an Openstack deployment using Mirantis Fuel with Nova Network and Ceph RBD for Glance/Cinder storage.
I then perform some basic disk/network benchmarking to give the reader an idea of what kind of performance they can expect out of a basic off the shelf deployment of Openstack Juno.
I also discuss some of the shortcomings I had with the release of OVS with Neutron/VLAN's when setting up this testbed.
Automating Application over OpenStack using WorkflowsYaron Parasol
OpenStack Heat is gaining momentum as a DevOps tool to orchestrate the creation of OpenStack cloud environments. Heat is based on a DSL describing simple orchestration of cloud objects, but lacks better representation of the middleware and the application components as well as more complex deployment and post-deployment orchestration workflows. The Heat community has started discussing a higher level DSL that will support not just infrastructure components.
This session will present a further extended suggestion for a DSL based on the TOSCA specification, which covers broader aspects of an application behavior and deployment such as the installation, configuration management, continuous deployment, auto-healing and scaling. We will also share some of our thoughts on how this DSL can interface with native OpenStack projects, such as Heat, Keystone and Ceilometer.
This presentation explores the latest release of OpenStack (OpenStack Mitaka) and shares highlights from the OpenStack Summit held April 25-29, 2016 in Austin, TX.
OpenStack is a free and open-source software platform for building and managing cloud computing platforms for public and private clouds, mostly deployed as an infrastructure-as-a-service (IaaS). The software platform consists of interrelated components that control hardware pools of processing, storage, and networking resources throughout a data center. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure.
Orangescrum In App Chat Add-on User ManualOrangescrum
The In-App chat add-on will help you to install the add-on & guide you about the features of chat add-on.
It's a real-time chat widget built for the Orangescrum Community Version. It offers fully secure, single or multi-user chat with private messaging, chat invitations and more.
Explore chat add-on details at: http://www.orangescrum.org/add-on/chat
DevOps is a set of practices that automates the processes between software development and IT teams, in order that they can build, test, and release software faster and more reliably.
CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...Louis Göhl
You're excited about the new features in App-V 4.5, but where do you get started? This talk is meant to guide IT administrators through the App-V deployment decision process. Specifically, we discuss the various deployment types, pros and cons for each type of deployment, and performance and scalability issues. By the end of the presentation, IT administrators will be able to identify the deployment that is best suited for their preferences and infrastructure.
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptxBOSC Tech Labs
This article covers step-by-step process to create a Progressive Web Apps in Flutter. Here you will learn complete guide to a build a PWA to build a web based application for iOS and Android devices.
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
This is the presentation given at the Symfony Live 2011 conference. It is an introduction to the new agile movement spreading in the technical operations community called DevOps and how to adopt it on web development projects, in particular Symfony projects.
Plan of the slides :
- Configuration Management
- Development VM
- Scripted deployment
- Continuous deployment
Tools presented in the slides:
- Puppet
- Vagrant
- Fabric
- Jenkins / Hudson
Chicago Docker Meetup Presentation - MediaflyMediafly
Bryan Murphy's presentation from the 2nd Chicago Docker meetup on March 12, 2014 at Mediafly HQ. In his presentation, Bryan explains how we use Docker right now at Mediafly in production.
If you're tired of dealing with load balancing, routing and cloud monitoring and would like to focus on just lambda function, list comprehension or class-based view, then this is the talk for you!
Heroku is the Platform as a Service (PaaS) platform that allows developers to create, run and manage applications entirely in the cloud. To be provided as a service not only the hardware, but also the platform that abstracts the hardware itself and allows you to take advantage of features that allow you to achieve automatic balancing, deployment management and more.
The advantage for the user is to focus exclusively on the development of the application without getting lost in the analysis of problems related to the environment in which it must be distributed, thus obtaining the necessary scalability and reliability.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
2. Agenda
Why Murano?
What is Murano?
Murano architecture
How to use Murano?
Install and configure Murano
push-a-button style deployment for end user
Application Catalog Design in Murano
Murano best practices
Troubleshooting
Understand how Murano-agent works
2
3. Why Murano?
4
This is how we buy product
in Amazon.com.
This is how we will consume
cloud service on OpenStack by
Murano.
4. What is Murano?
What is Murano
Just like hardware will be useless without software, virtual machine is useless
without application.
Murano is an application catalog service runs on the top of OpenStack IaaS
layer.
Goal
compose and deploy composite environments on the Application abstraction
level via UI or rest API
application life cycle management
be an integration point for various applications and service in OpenStack
Source code
https://git.openstack.org/cgit/?q=Murano
https://launchpad.net/Murano 5
6. Murano architecture
7
❶ user send request via Murano dashboard to Murano
python client
❷ Murano python client send request to Murano API
server
❸ Murano api server send the request to rabbitmq
❹ Murano conductor pick the request message from
queue
❺ Murano conductor parse the message and construct
a heat template to heat engine
❻Murano conductor send the really deployment
execution plan to the rabbitmq as Murano agent task
❼ heat deploy the whole IaaS level infrastructure via
various OpenStack services
❽ OpenStack services provision the vm instances with
Murano-agent enabled.
❾ on vms Murano-agent pick up the execution plan
assigned by the Murano conductor and execute them via
various scripts on certain OS
7. Murano components
Murano API Service
• Murano API provides access to the Murano orchestration engine via API.
Conductor Service(Orchestration Engine)
• Conductor is a Murano orchestration engine that transforms object model sent by REST API service into a series
of Heat and Murano-Agent commands.
Murano Repository Service
• Murano Repository provides access to metadata for Murano Conductor and Murano Dashboard. It also allows to
manage metadata objects via API. Editing service definitions (and other data stored in Murano Repository) is
made separately for each tenant.
Murano Dashboard
• Murano Dashboard provides Web UI for Murano Project.
8
8. How to use Murano?
Murano personas
Install and configure Murano
push-a-button style deploy for end user
Application Catalog Design in Murano
9
14. Application Catalog Design in Murano
most complex and important part in Murano
generic workflow is
build Murano-agent enabled vm image
create application package
specify the billing rules and usage metrics
test and verify
publish to Murano catalog
15
15. Design an application catalog high level
overview
16
apache
OS
Modeling
in Murano
Apache
Service
in OpenStack
Apache service
Linux Windows
16. build Murano-agent enabled vm image
build Murano windows image
Install Required Packages
Configure Shared Resource
Prerequisites
Additional Software
Build Windows Image
(Automatic Way)
Build Windows Image (Manual
Way)
Upload Image Into Glance
17
• build Murano Linux image
• Install Required Packages
• Build Linux Image
• Guest VM Linux OS
preparation
• Upload Image Into Glance
17. Building Windows Image
Install Required Packages
Configure Shared Resource
Prerequisites
Additional Software
Build Windows Image (Automatic Way)
Build Windows Image (Manual Way)
Upload Image Into Glance
18
19. Building Windows Image -Configure Shared
Resource
Configure samba based share
># mkdir -p /opt/samba/share
># chown -R nobody:nogroup /opt/samba/share
Configure samba server (/etc/samba/smb.conf).
...
[global]
...
security = user
...
[share]
comment = Deployment Share
path = /opt/samba/share
browsable = yes
read only = no
create mask = 0755
guest ok = yes
guest account = nobody
...
Restart services.
># service smbd restart
># service nmbd restart
20
20. Building Windows Image -Prerequisites•${SHARE_PATH}/libvirt/images/ws-2012-eval.iso
•http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx
Windows 2012 Server ISO evaluation version
•${SHARE_PATH}/libvirt/images/virtio-win-0.1-52.iso
•http://alt.fedoraproject.org/pub/alt/virtio-win/stable/virtio-win-0.1-52.iso
VirtIO drivers for Windows
•${SHARE_PATH}/share/files/CloudbaseInitSetup_Beta.msi
•http://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msiCloudBase-Init for Windows
•${SHARE_PATH}/share/files/Far30b3367.x64.20130426.msi
•http://www.farmanager.com/files/Far30b3525.x64.20130717.msi
Far Manager
•${SHARE_PATH}/share/files/Git-1.8.1.2-preview20130201.exe
•https://msysgit.googlecode.com/files/Git-1.8.3-preview20130601.exe
Git client
•${SHARE_PATH}/share/files/SysinternalsSuite.zip
•http://download.sysinternals.com/files/SysinternalsSuite.zipSysinternals Suite
•${SHARE_PATH}/share/files/unzip.exe
•https://www.dropbox.com/sh/zthldcxnp6r4flm/-k1Om_V6XR
unzip.exe tool
•${SHARE_PATH}/share/files/Windows6.1-KB2506143-x64.msu
•http://www.microsoft.com/en-us/download/details.aspx?id=34595PowerShell v3
•${SHARE_PATH}/share/files/dotNetFx40_Full_x86_x64.exe
•http://www.microsoft.com/en-us/download/details.aspx?id=17718.NET 4.0
•${SHARE_PATH}/share/files/dotNetFx45_Full_setup.exe
•http://www.microsoft.com/en-us/download/details.aspx?id=30653
.NET 4.5
•${SHARE_PATH}/share/files/MuranoAgent.zip
•https://www.dropbox.com/sh/zthldcxnp6r4flm/-k1Om_V6XRMurano Agent 21
21. Building Windows Image -Additional Software
Windows ADK
${SHARE_PATH}/libvirt/images/ws-2012-eval.iso
Windows Assessment and Deployment Kit (ADK) for Windows® 8 is required to build your own answer files for auto unattended Windows installation.
http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx
PuTTY
PuTTY is a useful tool to manage your Linux boxes via SSH.
Windows Server 2012 ISO image
Image Name: 9200.16384.WIN8_RTM.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.iso
URL: http://technet.microsoft.com/en-US/evalcenter/hh670538.aspx?ocid=&wt.mc_id=TEC_108_1_33
VirtIO Red Hat drivers ISO image
Download drivers from http://alt.fedoraproject.org/pub/alt/virtio-win/stable/
Floppy Image With Unattended File
Create empty floppy image in your home folder
># dd bs=512 count=2880
if=/dev/zero of=~/floppy.img
mkfs.msdos ~/floppy.img
Mount the image to /media/floppy
># mkdir /media/floppy mount -o loop
~/floppy.img /media/floppy
Download autounattend.xml file from https://raw.github.com/stackforge/Murano-deployment/master/image-builder/share/files/ws-2012-std/autounattend.xml
># cd ~
># wget https://raw.github.com/stackforge/Murano-deployment
/master/image-builder/share/files/ws-2012-std/autounattend.xmlMurano Agent
Copy our autounattend.xml to /media/floppy
># cp ~/autounattend.xml /media/floppy
Unmount the image
># umount /media/floppy
22
22. Building Windows Image- Build Windows
Image (Automatic Way) Clone Murano-deployment repository
># git clone git://github.com/stackforge/Murano-deployment.git
Change directory to Murano-deployment/image-builder folder.
Create folder structure for image builder
># make build-root
Create shared resource
Add to /etc/samba/smb.conf.
[image-builder-share]
comment = Image Builder Share
browsable = yes
path = /opt/image-builder/share
guest ok = yes
guest user = nobody
read only = no
create mask = 0755
Restart samba services.
># restart smbd && restart nmbd
Test that all required files are in place
># make test-build-files
Get list of available images
># make
Run image build process
># make ws-2012-std
Wait until process finishes
he image file ws-2012-std.qcow2 should be stored under /opt/image-builder/share/images folder. 23
23. Building Windows Image- Build Windows
Image (Manual Way)
Get Post-Install Scripts
Download package installation script named wpi.ps1 from https://raw.github.com/stackforge/Murano-
deployment/master/image-builder/share/scripts/ws-2012-std/wpi.ps1
Download Clean-up script Start-Sysprep.ps1 from https://raw.github.com/stackforge/Murano-
deployment/master/image-builder/share/scripts/ws-2012-std/Start-Sysprep.ps1
Create a VM
Using CLI Tools
Preallocate disk image
># qemu-img create -f raw /var/lib/libvirt/images/ws-2012.img 40G
Start the VM
># virt-install --connect qemu:///system --hvm --name WinServ
--ram 2048 --vcpus 2 --cdrom /opt/samba/share/9200.16384.WIN8_RTM
.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.ISO
--disk path=/opt/samba/share/virtio-win-0.1-52.iso,device=cdrom
--disk path=/opt/samba/share/floppy.img,device=floppy
--disk path=/var/lib/libvirt/images/ws-2012.qcow2
,format=qcow2,bus=virtio,cache=none
--network network=default,model=virtio
--memballoon model=virtio --vnc --os-type=windows
--os-variant=win2k8 --noautoconsole
--accelerate --noapic --keymap=en-us --video=cirrus –force
24
24. Building Windows Image- Build Windows
Image (Manual Way)-cont
Using virt-manager UI
Launch virt-manager from shell as root
Set a name for VM and select Local install media
Add one cdrom and attach Windows Server ISO image to it
Select OS type Windows and it's version Windows Server 2008
Set CPU and RAM amount
Deselect option Enable storage for this virtual machine
Select option Customize configuration before install
Add second cdrom for ISO image with virtio drivers
Add a floppy drive and attach our floppy image to it
Add (or create new) HDD image with Disk bus VirtIO and storage format RAW
Set network device model VirtIO
Start installation process and open guest vm screen through Console button
Convert the image from RAW to QCOW2 format.
# qemu-img convert -O qcow2 /var/lib/libvirt/images/ws-2012.raw
/var/lib/libvirt/images/ws-2012-ref.qcow2
25
25. Building Windows Image -Upload Image Into
Glance
import your disk image to Glance
>$ glance image-create --name <NAME>
--is-public true --disk-format qcow2
--container-format bare
--file <IMAGE_FILE>
--property <IMAGE_METADATA>
to update the exiting image meta data
>$ glance image-update <IMAGE-ID> --property <IMAGE_MATADATA>
26
26. Building Linux Image
Install Required Packages
Build Linux Image
Guest VM Linux OS preparation
Upload Image Into Glance
27
28. Building Linux Image-Build Linux Image
Create a VM via CLI
Preallocate disk image
># qemu-img create -f qcow2 /var/lib/libvirt/images/cloud-linux.img 10G
Start the VM
># virt-install --connect qemu:///system --hvm --name cloud-linux
--ram 2048 --vcpus 2 --cdrom /PATH_TO_YOUR_LINUX.ISO
--disk path=/var/lib/libvirt/images/cloud-linux.img,
format=qcow2,bus=virtio,cache=none
--network network=default,model=virtio
--memballoon model=virtio --vnc --os-type=linux
--accelerate --noapic --keymap=en-us --video=cirrus --force
29
29. Building Linux Image-Build Linux Image
Create a VM via virt-manager UI
Launch virt-manager from shell as root
Set a name for VM and select Local installation media
Add one cdrom and attach your linux ISO image to it
Select OS type Linux and it's version choose yours
Set CPU and RAM amount
Deselect option Enable storage for this virtual machine
Select option Customize configuration before install
Add (or create new) HDD image with Disk bus VirtIO and storage
format QCOW2
Set network device model VirtIO
Start installation process and open guest vm screen
through Console button
30
30. Building Linux Image-Guest VM Linux OS
preparation OS system required tools preparation
># apt-get -y update; apt-get -y dist-upgrade
># apt-get install -y git unzip make cmake gcc
python-dev python-pip openssh-server
Murano-agent installation steps
># mkdir -p /opt/git
># cd /opt/git
># git clone https://github.com/stackforge/Murano-agent.git
># cd Murano-agent/python-agent
># git checkout release-0.3
># chmod a+x setup*.sh
# To install Murano Agent on Ubuntu run:
># ./setup.sh install
# To install Murano Agent on CentOS run:
># ./setup-centos.sh install
cloud-init installation
install cloud-init
># apt-get install -y cloud-init cloud-initramfs-growroot
# dpkg-reconfigure cloud-init
cloud-init configuration options
># vi /etc/cloud/cloud.cfg
user: ec2-user
disable_root: 1
preserve_hostname: False
31
31. Building Linux Image-Guest VM Linux OS
preparation
Security setup
># useradd -m -G sudo -s /bin/bash ec2-user
># passwd ec2-user
># echo "ec2-user ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ec2-user
># chmod 440 /etc/sudoers.d/ec2-user
Disable SSH password-based logins in the /etc/ssh/sshd_config.
...
GSSAPIAuthentication no
PasswordAuthentication no
PermitRootLogin no
...
Network handling
# rm -f /etc/udev/rules.d/70-persistent-net.rules
Shutdown VM
Convert the image from RAW to QCOW2
># qemu-img convert -O qcow2 /var/lib/libvirt/images/cloud-linux.img
/var/lib/libvirt/images/cloud-linux.img.qcow2
32
32. Building Linux Image-Upload Image Into
Glance
import image to glance
># glance image-create --disk-format=qcow2 --container-format=bare
--is-public=true --file=cloud-linux.img --name=cloud-linux
33
33. create application package
Step 1. Prepare Execution Plans
Step 2. Prepare MuranoPL class definitions
Step 3. Prepare Dynamic UI Form Definition
Step 4. Prepare application logo
Step 5. Prepare manifest file
Step 6. Compose a zip archive
34
34. create application package
Step 1. Prepare Execution Plans
FormatVersion - version of Execution Plan syntax format
Version - version of Execution Plan
Name - human-readable name of the Execution Plan
Parameters - parameters received from MuranoPL
Body - Python statement, should start with | symbol
Scripts - dictionary that maps script names to script definitions.
Type: Deployment Platform name that script is targeted to.
Version: optional minimum version of deployment platform/executor required by the
script.
EntryPoint: relative path to the file that contains a script entry point
Files: This is an optional array of additional files required for the script. Use <> to specify
a relative path to the file. The root directory is Resource/scripts.
Options: an optional argument of type contains additional options
35
35. Example - DeployTelnet.template
FormatVersion: 2.0.0
Version: 1.0.0
Name: Deploy Telnet
Parameters:
appName: $appName
Body: |
return deploy(args.appName).stdout
Scripts:
deploy:
Type: Application
Version: 1.0.0
EntryPoint: deployTelnet.sh
Files:
- installer.sh
- common.sh
Options:
captureStdout: true
captureStderr: false 36
Like main func
Like sub func
Like 2>&1
37. MuranoPL
Developed for managing complex compound applications with
minimal code duplication.
Has YAML-based syntax.
Built on classes, composition and inheritance.
Safe enough to be used for execution of untrusted code
38
38. Murano PL – YAQL(Yet Another Query
Language) https://github.com/ativelkov/yaql
query language designed as part of Murano project.
a language for expression evaluation
presence of ‘$’ sign
no built in list of functions
Everything YAQL can access is customizable
3* foo(3,6) depends on the implementation of ‘foo’ and operator ‘*’
$foo means get the value of $foo?
a lot of OOTB functions
no assignment operator in YAQL
‘=‘ means ‘==‘ in Python
39
39. Murano PL – common class structure
Name: class name
Namespaces: namespaces specification
Extends: [list of parent classes]
Properties: properties declaration
Workflow:
methodName:
Arguments:
- list
- of
- arguments
Body:
- list
- of
- instructions
40
Murano.overview
class MyClass
(MyBase1, MyBase2,…):
name = ‘hello’
value = ‘world’
def say(self,*args,**kargs):
pass
def say_again(self, *args, **kargs):
pass
40. Murano PL – common class structure-
Namespaces
Namespaces:
=: com.mirantis.Murano.services.windows
srv: com.mirantis.Murano.services
std: com.mirantis.Murano
srv:foo equals to com.mirantis.Murano.services.foo
‘=‘ means current namespace ‘MyClass’ equals
com.mirantis.Murano.services.windows.MyClass
41
41. Murano PL – common class structure- Extends
Extends: [base1, base2,..]
Extends: Base
Extends:
42
MyClass(base1,base2,..)
MyClass(Base)
MyClass(com.mirantis.Murano.Object)
42. Murano PL – common class structure- Properties
propertyName:
Contract: property
contract
Usage: property usage
Default: property default
43
43. Murano PL – common class structure- Properties-
Contract
YAQL expressions to define expected type of value and constraints imposed on this
property.
44
44. Murano PL – common class structure- Properties-
contract
45
45. Murano PL – common class structure-
Properties-Usage
Usage states purpose of the property.
indicates who and how can access the property
46
46. Murano PL – common class structure-
Properties-Default
Specify the default value of the property
Conform to the constraints set by contract.
47
47. Murano PL – common class structure-
Workflow
Workflows are the methods that together describe how the entities
that are represented by MuranoPL classes deployed.
48
methodName:
Arguments:
- list
- of
- arguments
Body:
- list
- of
- instructions
3 types of instructions
Expressions
Assignment
Block constructs
48. Murano PL – common class structure-
Workflow-Expression
49
• YAQL expressions
• in a syntax like $obj.methodName(arguments)
49. Murano PL – common class structure-
Workflow-Assignment
50
• YAQL expressions
• single-key dictionaries with YAQL
expression as key and arbitrary
structure as a value
50. Murano PL – common class structure-
Workflow-Blocks
51
• Block constructs control program flow.
52. Dynamic UI
Goal
generate application creation forms "on-the-fly“
YAML format
Version - points out to which syntax version is used, optional
Templates - optional, auxiliary section, using together with an Application
section, optional
Application - object model description which will be used in application
deployment, required
Forms - web form definitions, required
YAQL
https://wiki.openstack.org/wiki/Murano/Documentation/DynamicUI#Dyna
mic_UI_Definition_specification
53
55. Dynamic UI -telnet ui definition example
Forms:
- serviceConfiguration:
fields:
- name: title
type: string
required: false
hidden: true
description: Telnet service that can be installed at linux
- name: name
type: string
label: Service Name
description: >-
Enter a desired name for a service. Just A-Z, a-z, 0-9, dash and
underline are allowed.
minLength: 2
maxLength: 64
regexpValidator: '^[-w]+$'
errorMessages:
invalid: Just letters, numbers, underscores and hyphens are allowed.
helpText: Just letters, numbers, underscores and hyphens are allowed. 56
Will be displayed in UI
Input Validation
59. Prepare manifest file
in YAML format
should contains:
Format - version of a manifest syntax format
Type - package type. Valid choices are: Library and Application
Name - human-readable application name
Description - a brief description of an application
Author - person or company name which created an application package
Classes - MuranoPL class list, on which application deployment is based
Tags - list of words, associated with this application. Will be helpful during the
search.Optional parameter
60
60. Prepare manifest file- example
Format: 1.0
Type: Application
FullName: io.Murano.apps.linux.Telnet
Name: Telnet
Description: |
Telnet is the traditional protocol for making remote console connections over TCP.
Author: 'Mirantis, Inc'
Tags: [Linux, connection]
Classes:
io.Murano.apps.linux.Telnet: telnet.yaml
UI: telnet.yaml
Logo: telnet.png
61
61. create application package
Step 1. Prepare Execution Plans
Step 2. Prepare MuranoPL class definitions
Step 3. Prepare Dynamic UI Form Definition
Step 4. Prepare application logo
Step 5. Prepare manifest file
Step 6. Compose a zip archive
62
62. Compose a zip archive
Classes folder
MuranoPL class definitions should be put inside this folder
Resources folder
This folder should contain Execution scripts
Scripts folder
All script files, needed for an application deployment should be placed here
UI folder
Place dynamic ui yaml definitions here
logo.png
Image file should be placed in the root folder. It can have any name, just specify it in
the manifest file.
manifest.yaml
Application manifest file. It's an application entry point. The file name is fixed.
63
69. Murano best practices
Use Separate vHost in RabbitMQ
advantages
this prevents queue name collisions
this prevents message stealing from queues
this simplify debugging
configure example
># rabbitmqctl add_user Muranouser Muranopassword
># rabbitmqctl set_user_tags Muranouser administrator
># rabbitmqctl add_vhost Muranovhost
># rabbitmqctl set_permissions -p Muranovhost Muranouser ".*" ".*" ".*"
70
70. Troubleshooting
71
Root cause:
By default ,Murano
needs a router name
that contains keyword
like Murano and
external network
solution:
modify the /etc/Murano/Murano.conf
in [networking] section
[networking]
…
external_network=<your_existing_network_name>
router_name=<your_exiting_router_name>
…
71. Troubleshooting(1)
Issue
Failed to provision instance, nova report failed to plug vif
72
Root cause:
This is a known issue
in juno
solution:
72. Troubleshooting(2)
Issue
access meta data failed
73
Root cause:
The neutron meta data
service cannot
authenticate against
keystone
solution:
vi /etc/neutron/metadata_agent.ini
73. Troubleshooting(3)
Issue
agent failed to execute the execution plan
74
Possible Root cause:
1. Murano-agent
cannot connect to
the rabbitmq
server
2. Murano-agent
failed find the
message in queue
solution:
As for No1., check the rabbitmq server status via cli
#rabbitmqctl status
As for No2.
login to vm instance
check the /etc/Murano/agent.conf to find the
input_queue id
find if the message by this input_queue in rabbitmq
74. Understand how Murano agent works
75
Murano-agent.conf
rabbitmq
VM
heat-
client
Murano-agent
❹
❸
❺
❷
❶ heat picks up the message from rabbitmq
❷ heat will generate the Murano-agent.conf using
cloud-init
❸ Murano agent will use this agent.conf file to find
the right rabbitmq server and the input_queue
❹ Murano agent will pickup the right message from
rabbitmq
❺ Murano agent will execute the execution plan
beard in the message
❶
execution
plans
75. /var/lib/heat-cfntools/cfn-userdata
root@Murano-tkuoai2lpm47x1-nwhcoi2lplzls1-bsojzo5io7vr:~# cat /var/lib/heat-cfntools/cfn-userdata
#!/bin/sh
service Murano-agent stop
AgentConfigBase64='W0RFRkFVTFRdCmRlYnVnPVRydWUKdmVyYm9zZT1UcnVlCmxvZ19maWxlID0gL3Zhci9sb2c
vbXVyYW5vLWFnZW50LmxvZwoKc3RvcmFnZT0vdmFyL211cmFuby9wbGFucwoKW3JhYmJpdG1xXQoKIyBJbnB1d
CBxdWV1ZSBuYW1lCmlucHV0X3F1ZXVlID0gZWNjZWNkNTBjMWM0ZjQ5NWE5MjYwY2NlNWZhNGNmOWRhLWg
1YTU0ZDUwOC1iNTZmLTRkNDYtODJiZC03MTVmMjRhMjA3MDcKCiMgT3V0cHV0IHJvdXRpbmcga2V5ICh1c3VhbG
x5IHF1ZXVlIG5hbWUpCnJlc3VsdF9yb3V0aW5nX2tleSA9IC1leGVjdXRpb24tcmVzdWx0cy10a3VvYWkybHBtNDd4M
QoKIyBDb25uZWN0aW9uIHBhcmFtZXRlcnMgdG8gUmFiYml0TVEgc2VydmljZQoKIyBIb3N0bmFtZSBvciBJUCBhZGR
yZXNzIHdoZXJlIFJhYmJpdE1RIGlzIGxvY2F0ZWQuCmhvc3QgPSAxOTIuODUuMTgwLjEzOAoKIyBSYWJiaXRNUSBwb3J
0ICg1NjcyIGlzIGEgZGVmYXVsdCkKcG9ydCA9IDU2NzIKCiMgVXNlIFNTTCBmb3IgUmFiYml0TVEgY29ubmVjdGlvbnM
gKFRydWUgb3IgRmFsc2UpCnNzbCA9IGZhbHNlCgojIFBhdGggdG8gU1NMIENBIGNlcnRpZmljYXRlIG9yIGVtcHR5IHR
vIGFsbG93IHNlbGYgc2lnbmVkIHNlcnZlciBjZXJ0aWZpY2F0ZQpjYV9jZXJ0cyA9CgojIFJhYmJpdE1RIGNyZWRlbnRpYW
xzLiBGcmVzaCBSYWJiaXRNUSBpbnN0YWxsYXRpb24gaGFzICJndWVzdCIgYWNjb3VudCB3aXRoICJndWVzdCIgcGFzc
3dvcmQuCmxvZ2luID0gZ3Vlc3QKcGFzc3dvcmQgPSBwYXNzd29yZAoKIyBSYWJiaXRNUSB2aXJ0dWFsIGhvc3QgKHZ
ob3N0KS4gRnJlc2ggUmFiYml0TVEgaW5zdGFsbGF0aW9uIGhhcyAiLyIgdmhvc3QgcHJlY29uZmlndXJlZC4KdmlydHV
hbF9ob3N0ID0gLwo='
if [ ! -d /etc/Murano ]; then
mkdir /etc/Murano
fi
echo $AgentConfigBase64 | base64 -d > /etc/Murano/agent.conf
chmod 664 /etc/Murano/agent.conf
service Murano-agent start
76
root@Murano-tkuoai2lpm47x1-nwhcoi2lplzls1-bsojzo5io7vr:~# echo $AgentConfigBase64 | base64 -d
[DEFAULT]
debug=True
verbose=True
log_file = /var/log/Murano-agent.log
storage=/var/Murano/plans
[rabbitmq]
# Input queue name
input_queue = eccecd50c1c4f495a9260cce5fa4cf9da-h5a54d508-b56f-4d46-82bd-715f24a20707
# Output routing key (usually queue name)
result_routing_key = -execution-results-tkuoai2lpm47x1
# Connection parameters to RabbitMQ service
# Hostname or IP address where RabbitMQ is located.
host = 192.85.180.138
# RabbitMQ port (5672 is a default)
port = 5672
# Use SSL for RabbitMQ connections (True or False)
ssl = false
# Path to SSL CA certificate or empty to allow self signed server certificate
ca_certs =
# RabbitMQ credentials. Fresh RabbitMQ installation has "guest" account with "guest" password.
login = guest
password = password
# RabbitMQ virtual host (vhost). Fresh RabbitMQ installation has "/" vhost preconfigured.
virtual_host = /
76. Murano-agent.conf
77
root@Murano-tkuoai2lpm47x1-nwhcoi2lplzls1-bsojzo5io7vr:~# echo $AgentConfigBase64 | base64 -d
[DEFAULT]
debug=True
verbose=True
log_file = /var/log/Murano-agent.log
storage=/var/Murano/plans
[rabbitmq]
# Input queue name
input_queue = eccecd50c1c4f495a9260cce5fa4cf9da-h5a54d508-b56f-4d46-82bd-715f24a20707
# Output routing key (usually queue name)
result_routing_key = -execution-results-tkuoai2lpm47x1
# Connection parameters to RabbitMQ service
# Hostname or IP address where RabbitMQ is located.
host = 192.85.180.138
# RabbitMQ port (5672 is a default)
port = 5672
# Use SSL for RabbitMQ connections (True or False)
ssl = false
# Path to SSL CA certificate or empty to allow self signed server certificate
ca_certs =
# RabbitMQ credentials. Fresh RabbitMQ installation has "guest" account with "guest" password.
login = guest
password = password
# RabbitMQ virtual host (vhost). Fresh RabbitMQ installation has "/" vhost preconfigured.
virtual_host = /
79. Summary
Murano is an OpenStack application catalog service
As for end user
provides a push-button-style application deployment
As for cloud app publisher
provides application design framework via complex modeling and dynamic UI definition to publish the app to openstack.
As for cloud admin
provides set of api to maintain the service catalog
Pros:
Flexible in application design using MuranoPL
Using heat to deploy the underline IaaS infrasture
Easy to use UI dashboard
Support various deployment script Python, Shell, Powershell etc.
Cons:
Application design is complicated
Have to learn the MuranoPL (kinda vendor lockin?)
The Murano agent runs on only VM instead of Physical box
Agent based the task execution(some customer don’t want to run agent in their instance)
81