Upload
henar-munoz-frutos
View
112
Download
3
Tags:
Embed Size (px)
Citation preview
FIWARE Blueprint Templates
Hardware information Software
information
A tier: several VMs for scaling
Several applications in the same VMs
FIWARE: Complex software Configuration
- Application attributes value defined by users (haproxy port, mysql password, tomcat port..)- Application attribute values obtained in runtime (IP tomcat, IP mysql)- Hardware deployment depends of application attributes (e.g. tomcat port in security
groups)
Managing configuration in FIWARE (e.g. with Puppet)
• Separate software deployment instructions from node configuration – Puppet modules contains the software ideployment nstructions. The modules are
parametrized (no configuration infomration there)
– Puppet manifest specifies the VM configuration (software to be isntalled …)
– Puppet hieradata specifies the software attributes configuration
• VM configuration and software attributes should be generated in deployment time – Software attributes can be introduced by users (tomcat_port, mysql password)
– Ips are only know in deployment time
• Puppet master stores the nodes configuration and software instructions
Puppetmaster
Software instructions(modules)
VM 1
Software configuration
in VM1 (hieradata)
VM 1 configuration
(manifest)
VM software
instructions
Puppet
tomcat::tomcat_port : 8082tomcat::mysql_host : 10.0.2.3tomcat::mysql_user : roottomcat::mysql_password : mypasswordtomcat::mysql_password : mypasswordtomcat::application_url: [email protected]:telefonicaid/fiware-paas.git
hiera.yaml
Node default {class {‘tomcat::install': }class {‘git:install’:}
}
site.pp manifest
modules
Blueprint Components
6
PaaS Manager
Openstack SDC
-deploy VMs-deploy network-deploy storage?
Chef/serverPuppet Master
- Install software - Configuration Management
MURANO fixes blueprint capabilities
• It deploys the virtual hardware (computation, network, security groups.. ) with Heat
• It contains an application catalogue with all the software deployment instructions
• MURANO agent in the VM installs software by the packages resources
– Murano packages includes software instructions and software configuration (security groups, ports..)
service{
"instance": {"flavor": "m1.medium","image": "clod-fedora-v3","?": {
"type": "io.murano.resources.Instance","id": "bce8308e-5938-408b-a27a-0d3f0a2c52eb"
},"name": "nhekhv6r7mhd4"
},"name": "sdf34sadf",
"?": {"_26411a1861294160833743e45d0eaad9": {"name": "Telnet"
},“type": "io.murano.apps.linux.Telnet","id": "190c8705-5784-4782-83d7-0ab55a1449aa"
}}
Like tiers?
Hardware information
Software to be installed?’
Software properties to be used in the installationinstructions?
https://github.com/stackforge/murano/blob/stable/juno/doc/source/specification/murano-api.rst
Murano Application
MURANO Packages
Installation and configurationinstructions
UI information in the applicationcatalogue
Application information (including secgroups)
https://github.com/murano-project/murano-app-incubator/tree/master/io.murano.apps.apache.Tomcathttps://wiki.openstack.org/wiki/Murano/Documentation/How_to_create_application_package
MURANO package classes: defines applicationworkflow
Deploy:Body:
- If: !yaql "not bool($.getAttr(deployed))"Then:
- $this.find(std:Environment).reporter.report($this, 'Creating VM for Tomcat ')- $securityGroupIngress:
- ToPort: 8082FromPort: 8082IpProtocol: tcpExternal: True
- $.environment.securityGroupManager.addGroupIngress($securityGroupIngress)- $.instance.deploy()- $resourcestomcat: new(sys:TomcatResources)# Deploy Apache Tomcat- $template: $ resourcestomcat.yaml('DeployTomcat.template')- $this.find(std:Environment).reporter.report($this, 'Instance is created. Deploying Tomcat')- $.instance.agent.call($template, $ resourcestomcat)- $this.find(std:Environment).reporter.report($this, 'Tomcat is installed')- $.setAttr(deployed, True)
# Deploy Git- $resourcesgit: new(sys:GitTomcatResources)- $template: $resourcesgit.yaml('DeployGit.template')- $this.find(std:Environment).reporter.report($this, “Deploying Git')-$.instance.agent.call($template, $resourcesgit)- $this.find(std:Environment).reporter.report($this, “Git is installed')- $.setAttr(deployed, True)
Hiera.yaml (software attributesconfiguration)
Site.pp (manifest with VM configuration)
Modules (tomcat module)
puppet apply "--hiera_config=hiera.yaml ","--modulepath=modules " site.pp
MURANO Resources using Puppet
Software Packages using Puppet in MURANO
• There a huge comunity (opscode, puppet lab) with software instructions
– Just reuse
• Package resources to execute chef/puppet instructions
• Package resources (puppet files: hiera.yaml and site.pp) should be defined in deployment time
– It depends on user definition and deployment properties
• Package classes depends on the deployment (e.g. security groups).
Generate application definitions based on packages with all the required files (hiera.yaml, site.pp) created on the fly packages from the user requirements specifying the workflow in the class (also generated)