ansible / mazer

Experimental Ansible Galaxy Content Manager
GNU General Public License v3.0
114 stars 18 forks source link

Implement install of things with dep solving (for trad roles and collections) #155

Closed alikins closed 5 years ago

alikins commented 5 years ago

Feature Request

Use Case

When installing a collection or a traditional role, automatically install any other galaxy repositories that the collections notates as being requirements or dependencies.

For a collection

For example,
alikins.collections_reqs_test is a galaxy collection that has:

- src: yatesr.timezone

- src: alikins.ansible_testing_content
  name: does_name_even_matter

- src: geerlingguy.apache
  version: 2.1.1

- src: geerlingguy.ntp
  version: 1.5.0

Running: mazer install alikins.collections_reqs_test

should install 'alikins.collections_reqs_test' and it's requirements ('yatesr.timezone' trad role, 'alikins.ansible_testing_content' collection, and the two geerlingguy trad roles).

For a traditional role

For example,
'geerlingguy.php-xdebug' is a galaxy traditional role that has:

---
dependencies:
  - geerlingguy.php

galaxy_info:
  author: geerlingguy
  description: PHP XDebug for Linux
  company: "Midwestern Mac, LLC"
  license: "license (BSD, MIT)"
  min_ansible_version: 2.4
  platforms:
    - name: EL
      versions:
        - all
    - name: GenericUNIX
      versions:
        - all
  galaxy_tags:
    - development
    - web
    - php
    - xdebug
    - debug
    - profile

Running:

    `mazer install geerlingguy.php-xdebug`

should install 'geerlingguy.php-xdebug' and it's requirements ('geerlingguy.php')

Proposed Solution

Describe the solution you'd like A clear and concise description of what you want to happen. Add any considered drawbacks.

Alternatives

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Implementation

Teachability, Documentation, Adoption, Migration Strategy

Very work-in-progress branch at https://github.com/alikins/mazer/tree/instally

approximate punch list / TODOs / deps

alikins commented 5 years ago

Implemented via: https://github.com/ansible/mazer/pull/156 https://github.com/ansible/mazer/pull/157 https://github.com/ansible/mazer/pull/158