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.

0

Share

Deploy uyuni with sumaform

A presentation about how to deploy uyuni using sumaform

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Deploy uyuni with sumaform

  1. 1. Required Magic advanced technology Deploying Uyuni with Sumaform How to use IaC to deploy test environments for Uyuni project
  2. 2. About me Ricardo Mateus Software Engineer SUSE Manager Team UYUNI Community rjmateus @ gitter.im rmateus@suse.com
  3. 3. Agenda ● Uyuni Project ● Uyuni deployment ● Sumaform – Architecture – Modules – Demo
  4. 4. Agenda ● Uyuni Project ● Uyuni deployment ● Sumaform – Architecture – Modules – Demo
  5. 5. What? ● Systems management – System deployment – Patch management – Service Pack migration – Configuration management *https://www.uyuni-project.org/uyuni-docs/
  6. 6. What? ● Systems management – System deployment – Patch management – Service Pack migration – Configuration management ● Automate audit and reporting capabilities ● Hardware and software inventories *https://www.uyuni-project.org/uyuni-docs/
  7. 7. Supported Client OS ● SLE11/12/15 ● RHEL6/7/8 ● openSUSE Leap 15 ● Ubuntu 16.04/18.04/20.04 ● CentOS6/7/8 ● Debian 9/10 ● Oracle Linux 6/7/8
  8. 8. Agenda ● Uyuni Project ● Uyuni deployment ● Sumaform – Architecture – Modules – Demo
  9. 9. Deployment Architecture
  10. 10. Deployment Needs ● Development team – Bug Fixing: replicate bug environment – Test new feature development
  11. 11. Deployment Needs ● Development team – Bug Fixing: replicate bug environment – Test new feature development ● QA team – Manual testing – Run cucumber base test-suite
  12. 12. What these architectural needs really mean?
  13. 13. UYUNI Server
  14. 14. Controller UYUNI Server
  15. 15. Controller UYUNI Server
  16. 16. Controller UYUNI Server
  17. 17. Controller Client UYUNI Server
  18. 18. Controller ClientClient UYUNI Server
  19. 19. Client Controller ClientClient UYUNI Server
  20. 20. Client Controller ClientClient UYUNI Server ClientClient
  21. 21. Client Controller ClientClientClient Client UYUNI Server ClientClient
  22. 22. Client Controller Client ClientClient Client UYUNI Server ClientClient ClientClient
  23. 23. Client Controller Client ClientClient UYUNI Proxy Client UYUNI Server ClientClient ClientClient
  24. 24. Client Client Controller Client ClientClient UYUNI Proxy Client UYUNI Server ClientClient ClientClient
  25. 25. Client Client Controller Client ClientClient UYUNI Proxy ClientClient Client UYUNI Server ClientClient ClientClient
  26. 26. Client Client Controller Client ClientClient UYUNI Proxy ClientClient Monitoring Server Client UYUNI Server ClientClient ClientClient
  27. 27. Client Client Controller Client ClientClient UYUNI Proxy ClientClient Image Builder Monitoring Server Client UYUNI Server ClientClient ClientClient
  28. 28. Client Client Controller Client ClientClient UYUNI Proxy ClientClient Image Builder Monitoring Server Branch Server Client UYUNI Server ClientClient ClientClient
  29. 29. Client Client Controller Client ClientClient UYUNI Proxy ClientClient POS Client Image Builder Monitoring Server Branch Server Client UYUNI Server ClientClient ClientClient
  30. 30. Mirror Client Client Controller Client ClientClient UYUNI Proxy ClientClient POS Client Image Builder Monitoring Server Branch Server Client UYUNI Server ClientClient ClientClient
  31. 31. Mirror Client Client Controller Client ClientClient UYUNI Proxy ClientClient POS Client Image Builder Monitoring Server Branch Server Client UYUNI Server ClientClient ✶: optional ClientClient ✶ ✶ ✶✶ ✶✶✶ ✶✶
  32. 32. Mirror Client Client Controller Client ClientClient UYUNI Proxy ClientClient POS Client Image Builder Monitoring Server Branch Server Client UYUNI Server ClientClient ✶: optional ✶: multiple versions ClientClient ✶ ✶ ✶✶ ✶✶✶ ✶✶ ✶ ✶✶ ✶✶✶ ✶✶
  33. 33. Test-suite Deployments ● >4 versions, 1000 tests, tens of runs per day
  34. 34. Test-suite Deployments ● >4 versions, 1000 tests, tens of runs per day ● >240 VM deployments per day ● 2 physical locations + AWS
  35. 35. Manual deployment is not an option.
  36. 36.  Infrastructure as Code (IaC)
  37. 37.  Infrastructure as Code (IaC)  Configuration as Code (CaC)
  38. 38.  Infrastructure as Code (IaC)  Configuration as Code (CaC) +
  39. 39. Agenda ● Uyuni Project ● Uyuni deployment ● Sumaform – Architecture – Modules – Demo
  40. 40. What is? “Sumaform provides UYUNI-specific Terraform modules that leverage OS base images and Salt states to deliver a complete solution: from VM creation to installation of the product to configuration.” * Silvio Moioli, SUSE Manager Development Team
  41. 41. Architecture + +
  42. 42. ● Infrastructure as Code (IaC) – Deploy virtual machines – Manage resources life-cycle ● Domain specific modules ● Provisioning – Copy salt resources and apply state Terraform
  43. 43. Terraform Modules ● Notion of backend independent modules – server – proxy – minon – ... ● Two modules for each supported provider – Base – Host Provider Independent Modules Provider Specific Modules
  44. 44. Supported providers (backends) * run provisioning on existing machines (null provider) Soon!
  45. 45. OS image + cloud init ● Public JeOS images ● Cloud init: bring machine to “known base” – Install "salt-minion" package – Allow ssh login
  46. 46. Salt (CaC) ● Salt states for each machine role ● Parameters for customization – auto-register (on server) – additional repositories
  47. 47. Code example provider "libvirt" { uri = "qemu:///system" } module "base" { source = "./modules/base" cc_username = "..." cc_password = "..." name_prefix = "uyuni-" domain = "tf.local" images = ["opensuse152"] use_avahi = true } module "server" { source = "./modules/server" base_configuration = module.base.configuration product_version = "uyuni-released" name = "server" } module "min-opensuse" { source = "./modules/minion" base_configuration = module.base.configuration product_version = "uyuni-released" name = "opensuse" image = "opensuse152" server_configuration = module.server.configuration }
  48. 48. Code example provider "libvirt" { uri = "qemu:///system" } module "base" { source = "./modules/base" cc_username = "..." cc_password = "..." name_prefix = "uyuni-" domain = "tf.local" images = ["opensuse152"] use_avahi = true } module "server" { source = "./modules/server" base_configuration = module.base.configuration product_version = "uyuni-released" name = "server" } module "min-opensuse" { source = "./modules/minion" base_configuration = module.base.configuration product_version = "uyuni-released" name = "opensuse" image = "opensuse152" server_configuration = module.server.configuration }
  49. 49. Demo time..
  50. 50. Q&A
  51. 51. Join Us at uyuni-project.org /uyuni-project /uyuni-project /UyuniProject
  52. 52. All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 4.0 License (unless otherwise specified). “LibreOffice” and “The Document Foundation” are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these thereof is subject to trademark policy. Finish Thank You

A presentation about how to deploy uyuni using sumaform

Views

Total views

581

On Slideshare

0

From embeds

0

Number of embeds

496

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×