# aws community edition and collection

**URL:** <https://forum.ansible.com/t/aws-community-edition-and-collection/33082>\
**Category:** Ansible Project\
**Tags:** aws\
**Created:** [June 3, 2020, 3:40pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082 "2020-06-03T15:40:27Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sydo\_Luciani](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@Sydo\_Luciani](https://forum.ansible.com/u/Sydo_Luciani)\
**Post date:** [June 3, 2020, 3:40pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/1 "2020-06-03T15:40:27Z")

</div>

aws modules have been redirected/moved to two different repositories, some to community.aws and some to amazon.aws

[https://github.com/ansible-collections/amazon.aws](https://github.com/ansible-collections/amazon.aws)

[https://github.com/ansible-collections/community.aws](https://github.com/ansible-collections/community.aws)

My first question is, what was the criteria for moving each modules to different repositories ? so we know the correct place to submit future aws modules !!! is there a change log for this move ?

My second question is for those with more experience with Ansible and github:  
isn’t better to make the amazon.aws plugin directory be the sub repository/sub module/fork or mirror of community.aws plugin directory ? this way modules and plugins version and code stay the same in both, while one will be used as collection and one as module !!!

Thanks

---

<div class="post-metadata">

**Author:** ![sivel](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sivel/32/1198_2.png) [@sivel](https://forum.ansible.com/u/sivel)\
**Post date:** [June 3, 2020, 3:45pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/2 "2020-06-03T15:45:30Z")

</div>

Largely the split was done between what was previously “core” supported and what was community supported.

amazon.aws is supported by Red Hat/Ansible employees, and community.aws is technically supported by the community.

New modules/plugins should almost definitely be submitted to community.aws, and if it is deemed it should be supported, it can be moved at a later date.

---

<div class="post-metadata">

**Author:** ![Sydo\_Luciani](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@Sydo\_Luciani](https://forum.ansible.com/u/Sydo_Luciani)\
**Post date:** [June 4, 2020, 9:32pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/3 "2020-06-04T21:32:37Z")

</div>

Thank you for quick reply.

What is the procedure to install Ansible version 10 along with amazon.aws and community.aws

I was able to install Ansible version 10 from repository:  
pip install git+https://github.com/ansible/ansible.git

but getting error installing modules from community.aws:  
pip install git+https://github.com/ansible-collections/community.aws.git

community.aws.git does not have all required files to be installable by pip.

Thanks

---

<div class="post-metadata">

**Author:** ![sivel](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sivel/32/1198_2.png) [@sivel](https://forum.ansible.com/u/sivel)\
**Post date:** [June 4, 2020, 9:35pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/4 "2020-06-04T21:35:02Z")

</div>

Collections are not pip installable.

Instead you want to do:

pip install [https://github.com/ansible/ansible/archive/devel.tar.gz](https://github.com/ansible/ansible/archive/devel.tar.gz)  
ansible-galaxy collection install amazon.aws

---

<div class="post-metadata">

**Author:** ![Sydo\_Luciani](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@Sydo\_Luciani](https://forum.ansible.com/u/Sydo_Luciani)\
**Post date:** [June 5, 2020, 12:15am UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/5 "2020-06-05T00:15:19Z")

</div>

Thank you Matt, that worked, eventhough the collection is behind the github repository.

Any recommendation or guidance on setting up development environment will be highly appreciated.  
I did follow below document to set up development environment, but considering changes in ansible repository structure, not applicable for community modules any more:  
[https://docs.ansible.com/ansible/latest/dev\_guide/developing\_modules\_general.html#common-environment-setup](https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#common-environment-setup)

---

<div class="post-metadata">

**Author:** ![Sydo\_Luciani](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@Sydo\_Luciani](https://forum.ansible.com/u/Sydo_Luciani)\
**Post date:** [June 5, 2020, 12:37am UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/6 "2020-06-05T00:37:28Z")

</div>

The only option that I can think of:  
pip install [https://github.com/ansible/ansible/archive/devel.tar.gz](https://github.com/ansible/ansible/archive/devel.tar.gz)

git clone [https://github.com/ansible-collections/community.aws.git](https://github.com/ansible-collections/community.aws.git)

cp community.aws/plugins/modules/my\_module.py ~/.ansible/plugins/modules/

edit ~/.ansible/plugins/modules/my\_module.py and then copy it back to git repository to commit and push.

Any elegant solution ?  
How you guys at ansible have setup the development environment to develop amazon.aws ?

Thanks

---

<div class="post-metadata">

**Author:** ![cassell](https://avatars.discourse-cdn.com/v4/letter/c/ecae2f/32.png) [@cassell](https://forum.ansible.com/u/cassell)\
**Post date:** [June 5, 2020, 1:49am UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/7 "2020-06-05T01:49:27Z")

</div>

You've identified one of the many annoying parts of collections. You need a special directory structure and you can't install from git in an editable manner. There's no equivalent to `ansible-galaxy install -gr requirements.yml` that gives you a git repo you can edit and push and pull. You'll further find it difficult to type `ansible -m community.general.my_module ...` using the very long name versus the short name you've always used before.

V/r,  
James Cassell

---

<div class="post-metadata">

**Author:** ![jborean](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/jborean/32/1525_2.png) [@jborean](https://forum.ansible.com/u/jborean)\
**Post date:** [June 5, 2020, 3:10am UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/8 "2020-06-05T03:10:17Z")

</div>

> You’ve identified one of the many annoying parts of collections. You need a special directory structure and you can’t install from git in an editable manner.

Admittedly you are right about the special directory structure but it’s pretty trivial to install it from git in an editable manner. I do this for the Windows collections;

`

# Usually I have this in my ~/.bashrc where the last segment is my dev location

export ANSIBLE\_COLLECTIONS\_PATHS=~/.ansible/collections:/usr/share/ansible/collections:~/ansible-dev  
git clone [git@github.com](mailto:git@github.com):ansible-collections/ansible.windows.git ~/ansible-dev/ansible\_collections/ansible/windows

`

I won’t lie and say this is a perfect scenario but it’s just 2 commands, one of which can be set automatically in your profile.

---

<div class="post-metadata">

**Author:** ![felixfontein](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/felixfontein/32/7530_2.png) [@felixfontein](https://forum.ansible.com/u/felixfontein)\
**Post date:** [June 5, 2020, 6:32am UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/9 "2020-06-05T06:32:00Z")

</div>

Hi,

> Thank you Matt, that worked, eventhough the collection is behind the  
> github repository.
> 
> Any recommendation or guidance on setting up development environment  
> will be highly appreciated.  
> I did follow below document to set up development environment, but  
> considering changes in ansible repository structure, not applicable  
> for community modules any more:  
> [https://docs.ansible.com/ansible/latest/dev\_guide/developing\_modules\_general.html#common-environment-setup](https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#common-environment-setup)

that documentation is for Ansible 2.9. Until 2.10 has been released,  
the devel docs are usually more helpful.

You might also be interested in  
[https://docs.ansible.com/ansible/devel/dev\_guide/developing\_collections.html](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html)  
whose last section describes how to set up collections for development.

Cheers,  
Felix

---

<div class="post-metadata">

**Author:** ![Sydo\_Luciani](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@Sydo\_Luciani](https://forum.ansible.com/u/Sydo_Luciani)\
**Post date:** [June 5, 2020, 7:06am UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/10 "2020-06-05T07:06:38Z")

</div>

Thank you Jordan, Those two lines saved me lots of time.  
I am using virtualenvwrapper, so I set the ANSIBLE\_COLLECTIONS\_PATHS in virtual environment’s postactivate, which it is going to set any time switching to ansible-dev environment.

First cloned ansible\_collections/community/aws, then had to clone ansible\_collections/amazon/aws when got module not found error when tried to test the module through ansible-playbook.

Eventually we have to create more directories and clone respected collections, as we are working on more modules, and that would be nice if we had ansible-galaxy-dev command to clone the collection from github along its dependencies at once(Like what James suggested).

Moving to collections is improvement for sure, thanks very much.

---

<div class="post-metadata">

**Author:** ![Sydo\_Luciani](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@Sydo\_Luciani](https://forum.ansible.com/u/Sydo_Luciani)\
**Post date:** [June 8, 2020, 2:58pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/11 "2020-06-08T14:58:26Z")

</div>

Created a new module in “~/ansible\_dev/ansible\_collections/community/aws/plugins/modules”, but neither ansible-playbook nor ansible-doc finds the new module. for the sake of test, copied a module to new name, to make sure it is not related to module content, and original module can be found, but not the new one.

ansible-doc -t module testing\_module

Checking collections development document:

[https://docs.ansible.com/ansible/latest/dev\_guide/developing\_collections.html](https://docs.ansible.com/ansible/latest/dev_guide/developing_collections.html)

but can’t find any thing about adding a new module.

What am I missing ?

Thanks

---

<div class="post-metadata">

**Author:** ![sivel](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sivel/32/1198_2.png) [@sivel](https://forum.ansible.com/u/sivel)\
**Post date:** [June 8, 2020, 2:59pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/12 "2020-06-08T14:59:46Z")

</div>

You have to use the FQCN of the module, at least for ansible-doc: community.aws.testing\_module

---

<div class="post-metadata">

**Author:** ![Sydo\_Luciani](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@Sydo\_Luciani](https://forum.ansible.com/u/Sydo_Luciani)\
**Post date:** [June 8, 2020, 3:21pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/13 "2020-06-08T15:21:32Z")

</div>

Thank you Matt, adding FQDN of the module fixed the problem either in playbook or ansible-doc command line.

How is that existing modules can be found just with their name but not the new one ?  
There is action\_groups.yml in meta directory, but adding testing\_module to it didn’t make any difference.

---

<div class="post-metadata">

**Author:** ![sivel](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sivel/32/1198_2.png) [@sivel](https://forum.ansible.com/u/sivel)\
**Post date:** [June 8, 2020, 3:50pm UTC](https://forum.ansible.com/t/aws-community-edition-and-collection/33082/14 "2020-06-08T15:50:49Z")

</div>

That is controlled by lib/ansible/config/ansible\_builtin\_runtime.yml

It is designed to only allow modules which shipped with Ansible previously, to work without needing to use the FQCN for backwards compatibility.
