# Develop Ansible plugin, are there any best practices or recommended notes to read ?

**URL:** <https://forum.ansible.com/t/develop-ansible-plugin-are-there-any-best-practices-or-recommended-notes-to-read/20795>\
**Category:** Ansible Developer\
**Created:** [March 7, 2016, 6:03pm UTC](https://forum.ansible.com/t/develop-ansible-plugin-are-there-any-best-practices-or-recommended-notes-to-read/20795 "2016-03-07T18:03:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Leoswaldo\_Macias\_Man](https://avatars.discourse-cdn.com/v4/letter/l/f05b48/32.png) [@Leoswaldo\_Macias\_Man](https://forum.ansible.com/u/Leoswaldo_Macias_Man)\
**Post date:** [March 7, 2016, 6:03pm UTC](https://forum.ansible.com/t/develop-ansible-plugin-are-there-any-best-practices-or-recommended-notes-to-read/20795/1 "2016-03-07T18:03:11Z")

</div>

Hi there

I found this group in [http://docs.ansible.com/ansible/modules\_core.html](http://docs.ansible.com/ansible/modules_core.html), so I’m not pretty sure if its ok to write questions like mine here, but anyway here it goes (in case its not, is there any other channel for this? ).

I’m going to develop a new plugin, I’m taking a look into apt ([repo](https://github.com/ansible/ansible-modules-core/blob/devel/packaging/os/apt.py)), actually mine is going to be a bit similar, so my question is:  
Are there any recommended notes to read or any best practices to follow ?

Think, Innovate and Deliver  
Leoswaldo

---

<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:** [March 7, 2016, 6:16pm UTC](https://forum.ansible.com/t/develop-ansible-plugin-are-there-any-best-practices-or-recommended-notes-to-read/20795/2 "2016-03-07T18:16:52Z")

</div>

There is a pretty large document around developing modules which you can find at [http://docs.ansible.com/ansible/developing\_modules.html](http://docs.ansible.com/ansible/developing_modules.html)

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [March 7, 2016, 6:17pm UTC](https://forum.ansible.com/t/develop-ansible-plugin-are-there-any-best-practices-or-recommended-notes-to-read/20795/3 "2016-03-07T18:17:32Z")

</div>

[http://docs.ansible.com/ansible/developing\_modules.html](http://docs.ansible.com/ansible/developing_modules.html)

---

<div class="post-metadata">

**Author:** ![marc.petrivelli](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/marc.petrivelli/32/3773_2.png) [@marc.petrivelli](https://forum.ansible.com/u/marc.petrivelli)\
**Post date:** [March 8, 2016, 5:10pm UTC](https://forum.ansible.com/t/develop-ansible-plugin-are-there-any-best-practices-or-recommended-notes-to-read/20795/4 "2016-03-08T17:10:43Z")

</div>

I struggled with this when I decided to write a few custom modules and plugins. The documentation is very minimal at best and best practices are probably best inferred by looking at the code in the core modules. Copy and paste a module, rename and get hacking!
