Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
MAAS and Juju
Introduction
Leonardo Borda
Technical Account Manager
Presented at the:
http://www.devopsmtl.com
March 2014
1 2
3 4
A few things about Canonical
+ INTRODUCTION
MAAS Juju
Hands-on demo Questions!
Agenda
A few things
about Canonical
We are the company
behind Ubuntu.
EMPLOYEES
London
Boston
Shanghai
Taipei
600+ COUNTRIES
30+FOUNDED
2004
Beijing Tokyo
MAAS
Desktop, Tablet
& Mobile Ubuntu
Server & Cloud
Infrastructure
Two main areas
Ubuntu
The Cloud OS
OpenStack
The Cloud Infrastructure
What we offer
Juju
Service Orchestration
Landscape
Cloud Management
MAAS
Hardware provisioning with Metal-As-A-
Service
1
Physical servers on demand
easily scale up and scale down
2
Hardware discovery and inventory
for policy based management...
Do I really need MAAS ??
Texas Advanced Computing Center
Texas Advanced Computing Center
MAAS : Metal As A Service
MAAS : Metal As A Service
I like the old way. Okay?!
- setup pxeboot, tftp
- setup dhcpd, bind
- setup preseed files, .ks,...
MAAS : Metal As A Service
MAAS Architecture
CLUSTER
CONTROLLER
TFTP
(PXE)
DHCP
CLUSTER
NODES
CLUSTER
CONTROLLER
TFTP
(PXE)
DHCP
CLUSTER
NODES
REGION...
1 2 3
Rapid provisioning at cloud scale
3-step provisioning process
Install MAAS
on first server
Discover
Nodes
Power on
N...
1
2
3
Hardware provisioning workflow
Enlistment
Commissionin
g
Provisioning
DHCP boot in an ephemeral environment
Register...
Installing MAAS
Two options:
- from the Ubuntu Server boot media
- from the archive ( described below )
$ ssh-keygen -t rs...
Installing MAAS continued...
Configuring DHCP and DNS.
$ uuid=$(maas <profile-name> node-groups list | grep uuid | cut -d"...
How to help or get helped
The two channels you can use to get help debugging a MAAS issue are:
❏ The Ask Ubuntu website.
❏...
Automating workloads
with Juju
Applications.
Anywhere.
Instantly.
Application deployment at radical velocity
What can you do with Juju ? On which platforms ?
Deploy
Scale-Out Integrate
Clo...
What’s Juju anyways?
Deb Packages (host level) Your infrastructure (services)
$ apt-get install -y cowsay $ juju deploy <m...
The best solution to orchestrate your services
Why use Juju?
Ease of provisioning
Pluggable provisioning backend, from
loc...
Bundle charms and instantly deploy these solutions
Charms package services
Service definition Instant deployment
Encapsula...
Create charms and deploy your services
Anatomy of a Charm
Charm Tools Instant deployment
my-charm
├── config.yaml
├── hook...
Hundreds of charms are available today
A growing Charm ecosystem
Charms are rated and reviewed
for quality assurance
Drag ...
Juju GUI Store
Configure and manage your services
Juju Architecture
Juju Client
(HTML5, UI, CLI)
Juju State Server (in HA mode)
Deployment Environment
Provisioning
Server
A...
Installing Juju
1. Install Juju
$ ssh-keygen -t rsa (if you don’t have one)
$ sudo add-apt-repository ppa:juju/stable
$ su...
How to help or get helped
The three channels you can use to get help debugging a MAAS issue are:
❏ The Ask Ubuntu website....
DEMO
- Deploy wordpress using MAAS + Juju
- Scale up
- Scale down
Other cool stuff
- Running juju locally on lxc container...
Questions ?
4
Leonardo Borda
leonardoborda@gmail.com / leonardo.borda@canonical.com
#IRC-freenode: lborda
blog: http://leonardoborda.com...
DevOpsMtl, Metal edition – MaaS and Juju
Upcoming SlideShare
Loading in …5
×

DevOpsMtl, Metal edition – MaaS and Juju

10,302 views

Published on

MAAS and Juju Introduction
Description: Introduction to MAAS and Juju. Metal As A Service brings the language of the cloud to physical servers. In other words it delivers real Hardware equipment on demand. MAAS works closely with the service orchestration tool Juju to make deploying services fast, reliable, repeatable and scalable.
Language: English with snippets of French in the middle.

Published in: Technology

DevOpsMtl, Metal edition – MaaS and Juju

  1. 1. MAAS and Juju Introduction Leonardo Borda Technical Account Manager Presented at the: http://www.devopsmtl.com March 2014
  2. 2. 1 2 3 4 A few things about Canonical + INTRODUCTION MAAS Juju Hands-on demo Questions! Agenda
  3. 3. A few things about Canonical
  4. 4. We are the company behind Ubuntu.
  5. 5. EMPLOYEES London Boston Shanghai Taipei 600+ COUNTRIES 30+FOUNDED 2004 Beijing Tokyo
  6. 6. MAAS Desktop, Tablet & Mobile Ubuntu Server & Cloud Infrastructure Two main areas
  7. 7. Ubuntu The Cloud OS OpenStack The Cloud Infrastructure What we offer Juju Service Orchestration Landscape Cloud Management
  8. 8. MAAS Hardware provisioning with Metal-As-A- Service
  9. 9. 1 Physical servers on demand easily scale up and scale down 2 Hardware discovery and inventory for policy based management 3 Orchestration of workloads via Juju on bare metal hardware. MAAS : Metal As A Service MAAS Brings the language of the cloud to physical servers.
  10. 10. Do I really need MAAS ??
  11. 11. Texas Advanced Computing Center
  12. 12. Texas Advanced Computing Center
  13. 13. MAAS : Metal As A Service
  14. 14. MAAS : Metal As A Service I like the old way. Okay?! - setup pxeboot, tftp - setup dhcpd, bind - setup preseed files, .ks, scripts, etc... Drawbacks: - No fancy GUI - No API - No 3-step provisioning process - No Hardware inventory
  15. 15. MAAS : Metal As A Service
  16. 16. MAAS Architecture CLUSTER CONTROLLER TFTP (PXE) DHCP CLUSTER NODES CLUSTER CONTROLLER TFTP (PXE) DHCP CLUSTER NODES REGION CONTROLLER Highly available WEB UI API Cross data centers provisioning and visibility Controllers deployment in HA mode Supports cluster grouping constructs to provide visibility into large pools of hardware API and UI interfaces Landscape Integration to deliver role-based access controls, higher level view
  17. 17. 1 2 3 Rapid provisioning at cloud scale 3-step provisioning process Install MAAS on first server Discover Nodes Power on Nodes Automatically discover nodes Enlist nodes via PXE boot or manually enter MAC addresses Hypervisor or OS provisioned automatically
  18. 18. 1 2 3 Hardware provisioning workflow Enlistment Commissionin g Provisioning DHCP boot in an ephemeral environment Register with cluster controller Adds temporary IPMI MAAS credentials to BMC Boot in a ephemeral environment Hardware inventoried Permanent IPMI MAAS credentials set in BMC Other user-commissioning actions (firmware configuration, smoke tests, etc.) Happens when a node is requested Installs requested Ubuntu version
  19. 19. Installing MAAS Two options: - from the Ubuntu Server boot media - from the archive ( described below ) $ ssh-keygen -t rsa $ sudo add-apt-repository cloud-archive:tools $ sudo apt-get update; sudo apt-get upgrade $ sudo apt-get install maas maas-dhcp maas-dns Post-install tasks $ sudo maas createadmin --username=root --email=MYEMAIL@EXAMPLE.COM Get the MAAS Api Key <key> through the GUI or through this hack script $ maas login <profile-name> http://<hostname_or_ip>/MAAS/api/1.0 <key> Add user’s ssh key $ pub=$(cat /home/lborda/.ssh/id_rsa.pub) $ maas-cli maas sshkeys new "key=${pub}" $ maas-cli maas sshkeys read <id> ...
  20. 20. Installing MAAS continued... Configuring DHCP and DNS. $ uuid=$(maas <profile-name> node-groups list | grep uuid | cut -d" -f4) $ maas <profile-name> node-group-interface update $uuid eth0 ip_range_high=192.168.123.200 ip_range_low=192.168.123.100 management=2 broadcast_ip=192.168.123.255 router_ip=192.168.123.1
  21. 21. How to help or get helped The two channels you can use to get help debugging a MAAS issue are: ❏ The Ask Ubuntu website. ❏ The Freenode #maas IRC channel. Report bugs: ❏ https://bugs.launchpad.net/maas Check out MAAS it’s open source: ❏ https://launchpad.net/maas
  22. 22. Automating workloads with Juju Applications. Anywhere. Instantly.
  23. 23. Application deployment at radical velocity What can you do with Juju ? On which platforms ? Deploy Scale-Out Integrate Clouds Bare Metal Linux Containers
  24. 24. What’s Juju anyways? Deb Packages (host level) Your infrastructure (services) $ apt-get install -y cowsay $ juju deploy <my_custom_app> juju provides you with sharable, reusable, and repeatable expressions of devops best practices
  25. 25. The best solution to orchestrate your services Why use Juju? Ease of provisioning Pluggable provisioning backend, from local machines to large clouds Event-based React to changes in environment, self configuring Scalable Templates designed to scale by adding more units Language independence Hooks can be written in any language
  26. 26. Bundle charms and instantly deploy these solutions Charms package services Service definition Instant deployment Encapsulate application configurations Define service scalability hooks Define service deployment 1 2 3 Deploy services $ juju deploy wordpress $ juju deploy mysql Create relationships $ juju add-relation wordpress mysql Expose app to the outside world $ juju expose wordpress Scale out the application $ juju add-unit -n 5 wordpress Scale down the application $ juju remove-unit -n 2 wordpress
  27. 27. Create charms and deploy your services Anatomy of a Charm Charm Tools Instant deployment my-charm ├── config.yaml ├── hooks │ ├── config-changed │ ├── install │ ├── relation-name-relation-broken │ ├── relation-name-relation-changed │ ├── relation-name-relation- departed │ ├── relation-name-relation-joined │ ├── start │ ├── stop │ └── upgrade-charm ├── icon.svg ├── metadata.yaml ├── README.ex └── revision $ sudo add-apt-repository ppa:juju/stable $ sudo apt-get update $ sudo apt-get install charm-tools $ juju charm create my-charm
  28. 28. Hundreds of charms are available today A growing Charm ecosystem Charms are rated and reviewed for quality assurance Drag and drop Charms to create services Support for private and mixed mode Charm store Publicly available Charm Store ...
  29. 29. Juju GUI Store Configure and manage your services
  30. 30. Juju Architecture Juju Client (HTML5, UI, CLI) Juju State Server (in HA mode) Deployment Environment Provisioning Server API Server Provisioning Server API Server Mongo Mongo Compute Instance Compute LXCWorkloadJuju Agent LXC KVM Juju Agent Workload
  31. 31. Installing Juju 1. Install Juju $ ssh-keygen -t rsa (if you don’t have one) $ sudo add-apt-repository ppa:juju/stable $ sudo apt-get update && sudo apt-get install juju-core 2. Generate base ~/.juju/environments.yaml configuration file $ juju generate-config 3. Configure to use a particular cloud provider. Modify ~/.juju/environments.yaml to suite one or more of the following cloud providers: ● Configuring for Amazon AWS ● Configuring for Windows Azure ● Configuring for HP Cloud ● Configuring for OpenStack ● Configuring for MAAS ● Configuring for LXC local provider (Linux) 3. Final step: bootstrap the environment $ juju bootstrap -v $ juju status 4. If you want to destroy the environment $ juju destroy-environment
  32. 32. How to help or get helped The three channels you can use to get help debugging a MAAS issue are: ❏ The Ask Ubuntu website. ❏ Join the mailing list. ❏ The Freenode #juju IRC channel. Report bugs: ❏ Report Bugs Check out Juju it’s open source: ❏ https://launchpad.net/juju-core
  33. 33. DEMO - Deploy wordpress using MAAS + Juju - Scale up - Scale down Other cool stuff - Running juju locally on lxc containers 3
  34. 34. Questions ? 4
  35. 35. Leonardo Borda leonardoborda@gmail.com / leonardo.borda@canonical.com #IRC-freenode: lborda blog: http://leonardoborda.com Thank you!!

×