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.
Ansible Tower Integration
Brandon Dunne, Drew Bomhof
Introductions
Brandon Dunne
Email: bdunne@redhat.com
Github: bdunne
Drew Bomhof
Email: dbomhof@redhat.com
Github: syncrou
...
Agenda
Introduction
Use Cases
Implementation
Demo
Future
Q&A
Intro - What is Ansible?
Ansible is a software platform for configuring and managing computers which
combines software dep...
Intro - What is Ansible Tower?
- Web UI and REST API
- Jobs launched based on Job Templates (fewer details required from t...
Intro - Another Configuration Manager
Foreman:
- Bare-metal provisioning integration with ManageIQ
- Desired State configu...
Implemented Use Cases
- Basic Inventory
- Ansible Tower as a service
- Custom Button
- Enhance provisioning state machines
Implementation - AnsibleTowerClient Gem
- Ansible Tower has a browsable API making development easy
- Simple API wrapper t...
Implementation in ManageIQ (Modeling)
ManageIQ AnsibleTower Foreman (Satellite 6)
Configured System Host Host
Configuratio...
Implementation in ManageIQ (Refresh)
Inventory (Root) Group
- name, ems_ref (id)
Configuration Scripts (Job Templates)
- d...
Adding a new provider
Configuration Management menu
Adding a new provider
Adding a new provider
Type selection:
URL can be a URL or hostname, we’ll fill in
the missing pieces and save as a URL
Inventory
Provider
Inventory Group
Configured Systems
Inventory
Limited Inventory, based on what is required to support current use cases.
Configured System to VM link data col...
Inventory - Configuration Script Summary
Custom Buttons
Navigate to Automate / Customization
Select VM and Instance / [Unassigned Buttons]
Configuration / Add a ne...
Custom Buttons
Request Type is Ansible_Tower_Job
Here you can select the Job Template by name
Params prefixed by “dialog_p...
Custom Buttons
Add a new Button Group
Fill in the fields, add your button
Custom Buttons
Service Dialogs
A Service Dialog can be created from any Job
Template
Service Dialogs
Give the Dialog a name
Navigate to Services
Catalog Items
Add a new Catalog Item
Service Dialogs
Give the Service Catalog a name and
description
Select the Catalog
Select the just created dialog
Select t...
Service Dialogs
- Default creation includes all survey data, variables and limit
- Fields can be modified as below to matc...
Demo
- Awesome Demo
Future
- Eventing, could poll Activity Stream for events to trigger refreshes
- More use cases to drive inventory collecti...
Q&A
Link to Talk topic:
http://talk.manageiq.org/t/launching-ansible-tower-job-templates-from-
manageiq/1394
Sprint 39 Dem...
Upcoming SlideShare
Loading in …5
×

Ansible Tower - Drew Bomhof, Brandon Dunne - ManageIQ Design Summit 2016

927 views

Published on

Ansible Tower Integration with ManageIQ by Drew Bomhof and Brandon Dunne at ManageIQ Design Summit 2016

EC2 Minecraft Demo: https://youtu.be/hdTBpNkzWGk

Published in: Technology
  • Be the first to comment

Ansible Tower - Drew Bomhof, Brandon Dunne - ManageIQ Design Summit 2016

  1. 1. Ansible Tower Integration Brandon Dunne, Drew Bomhof
  2. 2. Introductions Brandon Dunne Email: bdunne@redhat.com Github: bdunne Drew Bomhof Email: dbomhof@redhat.com Github: syncrou Greg Mccullough Email: gmccullough@redhat.com Github: gmcculloug
  3. 3. Agenda Introduction Use Cases Implementation Demo Future Q&A
  4. 4. Intro - What is Ansible? Ansible is a software platform for configuring and managing computers which combines software deployment, ad-hoc task execution, and configuration management. - CLI Interface - Uses SSH or WinRM to connect to host systems - One-off or script based Playbook execution - Automate IT infrastructure and system configurations
  5. 5. Intro - What is Ansible Tower? - Web UI and REST API - Jobs launched based on Job Templates (fewer details required from the user) - Dynamic inventory from Inventory Sources (Cloud / Virt) - User permission system to allow delegation to users without access to credential properties - Can dynamically update playbook on Job Template launch
  6. 6. Intro - Another Configuration Manager Foreman: - Bare-metal provisioning integration with ManageIQ - Desired State configuration, relies on scheduled checkins - Agent based, driven from the agent, uses Puppet Ansible Tower: - Used to configure new and existing systems - One-off or Scheduled Jobs based on Job Templates - Drives configuration through local Ansible installation
  7. 7. Implemented Use Cases - Basic Inventory - Ansible Tower as a service - Custom Button - Enhance provisioning state machines
  8. 8. Implementation - AnsibleTowerClient Gem - Ansible Tower has a browsable API making development easy - Simple API wrapper to provide Ruby classes for each object type - Methods are dynamically built based on the API content for the object type allowing the gem to adapt as new features are added - Collection paging is implemented with lazy enumerators. Allows for quick initial results without the hassle of users requesting the next page
  9. 9. Implementation in ManageIQ (Modeling) ManageIQ AnsibleTower Foreman (Satellite 6) Configured System Host Host Configuration Profile N/A Host Group Configuration Script Job Template Puppet Script? (Not implemented in MIQ) Orchestration Stack Job Reports? (Not Implemented in MIQ)
  10. 10. Implementation in ManageIQ (Refresh) Inventory (Root) Group - name, ems_ref (id) Configuration Scripts (Job Templates) - description, inventory_root_group (inventory relation), manager_ref (id), name, survey_spec, variables (extra_vars) Configured Systems (Hosts) - manager_ref (id), hostname (name), inventory_root_group (inventory relation), virtual_instance_ref (Cloud / Infra Provider ID) - Cross provider link to existing VM / Instance
  11. 11. Adding a new provider Configuration Management menu Adding a new provider
  12. 12. Adding a new provider Type selection: URL can be a URL or hostname, we’ll fill in the missing pieces and save as a URL
  13. 13. Inventory Provider Inventory Group Configured Systems
  14. 14. Inventory Limited Inventory, based on what is required to support current use cases. Configured System to VM link data collected, not exposed in the UI yet.
  15. 15. Inventory - Configuration Script Summary
  16. 16. Custom Buttons Navigate to Automate / Customization Select VM and Instance / [Unassigned Buttons] Configuration / Add a new Button
  17. 17. Custom Buttons Request Type is Ansible_Tower_Job Here you can select the Job Template by name Params prefixed by “dialog_param_” PR#8960
  18. 18. Custom Buttons Add a new Button Group Fill in the fields, add your button
  19. 19. Custom Buttons
  20. 20. Service Dialogs A Service Dialog can be created from any Job Template
  21. 21. Service Dialogs Give the Dialog a name Navigate to Services Catalog Items Add a new Catalog Item
  22. 22. Service Dialogs Give the Service Catalog a name and description Select the Catalog Select the just created dialog Select the provider Select the Job Template The pre-populated entry point is the default state machine
  23. 23. Service Dialogs - Default creation includes all survey data, variables and limit - Fields can be modified as below to match the desired needs of the delivered service (from Automate, Customization, Service Dialogs) ‘Limit’ was pulled out for this service dialog Navigate to Service Catalogs - click Order
  24. 24. Demo - Awesome Demo
  25. 25. Future - Eventing, could poll Activity Stream for events to trigger refreshes - More use cases to drive inventory collection
  26. 26. Q&A Link to Talk topic: http://talk.manageiq.org/t/launching-ansible-tower-job-templates-from- manageiq/1394 Sprint 39 Demo (Ansible Tower features): https://www.youtube.com/watch?v=uZYzX4ZqTEQ#t=44m07s Minecraft Playbook: https://github.com/syncrou/minecraft-pe-ec2-ansible

×