Pablo Suárez Hernández
Backend Software Engineer
SUSE Manager/Uyuni
psuarezhernandez@suse.com
PoC: Ansible Integration in Uyuni
Uyuni Community Hours 29.01.2021
• This is NOT about re-implementing each Uyuni feature for
the Ansible stack.
• This is just a PoC for a proposed integration approach
(might be other alternatives).
• There are NO pull requests yet.
• Ongoing efforts writing RFC to discuss and define MVP
and implementation steps.
DISCLAIMER
2
The goals
• Allow users and customers to integrate their existing
Ansible infrastructure in Uyuni.
• Allow Ansible and Salt systems to coexist in Uyuni.
• Allow a smooth (painless) migration to Salt.
• Allow users and customers to operate Ansible and manage
a future “Ansible Playbook catalog” with Uyuni.
The goals
4
The way
Ansiblegate module of Salt
6
• Execute Ansible modules with Salt (minion or Salt SSH)
(where Ansible is installed)
• Operate Ansible using Salt: Execute playbooks
• Reuse the Ansible inventory to run Salt modules/states on
Ansible managed clients via Salt SSH.
(allow targeting Ansible systems & groups and reuse the
Ansible SSH credentials).
1) New system entitlement: "Ansible"
2) Define an Ansible controller system
(copy Uyuni SSH keys to operate it via salt-ssh)
(it could be the Uyuni server itself)
3) Get the Ansible inventory, SSH keys and import systems
(systems listed as Foreign/Ansible in Uyuni)
(no changes at all in those Ansible systems)
(no minion features - only actions for Ansible)
(i.a. run playbooks)
A proposed Integration with Uyuni
7
3) For Ansible systems, Salt onboarding is easy!
(bootstrap via salt-ssh using Ansible inventory)
(all minion features + Ansible features)
4) An Ansible system can live in Uyuni as:
• "Foreign/Ansible" (no changes on the system)
• "Salt/Ansible" (changes done in the system:
channels, states, etc)
A proposed Integration with Uyuni
8
The future
• Dynamically collect Ansible Inventory from AWX (Ansible
Tower)
• Implement “Ansible Playbook Catalog” as we currently
have for “Configuration State Channels”
• ...
A proposed Integration with Uyuni:
The Future
10
The demo
Q&A
Thanks!
Join Us at uyuni-project.org
/uyuni-project
/uyuni-project
/UyuniProject
License
This slide deck is licensed under the CreativeCommons Attribution-ShareAlike4.0 Internationallicense.
It canbe shared and adaptedfor anypurpose (evencommercially) aslong asAttributionis givenand any
derivativework is distributed under the same license.
Detailscanbe found athttps://creativecommons.org/licenses/by-sa/4.0/
General Disclaimer
This document is not to be construed as a promise by anyparticipating organisationtodevelop, deliver, or
market a product. It is not a commitment to deliver anymaterial, code, or functionality, andshouldnot be
relied upon in making purchasing decisions. openSUSEmakes no representations or warrantieswithrespect
to the contents of thisdocument, and specificallydisclaimsanyexpressor implied warrantiesof
merchantabilityorfitness for anyparticularpurpose. The development, release, and timing of features or
functionalitydescribed for openSUSEproducts remainsat the sole discretion of openSUSE. Further,
openSUSEreserves the rightto revise this document and to make changestoits content, atanytime,
withoutobligationtonotifyany person or entity of such revisions or changes. AllopenSUSEmarks
referenced inthis presentation are trademarks or registered trademarks of SUSELLC, inthe UnitedStates
andother countries. All third-partytrademarks arethe property of their respective owners.
Credits
Template & Design
Pau Garcia Quiles
pau.garcia@suse.com
Inspiration
openSUSEDesign Team
http://opensuse.github.io/branding-
guidelines/

PoC: Ansible Integration in Uyuni

  • 1.
    Pablo Suárez Hernández BackendSoftware Engineer SUSE Manager/Uyuni psuarezhernandez@suse.com PoC: Ansible Integration in Uyuni Uyuni Community Hours 29.01.2021
  • 2.
    • This isNOT about re-implementing each Uyuni feature for the Ansible stack. • This is just a PoC for a proposed integration approach (might be other alternatives). • There are NO pull requests yet. • Ongoing efforts writing RFC to discuss and define MVP and implementation steps. DISCLAIMER 2
  • 3.
  • 4.
    • Allow usersand customers to integrate their existing Ansible infrastructure in Uyuni. • Allow Ansible and Salt systems to coexist in Uyuni. • Allow a smooth (painless) migration to Salt. • Allow users and customers to operate Ansible and manage a future “Ansible Playbook catalog” with Uyuni. The goals 4
  • 5.
  • 6.
    Ansiblegate module ofSalt 6 • Execute Ansible modules with Salt (minion or Salt SSH) (where Ansible is installed) • Operate Ansible using Salt: Execute playbooks • Reuse the Ansible inventory to run Salt modules/states on Ansible managed clients via Salt SSH. (allow targeting Ansible systems & groups and reuse the Ansible SSH credentials).
  • 7.
    1) New systementitlement: "Ansible" 2) Define an Ansible controller system (copy Uyuni SSH keys to operate it via salt-ssh) (it could be the Uyuni server itself) 3) Get the Ansible inventory, SSH keys and import systems (systems listed as Foreign/Ansible in Uyuni) (no changes at all in those Ansible systems) (no minion features - only actions for Ansible) (i.a. run playbooks) A proposed Integration with Uyuni 7
  • 8.
    3) For Ansiblesystems, Salt onboarding is easy! (bootstrap via salt-ssh using Ansible inventory) (all minion features + Ansible features) 4) An Ansible system can live in Uyuni as: • "Foreign/Ansible" (no changes on the system) • "Salt/Ansible" (changes done in the system: channels, states, etc) A proposed Integration with Uyuni 8
  • 9.
  • 10.
    • Dynamically collectAnsible Inventory from AWX (Ansible Tower) • Implement “Ansible Playbook Catalog” as we currently have for “Configuration State Channels” • ... A proposed Integration with Uyuni: The Future 10
  • 11.
  • 12.
  • 13.
  • 14.
    Join Us atuyuni-project.org /uyuni-project /uyuni-project /UyuniProject
  • 15.
    License This slide deckis licensed under the CreativeCommons Attribution-ShareAlike4.0 Internationallicense. It canbe shared and adaptedfor anypurpose (evencommercially) aslong asAttributionis givenand any derivativework is distributed under the same license. Detailscanbe found athttps://creativecommons.org/licenses/by-sa/4.0/ General Disclaimer This document is not to be construed as a promise by anyparticipating organisationtodevelop, deliver, or market a product. It is not a commitment to deliver anymaterial, code, or functionality, andshouldnot be relied upon in making purchasing decisions. openSUSEmakes no representations or warrantieswithrespect to the contents of thisdocument, and specificallydisclaimsanyexpressor implied warrantiesof merchantabilityorfitness for anyparticularpurpose. The development, release, and timing of features or functionalitydescribed for openSUSEproducts remainsat the sole discretion of openSUSE. Further, openSUSEreserves the rightto revise this document and to make changestoits content, atanytime, withoutobligationtonotifyany person or entity of such revisions or changes. AllopenSUSEmarks referenced inthis presentation are trademarks or registered trademarks of SUSELLC, inthe UnitedStates andother countries. All third-partytrademarks arethe property of their respective owners. Credits Template & Design Pau Garcia Quiles pau.garcia@suse.com Inspiration openSUSEDesign Team http://opensuse.github.io/branding- guidelines/