Ok, friendly role names now allowed as third field. Added bonus of installing roles from URLs without SCM (think nexus, artefactory or just e.g. direct bitbucket/github/stash download URLs)
Integration tests and unit tests to demonstrate that these improvements seem to work as expected. Will On Friday, August 15, 2014 10:22:44 AM UTC+10, Will Thames wrote: > > Perhaps we could make role name an optional third field - so if you do > want role_name but not role_version, just leave role_version blank i.e. git+ > http://git.server/bad-role-name,,nice-role-name > > The reason for making it the third field is that I don't want to break > existing roles files and I don't want the parsing for SCM roles to be > fundamentally different to the galaxy roles. > > I don't particularly wish this to block the take-up of this pull request, > but I'm happy enough to implement it if the above seems a reasonable > approach. > > Will > > On Friday, August 15, 2014 3:03:36 AM UTC+10, Ivaylo Bratoev wrote: >> >> I can think a few cases where being able to control local role folder >> names would make things cleaner. For example: referencing repos with the >> same name in the end, too long or obscure repo names, etc. >> None of this is a blocker that would stop us from using this feature. I >> am looking forward to having this in the main branch and in a official >> release. >> >> On Thursday, August 14, 2014 3:10:29 PM UTC+3, Michael DeHaan wrote: >>> >>> " would just add one more requirement - being able to overwrite the >>> role-name and rely on the git repo name exclusively. Idea for syntax if you >>> want to keep the *role_name/url, role_version* format:" >>> >>> While interesting, we don't want to do this because we already have >>> ",version" used for describing roles in a way that is not specific. >>> Further, I don't think those URLs technically support comments in the case >>> of ssh://, so that seems like something we'd want to avoid. >>> >>> We can go with git+https://url,version >>> >>> I'm happy with that. >>> >>> >>> >>> >>> On Thu, Aug 14, 2014 at 12:17 AM, Ivaylo Bratoev <[email protected]> >>> wrote: >>> >>>> Hi guys, >>>> >>>> I am currently investigating different options for managing roles and >>>> looking forward to having this in Ansible itself. My requirements are >>>> similar - having roles shared (and versioned) in private git repos, >>>> referenced from playbooks in other repos. >>>> The solution you are discussing here sounds like in the right >>>> direction. I would just add one more requirement - being able to overwrite >>>> the role-name and rely on the git repo name exclusively. Idea for syntax >>>> if >>>> you want to keep the *role_name/url, role_version* format: >>>> git+https://git.acme.com/ansible/role-logstash.git#alias=logstash >>>> >>>> This would reference the role from the private repo but use the name >>>> 'logstash' instead of 'role-logstash'. >>>> >>>> If you are OK to change the format to *role_name, scm, url *the syntax >>>> suggested by Sam would work well for us: >>>> logstash,git,https://git.acme.com/ansible/role-logstash.git >>>> >>>> Ivo >>>> >>>> >>>> On Thursday, August 14, 2014 3:37:03 AM UTC+3, Will Thames wrote: >>>>> >>>>> I'm happy enough with this approach but how do we apply that to role >>>>> dependencies. >>>>> >>>>> In my git test role I provide a git dependency: >>>>> https://bitbucket.org/willthames/git-ansible-galaxy/src/ >>>>> 1e58ef87f234926caaf5e6b1f2c5378d90f476b1/meta/main.yml?at=master >>>>> >>>>> This works with the ansible-galaxy in the pull request but would not >>>>> as it stands without some form of scm detection. >>>>> >>>>> On reflection, I think I'd be happiest with the scm+url suggestion - >>>>> this would eliminate the need for scm detection and keep the >>>>> role_name/url, >>>>> role_version format of the rolesfile >>>>> role_name would continue to be derived from the repo name. >>>>> >>>>> From Sam's example, this would then look more like this (not 100% >>>>> happy with git+git but it's nicer than handling the special case). >>>>> >>>>> # Custom roles using various protocols >>>>> git+ssh://[email protected]:ansible/role-disa-stig-rhel6.git,1.0 >>>>> git+https://git.acme.com/ansible/role-kibana.git >>>>> git+git://[email protected]:ansible/role-logstash.git >>>>> >>>>> This would end up with roles called e.g. role-logstash, which might >>>>> not be what you want, but I would prefer to keep the rolesfile simple. >>>>> >>>>> Will >>>>> >>>>> On Thursday, August 14, 2014 12:59:43 AM UTC+10, Michael DeHaan wrote: >>>>>> >>>>>> +1 >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Aug 13, 2014 at 10:57 AM, Sam Doran <[email protected]> wrote: >>>>>> >>>>>>> I like your syntax suggestion. That seems to fit more with the >>>>>>> ansible project. I agree that specifying the protocol would be a good >>>>>>> idea. >>>>>>> >>>>>>> Here's what it might look like: >>>>>>> >>>>>>> # Galaxy roles >>>>>>> adham.helal.authentication >>>>>>> agios.nginx-unicorn,1.3 >>>>>>> >>>>>>> # Custom roles using various protocols >>>>>>> disa-stig-rhel6,git,ssh://[email protected]:ansible/role- >>>>>>> disa-stig-rhel6.git,1.0 >>>>>>> kibana,git,https://git.acme.com:ansible/role-kibana.git >>>>>>> logstash,git,git://[email protected]:ansible/role-logstash.git >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Ansible Project" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/ansible-project/ >>>>>>> 2946b30e-e772-44af-9592-f0fec3f8da30%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/ansible-project/2946b30e-e772-44af-9592-f0fec3f8da30%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Ansible Project" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/ansible-project/af2e9ef3-19e1-4379-a6b8-439936841e7d%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/ansible-project/af2e9ef3-19e1-4379-a6b8-439936841e7d%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/0520bf55-0dc0-4a3b-9c27-5d15da78a289%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
