# AAP 2.5, custom credential type, how-to for RPM installs?

**URL:** <https://forum.ansible.com/t/aap-2-5-custom-credential-type-how-to-for-rpm-installs/41421>\
**Category:** Get Help\
**Tags:** credentials, aap, awx\
**Created:** [March 29, 2025, 5:22pm UTC](https://forum.ansible.com/t/aap-2-5-custom-credential-type-how-to-for-rpm-installs/41421 "2025-03-29T17:22:58Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![skeer](https://avatars.discourse-cdn.com/v4/letter/s/7ea924/32.png) [@skeer](https://forum.ansible.com/u/skeer)\
**Post date:** [March 29, 2025, 5:22pm UTC](https://forum.ansible.com/t/aap-2-5-custom-credential-type-how-to-for-rpm-installs/41421/1 "2025-03-29T17:22:58Z")

</div>

I’m trying to install a custom cred type I’m building myself, into AAP 2.5 (non-containerized/non-operator arch).

The archived AWX process [here](https://github.com/ansible/awx-custom-credential-plugin-example/blob/master/README.md), results in nothing new being added. I’m betting that I have a bug in my python.  
Are awx-manage functions logged anywhere? I did search but did not find anyhting.

Will setup\_managed\_credential\_types throw an error if the ‘install’ or ‘import’ fail?

My code tests fine manually.. I did use the AWX example above as my template but perhaps it’s out of date?

My code is here if it helps: [delinea\_auth\_plugin/src/ss\_token\_plugin/plugin.py at main · cidrbl0ck/delinea\_auth\_plugin · GitHub](https://github.com/cidrbl0ck/delinea_auth_plugin/blob/main/src/ss_token_plugin/plugin.py)

---

<div class="post-metadata">

**Author:** ![christianmasopust](https://avatars.discourse-cdn.com/v4/letter/c/c37758/32.png) [@christianmasopust](https://forum.ansible.com/u/christianmasopust)\
**Post date:** [August 12, 2025, 4:16am UTC](https://forum.ansible.com/t/aap-2-5-custom-credential-type-how-to-for-rpm-installs/41421/2 "2025-08-12T04:16:23Z")

</div>

Hello @skeer !

the custom credential type plugin must be added to the python venv that runs the controller, which is on the controller node in /var/lib/awx/venv/awx. Install the plugin to lib/python3.11/site-packages/

But… this has a drawback: the python venv for the controller comes as rpm package which runs a “python -m venv clean” as preinstall script, i.e. whole content of the venv will be removed, including your plugin.

To come over this you can install your plugin to a persistent folder, e.g. in /opt/automation-controller-extensions/ and then add the environment variable PYTHONPATH=/opt/automation-controller-extensions/ to the environment of the systemd service supervisord.service (be sure to use an override and don’t mess with the service definition as it may be overwritten at update).

Hope this helps!  
Christian
