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.

Automate - Madhu Kanoor, Greg McCullough - ManageIQ Design Summit 2016

397 views

Published on

Automate by Madhu Kanoor and Greg McCullough at ManageIQ Design Summit 2016

Git Integration demo: https://youtu.be/hntHJk4uTqs
Expression Methods demo: https://youtu.be/YQoNBkzPePU

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Automate - Madhu Kanoor, Greg McCullough - ManageIQ Design Summit 2016

  1. 1. Automate Madhu Kanoor, Greg McCullough
  2. 2. Agenda Recently Added Features Future Enhancements
  3. 3. Recently Added Features RBAC METHOD:: .missing - (instance_name)
  4. 4. RBAC Automate Methods should only be allowed to see objects that they can access based on Tenant. Backward Compatibility ● Enable RBAC $evm.enable_rbac ● Disable RBAC $evm.disable_rbac ● Query RBAC $evm.rbac_enabled? Default Setting ● Disabled
  5. 5. RBAC Future Version ● Global Automate configuration ○ Strict (Default) ○ Method controlled ○ Disabled
  6. 6. METHOD:: ● Optionally allows a state field to directly contain a method ● Methods can be stored in the same class Advantages ● Don’t need method instances to accompany each method ● Reduces the number of instances in the Automate Database
  7. 7. METHOD:: Before: After:
  8. 8. METHOD::
  9. 9. .missing - (instance_name) The .missing instance contains default values for use when an instance is not found. ● A new attribute _missing_instance contains the name of the original instance ● Can be used in substitution e.g ${#_missing_instance} ● This attribute is only available on the .missing instance
  10. 10. .missing - (instance_name) Advantages ● Reduces the number of instances in Automate ● Can be substituted into any field
  11. 11. _missing_instance /ConfigurationManagement/AnsibleTower/Operations/JobTemplate/MyTemplate .missing If MyTemplate doesn’t exist _missing_instance = MyTemplate
  12. 12. Future Enhancements Git integration Expression Method Consolidated Email Enhanced state-machine messaging State-machine stats Custom buttons - Multiple Items Scheduled Automate Tasks
  13. 13. Git Integration ● Import an Automate Domain from Git Repositories ● User can select a Branch or Tag ● Automate Model stored in Postgres DB and shared between appliances ● Branches and Tags stored in Postgres DB ● Domains are locked ● Sync overwrites existing domain
  14. 14. ● A single appliance acts as a Git Owner ● Refresh and Import calls get routed to the Git Owner Appliance ● Rest API call to initiate domain updates Git Integration
  15. 15. Git Integration Appliance1 Appliance 2 Appliance 3 Appliance 4 Repos Postgres Repos
  16. 16. Git Integration Demo
  17. 17. Expression Method New Automate Method that uses Expressions ● Expression Method runs inside the Automate Engine ● Ideal for Dynamic Dialogs ● Results can be processed as Hash, Array ● RBAC enforced ● Expression stored in Automate model ● Works on a single database object Advantages: ● Performance - No DRb overhead
  18. 18. Comparison of Expression Method Engine DRb (Server) DRb (Client) Method Script Postgres Engine Regular Automate Method Automate Expression Method
  19. 19. Editing Expression Methods
  20. 20. Sample
  21. 21. Expression Method ● Demo
  22. 22. Email Consolidation ● Uses a single built-in method ● Define email parameters in instance ● Fetch values from config object ● Default implementation does not require scripts
  23. 23. Model Comparison Classes Instances External Methods Built-in Methods Current Model 15 41 39 1 Consolidated 1 61 0 1
  24. 24. New Email Class and Instances
  25. 25. New Email Schema
  26. 26. Sample Email Instance
  27. 27. New features to support Consolidated Email ● Null Coalescing Operator ● Substitution support for methods with arguments ● Accessing VMDB Objects from model
  28. 28. Null Coalescing Operator ● Multiple String values separated by “||” ● Evaluated on new attribute data type “Null Coalescing” ● Order dependent, left to right evaluation ● First non-blank value is used ● Skip and warn about missing objects e.g. ${/#owner.email} || ${/#miq_request.get_option(:owner_email)} || ${/#miq_request.requester.email} || ${/#config.to_email_address}
  29. 29. Substitution enhancement ● Support methods with arguments ● ${/#miq_request.get_option(:owner_email)}
  30. 30. Accessing VMDB objects ● Class Schema allows for the following new data types ○ EMS (Provider) ○ Host ○ Policy ○ Provision ○ Request ○ Server ○ Storage ○ User ○ VM (or Template)
  31. 31. Enhanced State Machine Messaging ● Adopted Kevin Morey’s update_provision_status method enhancements Sample
  32. 32. State Machine Runtime Statistics ● Record the following stats when we execute a state ○ Start Time ○ End Time ○ Number of Retries ○ Status (ok/retry/warn/error) ○ Server IDs where it was executed ● State Machine Visualizer ○ During execution
  33. 33. Additional Items ● Custom Button Multi Select ○ Allow user to select multiple items (vm, host, …) ● Rest Integration ○ RBAC ● Running automate methods inside a docker container ○ Security ● Schedule Automate Tasks ○ Schedule Automate Tasks from UI
  34. 34. Q&A

×