SlideShare a Scribd company logo
Interoperable OpenStack guest
provisioning

Alessandro Pilotti
CEO
@cloudbaseit
OpenStack
An open source IaaS project
– Apache 2 license

Managed by the OpenStack Foundation
– More than 150 companies joined it including:
– AMD, Intel, Canonical, SUSE Linux, Red Hat,
Cisco, Dell, HP, IBM, NEC, Vmware

Portable
– Mostly used on Linux

Written in Python
Releases
Very aggressive schedule
–

•

Essex
–
–

•

Apr 2013

Havana
–

•

October 2012
Cloudbase Solutions involvement - Hyper-V re-included 

Grizzly
–

•

Apr 2012
Hyper-V removed

Folsom
–
–

•

Twice a year

October 2013

Icehouse
–

Apr 2014
OpenStack Architecture
• Distributed Components
– Can be deployed on a single server or multiple servers

• Public RESTful API
– Bindings available for various languages (including .Net)

• Queues (AMQP) for private APIs
– Great scalability

• Relational DBs for storing the configuration
– MySQL, PostgreSQL, SQLite (and SQL server)

• UI
– CLI tools
– Web dashboard
Components
Compute (Nova)
Object Storage (Swift)
Block Storage (Cinder)
Image Service (Glance)
Networking (Neutron)
Dashboard (Horizon)
Identity (Keystone)
Metering (Ceilometer)
Orchestration (Heat)
Architecture 1
Architecture 2
Component interaction
• AMQP
– RabbitMQ
– Apache Qpid

• API
– RESTful services

• Database
– Any Python SQLAlchemy provider
– Mostly MySQL
– SQL Server required various bug fixes
And now the guests
• Nova’s IaaS role ends in the moment in
which the VM boots.
• What happens afterwards, is something that
the guest OS has to sort out.
• Clouds need to support a variety of guest
operating systems:
–
–
–
–

Linux (Ubuntu, RHEL / CentOS and lots more)
Windows Server (and workstation for VDI)
FreeBSD
etc
Guest init actions
•
•
•
•

Setting the host name
Manage users / groups
Configure network
Deploy ssh keys for public key auth
– Passwords are BAD!

• Extend partitions automatically
• Run custom scripts
• (and more)
Config data?
• Passing configuration data to the guest is
tricky
– Remember: no networking yet!

• The “classic” EC2 approach
– A url on a magic IP http://169.254.169.254
– Various HTTP metadata format exists
• e.g. EC2, OpenStack (Nova)

• An ISO image (ConfigDrive)
– File system reflects the content available via
HTTP
Multi platform support
• This is the really tricky part
• IaaS components (e.g. Nova) don’t care
about the guest OS
• Doing provisioning in Linux differs from
Windows and from FreeBSD
• cloud-init works on Linux
– Too tightly coupled with the OS
– Porting is very though

• So we had to start a new project 
Cloudbase-Init
• Standard de facto on Windows OpenStack
deployments
• Ported to FreeBSD as well:
– https://github.com/pellaeon/bsd-cloudinit

• “Made in TM”, like the rest of the Cloudbase
stuff 
• 100% Python code
Architecture
• Needs to be completely decoupled from the
OS
– Must be portable to any OS

• Highly extensible model
• Basic UML class diagram:
– https://drive.draw.io/#G0B6gjkOr4OobDQnVHY0
QyQ2pSVlE
Tricky Windows parts
• CPython works great on Windows
– Lots of modules for basic OS integration

• What to do when we need to go “deeper”?
– PyWin32
• COM
• Wraps lots of Win32 APIs

– PythonNet
• .Net
• Not to be confused with IronPython!

– WMI
• CIM implementation

– Ctypes
•
•
•
•

Direct Win32 calls
Very flexible
Can be tedious to code
Similar to .Net PInvoke
Examples -WMI
• Win32_NetworkAdapter
– https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/osutils/windows.py
#L340
Examples - ctypes
• Win32 - VerifyVersionInfoW
– https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/osutils/windows.py
#L557

• Portable - openssl API
– https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/utils/crypt.py#L124
Examples COM
• COM exposes properties and methods via
getattr / setattr
• Volumes management
– https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/plugins/windows/v
ds.py#L322
– https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/plugins/windows/e
xtendvolumes.py#L161
Logging to serial port
• Fact: serial ports never grow old 
• Clouds use often serial ports to
communicate between hypervisors and
guests
– E.g. OpenStack with KVM

• Linux can easily use serial ports for console
I/O
– That’s how Unix was used in the old days 
pyserial
• Windows does not log to serial port
• Serial port can be integrated into Python’s
logging
– https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/utils/log.py#L34

• By adding this Log Handler, anytime you
issue a LOG.info/warn/error etc it will be
logged to serial port and collected by KVM
(for example)
Q&A

More Related Content

What's hot

Comparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Comparing IaaS: VMware vs OpenStack vs Google’s GanetiComparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Comparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Giuseppe Paterno'
 
OpenStack and Windows - What's new in Ocata
OpenStack and Windows - What's new in OcataOpenStack and Windows - What's new in Ocata
OpenStack and Windows - What's new in Ocata
Alessandro Pilotti
 
VIO30 Technical Overview
VIO30 Technical OverviewVIO30 Technical Overview
VIO30 Technical OverviewJulienne Pham
 
DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack
buildacloud
 
PaaS on top of CloudStack
PaaS on top of CloudStackPaaS on top of CloudStack
PaaS on top of CloudStack
buildacloud
 
Applying OpenStack at iNET use case
Applying OpenStack at iNET use caseApplying OpenStack at iNET use case
Applying OpenStack at iNET use case
Vietnam Open Infrastructure User Group
 
CloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community worksCloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community works
CloudStack - Open Source Cloud Computing Project
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
buildacloud
 
Project RedDwarf - Database Services in the Cloud.pptx
Project RedDwarf - Database Services in the Cloud.pptxProject RedDwarf - Database Services in the Cloud.pptx
Project RedDwarf - Database Services in the Cloud.pptx
OpenStack Foundation
 
Does Hypervisor matter in OpenStack
Does Hypervisor matter in OpenStackDoes Hypervisor matter in OpenStack
Does Hypervisor matter in OpenStack
Nermina Miller
 
Cloud, Security and opensource 2012-12-28 at SSU
Cloud, Security and opensource 2012-12-28 at SSUCloud, Security and opensource 2012-12-28 at SSU
Cloud, Security and opensource 2012-12-28 at SSULINE株式会社
 
Openstack portal-bestpractices-campbell mcneill
Openstack portal-bestpractices-campbell mcneillOpenstack portal-bestpractices-campbell mcneill
Openstack portal-bestpractices-campbell mcneillCampbell McNeill
 
Bacd zenoss
Bacd zenossBacd zenoss
Bacd zenosske4qqq
 
New features in OpenNebula 5.4, Jaime Melis
New features in OpenNebula 5.4, Jaime MelisNew features in OpenNebula 5.4, Jaime Melis
New features in OpenNebula 5.4, Jaime Melis
OpenNebula Project
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
ke4qqq
 
Don't worry with bower
Don't worry with bowerDon't worry with bower
Don't worry with bower
Frank van der Linden
 
Getting Safe Swiss Cloud up and running with CloudStack
Getting Safe Swiss Cloud up and running with CloudStackGetting Safe Swiss Cloud up and running with CloudStack
Getting Safe Swiss Cloud up and running with CloudStack
Prodosh Banerjee
 
Successfully Deliver and Operate OpenStack in Production with VMware VIO
Successfully Deliver and Operate OpenStack in Production with VMware VIOSuccessfully Deliver and Operate OpenStack in Production with VMware VIO
Successfully Deliver and Operate OpenStack in Production with VMware VIO
Arraya Solutions
 
OpenStack-Ansible Project Update
OpenStack-Ansible Project UpdateOpenStack-Ansible Project Update
OpenStack-Ansible Project Update
Jesse Pretorius
 

What's hot (20)

Comparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Comparing IaaS: VMware vs OpenStack vs Google’s GanetiComparing IaaS: VMware vs OpenStack vs Google’s Ganeti
Comparing IaaS: VMware vs OpenStack vs Google’s Ganeti
 
OpenStack and Windows - What's new in Ocata
OpenStack and Windows - What's new in OcataOpenStack and Windows - What's new in Ocata
OpenStack and Windows - What's new in Ocata
 
dodai_grizzly.pdf
dodai_grizzly.pdfdodai_grizzly.pdf
dodai_grizzly.pdf
 
VIO30 Technical Overview
VIO30 Technical OverviewVIO30 Technical Overview
VIO30 Technical Overview
 
DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack
 
PaaS on top of CloudStack
PaaS on top of CloudStackPaaS on top of CloudStack
PaaS on top of CloudStack
 
Applying OpenStack at iNET use case
Applying OpenStack at iNET use caseApplying OpenStack at iNET use case
Applying OpenStack at iNET use case
 
CloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community worksCloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community works
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
Project RedDwarf - Database Services in the Cloud.pptx
Project RedDwarf - Database Services in the Cloud.pptxProject RedDwarf - Database Services in the Cloud.pptx
Project RedDwarf - Database Services in the Cloud.pptx
 
Does Hypervisor matter in OpenStack
Does Hypervisor matter in OpenStackDoes Hypervisor matter in OpenStack
Does Hypervisor matter in OpenStack
 
Cloud, Security and opensource 2012-12-28 at SSU
Cloud, Security and opensource 2012-12-28 at SSUCloud, Security and opensource 2012-12-28 at SSU
Cloud, Security and opensource 2012-12-28 at SSU
 
Openstack portal-bestpractices-campbell mcneill
Openstack portal-bestpractices-campbell mcneillOpenstack portal-bestpractices-campbell mcneill
Openstack portal-bestpractices-campbell mcneill
 
Bacd zenoss
Bacd zenossBacd zenoss
Bacd zenoss
 
New features in OpenNebula 5.4, Jaime Melis
New features in OpenNebula 5.4, Jaime MelisNew features in OpenNebula 5.4, Jaime Melis
New features in OpenNebula 5.4, Jaime Melis
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
 
Don't worry with bower
Don't worry with bowerDon't worry with bower
Don't worry with bower
 
Getting Safe Swiss Cloud up and running with CloudStack
Getting Safe Swiss Cloud up and running with CloudStackGetting Safe Swiss Cloud up and running with CloudStack
Getting Safe Swiss Cloud up and running with CloudStack
 
Successfully Deliver and Operate OpenStack in Production with VMware VIO
Successfully Deliver and Operate OpenStack in Production with VMware VIOSuccessfully Deliver and Operate OpenStack in Production with VMware VIO
Successfully Deliver and Operate OpenStack in Production with VMware VIO
 
OpenStack-Ansible Project Update
OpenStack-Ansible Project UpdateOpenStack-Ansible Project Update
OpenStack-Ansible Project Update
 

Similar to Interoperable OpenStack guest provisioning with Cloudbase-Init

OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise
Cisco Canada
 
Intro to Docker October 2013
Intro to Docker October 2013Intro to Docker October 2013
Intro to Docker October 2013Docker, Inc.
 
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and WindowsOpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
Alessandro Pilotti
 
OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016
Alexandru Coman
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013
Michael Lessard
 
Open stack + Containers + Hyper-V
Open stack + Containers + Hyper-VOpen stack + Containers + Hyper-V
Open stack + Containers + Hyper-V
Sriram Subramanian
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
Christian Posta
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk
Christian Posta
 
OpenstackOverview.pdf
OpenstackOverview.pdfOpenstackOverview.pdf
OpenstackOverview.pdf
KevinBuck30
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013dotCloud
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
dotCloud
 
Bitnami Bootcamp. OpenStack
Bitnami Bootcamp. OpenStackBitnami Bootcamp. OpenStack
Bitnami Bootcamp. OpenStack
Alberto Molina Coballes
 
Introduction to OpenStack Heat
Introduction to OpenStack HeatIntroduction to OpenStack Heat
Introduction to OpenStack Heatopenstackindia
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds up
Kiran Murari
 
Intro to Docker November 2013
Intro to Docker November 2013Intro to Docker November 2013
Intro to Docker November 2013Docker, Inc.
 
Practical PaaS presentation
Practical PaaS presentationPractical PaaS presentation
Practical PaaS presentation
hmalphettes
 

Similar to Interoperable OpenStack guest provisioning with Cloudbase-Init (20)

OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise
 
Intro to Docker October 2013
Intro to Docker October 2013Intro to Docker October 2013
Intro to Docker October 2013
 
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and WindowsOpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
 
OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013
 
Open stack + Containers + Hyper-V
Open stack + Containers + Hyper-VOpen stack + Containers + Hyper-V
Open stack + Containers + Hyper-V
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 
DR_PRESENT 1
DR_PRESENT 1DR_PRESENT 1
DR_PRESENT 1
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk
 
OpenstackOverview.pdf
OpenstackOverview.pdfOpenstackOverview.pdf
OpenstackOverview.pdf
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Bitnami Bootcamp. OpenStack
Bitnami Bootcamp. OpenStackBitnami Bootcamp. OpenStack
Bitnami Bootcamp. OpenStack
 
dodai grizzly
dodai grizzlydodai grizzly
dodai grizzly
 
Introduction to OpenStack Heat
Introduction to OpenStack HeatIntroduction to OpenStack Heat
Introduction to OpenStack Heat
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds up
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Intro to Docker November 2013
Intro to Docker November 2013Intro to Docker November 2013
Intro to Docker November 2013
 
Practical PaaS presentation
Practical PaaS presentationPractical PaaS presentation
Practical PaaS presentation
 

More from Alessandro Pilotti

Strategies for migrating workloads from VMware to OpenStack
Strategies for migrating workloads from VMware to OpenStackStrategies for migrating workloads from VMware to OpenStack
Strategies for migrating workloads from VMware to OpenStack
Alessandro Pilotti
 
Puppet + Windows Nano Server
Puppet + Windows Nano ServerPuppet + Windows Nano Server
Puppet + Windows Nano Server
Alessandro Pilotti
 
OpenStack + Nano Server + Hyper-V + S2D
OpenStack + Nano Server + Hyper-V + S2DOpenStack + Nano Server + Hyper-V + S2D
OpenStack + Nano Server + Hyper-V + S2D
Alessandro Pilotti
 
Building a Microsoft cloud with open technologies
Building a Microsoft cloud with open technologiesBuilding a Microsoft cloud with open technologies
Building a Microsoft cloud with open technologies
Alessandro Pilotti
 
An HTML5 client to connect to the Hyper-V console
An HTML5 client to connect to the Hyper-V consoleAn HTML5 client to connect to the Hyper-V console
An HTML5 client to connect to the Hyper-V console
Alessandro Pilotti
 
Hyper-V OpenStack Nova Compute
Hyper-V OpenStack Nova ComputeHyper-V OpenStack Nova Compute
Hyper-V OpenStack Nova ComputeAlessandro Pilotti
 
Drupal, Memcache and Solr on Windows
Drupal, Memcache and Solr on WindowsDrupal, Memcache and Solr on Windows
Drupal, Memcache and Solr on Windows
Alessandro Pilotti
 
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance OptimizationsPHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
Alessandro Pilotti
 
Managing Drupal on Windows with Drush
Managing Drupal on Windows with DrushManaging Drupal on Windows with Drush
Managing Drupal on Windows with Drush
Alessandro Pilotti
 
Building drupal web farms with IIS - part 1
Building drupal web farms with IIS - part 1Building drupal web farms with IIS - part 1
Building drupal web farms with IIS - part 1
Alessandro Pilotti
 
Windows Loves drupal
Windows Loves drupalWindows Loves drupal
Windows Loves drupal
Alessandro Pilotti
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Alessandro Pilotti
 

More from Alessandro Pilotti (12)

Strategies for migrating workloads from VMware to OpenStack
Strategies for migrating workloads from VMware to OpenStackStrategies for migrating workloads from VMware to OpenStack
Strategies for migrating workloads from VMware to OpenStack
 
Puppet + Windows Nano Server
Puppet + Windows Nano ServerPuppet + Windows Nano Server
Puppet + Windows Nano Server
 
OpenStack + Nano Server + Hyper-V + S2D
OpenStack + Nano Server + Hyper-V + S2DOpenStack + Nano Server + Hyper-V + S2D
OpenStack + Nano Server + Hyper-V + S2D
 
Building a Microsoft cloud with open technologies
Building a Microsoft cloud with open technologiesBuilding a Microsoft cloud with open technologies
Building a Microsoft cloud with open technologies
 
An HTML5 client to connect to the Hyper-V console
An HTML5 client to connect to the Hyper-V consoleAn HTML5 client to connect to the Hyper-V console
An HTML5 client to connect to the Hyper-V console
 
Hyper-V OpenStack Nova Compute
Hyper-V OpenStack Nova ComputeHyper-V OpenStack Nova Compute
Hyper-V OpenStack Nova Compute
 
Drupal, Memcache and Solr on Windows
Drupal, Memcache and Solr on WindowsDrupal, Memcache and Solr on Windows
Drupal, Memcache and Solr on Windows
 
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance OptimizationsPHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
 
Managing Drupal on Windows with Drush
Managing Drupal on Windows with DrushManaging Drupal on Windows with Drush
Managing Drupal on Windows with Drush
 
Building drupal web farms with IIS - part 1
Building drupal web farms with IIS - part 1Building drupal web farms with IIS - part 1
Building drupal web farms with IIS - part 1
 
Windows Loves drupal
Windows Loves drupalWindows Loves drupal
Windows Loves drupal
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

Interoperable OpenStack guest provisioning with Cloudbase-Init

  • 2. OpenStack An open source IaaS project – Apache 2 license Managed by the OpenStack Foundation – More than 150 companies joined it including: – AMD, Intel, Canonical, SUSE Linux, Red Hat, Cisco, Dell, HP, IBM, NEC, Vmware Portable – Mostly used on Linux Written in Python
  • 3. Releases Very aggressive schedule – • Essex – – • Apr 2013 Havana – • October 2012 Cloudbase Solutions involvement - Hyper-V re-included  Grizzly – • Apr 2012 Hyper-V removed Folsom – – • Twice a year October 2013 Icehouse – Apr 2014
  • 4. OpenStack Architecture • Distributed Components – Can be deployed on a single server or multiple servers • Public RESTful API – Bindings available for various languages (including .Net) • Queues (AMQP) for private APIs – Great scalability • Relational DBs for storing the configuration – MySQL, PostgreSQL, SQLite (and SQL server) • UI – CLI tools – Web dashboard
  • 5. Components Compute (Nova) Object Storage (Swift) Block Storage (Cinder) Image Service (Glance) Networking (Neutron) Dashboard (Horizon) Identity (Keystone) Metering (Ceilometer) Orchestration (Heat)
  • 8. Component interaction • AMQP – RabbitMQ – Apache Qpid • API – RESTful services • Database – Any Python SQLAlchemy provider – Mostly MySQL – SQL Server required various bug fixes
  • 9. And now the guests • Nova’s IaaS role ends in the moment in which the VM boots. • What happens afterwards, is something that the guest OS has to sort out. • Clouds need to support a variety of guest operating systems: – – – – Linux (Ubuntu, RHEL / CentOS and lots more) Windows Server (and workstation for VDI) FreeBSD etc
  • 10. Guest init actions • • • • Setting the host name Manage users / groups Configure network Deploy ssh keys for public key auth – Passwords are BAD! • Extend partitions automatically • Run custom scripts • (and more)
  • 11. Config data? • Passing configuration data to the guest is tricky – Remember: no networking yet! • The “classic” EC2 approach – A url on a magic IP http://169.254.169.254 – Various HTTP metadata format exists • e.g. EC2, OpenStack (Nova) • An ISO image (ConfigDrive) – File system reflects the content available via HTTP
  • 12. Multi platform support • This is the really tricky part • IaaS components (e.g. Nova) don’t care about the guest OS • Doing provisioning in Linux differs from Windows and from FreeBSD • cloud-init works on Linux – Too tightly coupled with the OS – Porting is very though • So we had to start a new project 
  • 13. Cloudbase-Init • Standard de facto on Windows OpenStack deployments • Ported to FreeBSD as well: – https://github.com/pellaeon/bsd-cloudinit • “Made in TM”, like the rest of the Cloudbase stuff  • 100% Python code
  • 14. Architecture • Needs to be completely decoupled from the OS – Must be portable to any OS • Highly extensible model • Basic UML class diagram: – https://drive.draw.io/#G0B6gjkOr4OobDQnVHY0 QyQ2pSVlE
  • 15. Tricky Windows parts • CPython works great on Windows – Lots of modules for basic OS integration • What to do when we need to go “deeper”? – PyWin32 • COM • Wraps lots of Win32 APIs – PythonNet • .Net • Not to be confused with IronPython! – WMI • CIM implementation – Ctypes • • • • Direct Win32 calls Very flexible Can be tedious to code Similar to .Net PInvoke
  • 16. Examples -WMI • Win32_NetworkAdapter – https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/osutils/windows.py #L340
  • 17. Examples - ctypes • Win32 - VerifyVersionInfoW – https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/osutils/windows.py #L557 • Portable - openssl API – https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/utils/crypt.py#L124
  • 18. Examples COM • COM exposes properties and methods via getattr / setattr • Volumes management – https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/plugins/windows/v ds.py#L322 – https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/plugins/windows/e xtendvolumes.py#L161
  • 19. Logging to serial port • Fact: serial ports never grow old  • Clouds use often serial ports to communicate between hypervisors and guests – E.g. OpenStack with KVM • Linux can easily use serial ports for console I/O – That’s how Unix was used in the old days 
  • 20. pyserial • Windows does not log to serial port • Serial port can be integrated into Python’s logging – https://github.com/cloudbase/cloudbaseinit/blob/master/cloudbaseinit/utils/log.py#L34 • By adding this Log Handler, anytime you issue a LOG.info/warn/error etc it will be logged to serial port and collected by KVM (for example)
  • 21. Q&A