{"count":37865,"next":"http://galaxy.ansible.com/api/v1/roles/?format=json&page=3649","previous":"http://galaxy.ansible.com/api/v1/roles/?format=json&page=3647","results":[{"id":42054,"upstream_id":null,"created":"2025-12-10T20:42:25.722162Z","modified":"2026-10-30T16:49:34.610629Z","imported":"2026-10-30T16:49:34.548875","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-etcd","github_branch":"main","commit":"bfbeb9988cc59027252c52ff3150e9046cb99c98","commit_message":"Pin Python 3.13 for the Galaxy import (#10)\n\npython-version '3.x' now gives Python 3.15, on which ansible-galaxy fails to start\n(AttributeError: module 'dataclasses' has no attribute '_is_type').\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"etcd","description":"etcd is a distributed reliable key-value store for the most critical data of a distributed system.§\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-etcd","original_name":"ansible-role-etcd"},"tags":["etcd","consensus","keyval"],"versions":[{"id":"8b5fb9bc-5bae-420d-b626-8f0bde9292da","name":"v0.2.1","release_date":"2026-10-30T17:46:48+01:00"},{"id":"f60c8717-04b2-4862-b03a-92ab1d49b191","name":"v0.2.0","release_date":"2026-10-08T13:45:26+02:00"},{"id":"367cc79a-f17b-48f2-97ec-b7b74c387d6c","name":"v0.1.1","release_date":"2026-05-08T14:32:46+02:00"}]},"download_count":544},{"id":42055,"upstream_id":null,"created":"2025-12-10T21:32:37.322042Z","modified":"2026-11-01T00:31:18.243151Z","imported":"2026-11-01T00:31:18.175856","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-chainsmith","github_branch":"main","commit":"e97c21c56354b46c0f5b1cd8ad04282626bb5a13","commit_message":"Remove the temporary output dir and config file (they hold the private keys) (#11)\n\n* Remove the temporary output dir and config file afterwards\n\nchainsmith writes the CA and the private keys to a temporary dir on the\ncontroller, and the role never removed it, nor the temporary config file.\nThe tasks after creating the dir now run in a block, and an always section\nremoves both, also when a task fails. A chainsmith_tmpdir set by the user is\nleft alone. The Molecule test checks that nothing is left on the controller.\n\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\n\n* Remove the commented out debug tasks\n\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"chainsmith","description":"Chainsmith is a tool for generating tls chains with server and client certificates.\nThis role installs Chainsmith and runs it to generate and distribute a chain ready to be used by PostgreSQL for encryption in transit and authentication.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-chainsmith","original_name":"ansible-role-chainsmith"},"tags":[],"versions":[{"id":"7bfe7ef5-329f-4aea-87b3-88f798b0d5ef","name":"v0.2.4","release_date":"2026-11-01T00:20:47+00:00"},{"id":"e2aa9a8a-fdbd-4445-ba03-52b8381e27eb","name":"v0.2.3","release_date":"2026-10-31T13:21:50+01:00"},{"id":"e74b622a-8b76-491e-8fef-59619f93d06e","name":"v0.2.2","release_date":"2026-10-30T17:47:14+01:00"},{"id":"f78b09a8-2955-43e3-9ba2-9671699276e4","name":"v0.2.1","release_date":"2026-10-08T17:07:31+02:00"},{"id":"71d41f18-e87f-4a61-83e0-4ad59d6610ac","name":"v0.2.0","release_date":"2026-09-07T17:26:52+02:00"},{"id":"79e1830a-3251-444b-9447-e0fa1149cd4d","name":"v0.1.1","release_date":"2026-05-08T14:21:14+02:00"},{"id":"b2393e44-6606-4667-9e0c-e8f4cafdd327","name":"v0.1.0","release_date":"2026-05-07T16:58:50+02:00"}]},"download_count":526},{"id":42056,"upstream_id":null,"created":"2025-12-10T21:41:25.949118Z","modified":"2026-10-30T16:49:46.581640Z","imported":"2026-10-30T16:49:46.536951","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-firewall","github_branch":"main","commit":"bded86fa62a97679b37337c0729e2d78cd7906f9","commit_message":"Pin Python 3.13 for the Galaxy import (#8)\n\npython-version '3.x' now gives Python 3.15, on which ansible-galaxy fails to start\n(AttributeError: module 'dataclasses' has no attribute '_is_type').\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"firewall","description":"firewalld can be used to manage firewall confoguration on a linux vm.\nThis role configures the firewalld configuration for using PostgreSQL, etcd, stolon-proxy, etc.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-firewall","original_name":"ansible-role-firewall"},"tags":["firewall","firewalld","pgvillage"],"versions":[{"id":"d51d9a44-a82c-404e-8f0a-b9888b6c6aa5","name":"v0.2.1","release_date":"2026-10-30T17:46:44+01:00"},{"id":"df4d9e84-482b-44eb-afbb-81b6a8415dcc","name":"v0.2.0","release_date":"2026-10-09T16:50:27+02:00"},{"id":"b10f0974-c345-44cf-9652-1b58e89d2465","name":"v0.1.0","release_date":"2026-05-07T17:21:03+02:00"}]},"download_count":511},{"id":42057,"upstream_id":null,"created":"2025-12-10T21:46:38.957769Z","modified":"2026-10-31T22:04:24.017154Z","imported":"2026-10-31T22:04:23.943891","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-keepalived","github_branch":"main","commit":"428df3e8589c1cb393ee6ea841419885ecf504e3","commit_message":"Allow VRRP in firewalld, so the peers see each other (#16)\n\nkeepalived uses VRRP (IP protocol 112), which firewalld blocks by default.\nThe peers then don't see each other, and every peer takes the VIP (seen in\nthe PgVillage vagrant environment: all three router hosts had the VIP).\n\nNew keepalived_firewall_vrrp (default auto: when firewalld is running) and\nkeepalived_firewall_zone. The Molecule test now runs firewalld, so its VIP\nand failover checks only pass with VRRP allowed, and it checks the rule.\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"keepalived","description":"Keepalivd is a tool to manage a VIP in a private datacenter setup.\nThis role installs and configured keepalived so that a VIP is allways available on one of the PgVillage machines.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-keepalived","original_name":"ansible-role-keepalived"},"tags":["keepalived"],"versions":[{"id":"5cdd80b4-89fd-4e1e-bc9c-58f5b345cd42","name":"v0.3.3","release_date":"2026-10-31T23:02:32+01:00"},{"id":"663eb73d-e159-4b9a-bc26-820279546ede","name":"v0.3.2","release_date":"2026-10-30T17:50:30+01:00"},{"id":"3988ee7e-8e76-4148-8eb7-59d4a4ad1c4b","name":"v0.3.1","release_date":"2026-10-09T16:50:12+02:00"},{"id":"cfbc3a9d-b9a9-498f-b99d-0d4f91a7dfa8","name":"v0.3.0","release_date":"2026-09-15T13:21:44+02:00"},{"id":"62360256-6c69-4a50-8ce8-ad75b1b5ded6","name":"v0.2.0","release_date":"2026-06-08T15:19:15+02:00"},{"id":"08ceb1d9-8404-4730-b343-59a83762d332","name":"v0.1.0","release_date":"2026-05-07T16:53:31+02:00"}]},"download_count":513},{"id":42058,"upstream_id":null,"created":"2025-12-10T21:47:04.382898Z","modified":"2026-11-01T02:37:59.664459Z","imported":"2026-11-01T02:37:59.597742","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-haproxy","github_branch":"main","commit":"29d7b05a6cdf04320336c55654a94e093b6ac910","commit_message":"Make HAProxy work with SELinux enforcing (#12)\n\nOn EL9 with SELinux enforcing (Rocky 9.8, PGDG haproxy 3.4.7) HAProxy\ndidn't start: name_bind on the stats port and the frontends was denied, the\nroot master process couldn't create the stats socket (dac_override), and\nthe external-check scripts couldn't run (map on bash, search on the haproxy\nhome dir).\n\n- turn on the SELinux boolean haproxy_connect_any (haproxy_selinux_connect_any)\n- the folder of haproxy_socket: root:haproxy, 0750\n- my-haproxy 1.1: map on bin_t and shell_exec_t, search on user_home_dir_t;\n  the module source is kept in haproxy_selinux_dir and the module is\n  reinstalled when it changes, so existing hosts get 1.1 over 1.0\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"haproxy","description":"HAProxy can be used to proxy tcp connectons including PostgreSQL traffic.\nThis role configures HAProxy so that PostgreSQL traffic can be proxies to PgVillage database servers.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-haproxy","original_name":"ansible-role-haproxy"},"tags":["haproxy"],"versions":[{"id":"94401819-562a-4308-988a-a83ac52b0566","name":"v0.3.4","release_date":"2026-11-01T02:52:20+01:00"},{"id":"98bdebff-a4fd-4263-9bb8-e09a8b78779e","name":"v0.3.3","release_date":"2026-11-01T01:20:39+01:00"},{"id":"67ede7b1-9832-40d9-b000-71b6110aa28b","name":"v0.3.2","release_date":"2026-10-30T17:46:38+01:00"},{"id":"b29464f8-db96-4179-a13b-349de9d42bbc","name":"v0.3.1","release_date":"2026-10-09T16:50:20+02:00"},{"id":"987d7e63-7410-4691-b988-3b637609d002","name":"v0.3.0","release_date":"2026-09-18T11:04:28+02:00"},{"id":"197f3357-33e9-45a9-88a6-dda8a9d485c2","name":"v0.2.0","release_date":"2026-06-08T15:19:19+02:00"},{"id":"a4dbf612-bcce-4a4b-93a5-a7d9309ce30b","name":"v0.1.0","release_date":"2026-05-07T16:54:40+02:00"}]},"download_count":513},{"id":42059,"upstream_id":null,"created":"2025-12-10T21:49:02.153091Z","modified":"2026-11-01T02:37:49.691383Z","imported":"2026-11-01T02:37:49.580861","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-linux","github_branch":"main","commit":"15a78882fd15945bf8249a2a3457f289e773226b","commit_message":"Refresh the dnf metadata once, not for every package (#40)\n\nInstall packages had update_cache on every item of its loop, so dnf reloaded\nthe metadata of all repositories (EPEL via metalink, PGDG, PgVillage) for\nevery package. On EL9 that took about a minute per package: 944s for the\npackage task of a PgVillage database host, also when everything was already\ninstalled. Refresh once before the loop instead. Packages are still\ninstalled one per call.\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"linux","description":"This role manages all linux tasks for a PgVillage PostgreSQL cluster.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-linux","original_name":"ansible-role-linux"},"tags":[],"versions":[{"id":"6fe0ceb5-0e11-4b90-8a1b-c67a8c0fd525","name":"v0.3.9","release_date":"2026-11-01T01:55:24+00:00"},{"id":"f562328c-f645-434c-9df1-da1806979eb9","name":"v0.3.8","release_date":"2026-10-31T17:06:40+00:00"},{"id":"186d475c-559b-454d-9180-bfd4f8955871","name":"v0.3.7","release_date":"2026-10-30T17:42:53+01:00"},{"id":"c41edf42-3c1a-4b4f-9a38-2238b0b8e5ca","name":"v0.3.6","release_date":"2026-10-30T16:23:43+00:00"},{"id":"a4f9c2a1-14f5-411c-bb88-95ed85872d54","name":"v0.3.5","release_date":"2026-10-08T13:38:48+02:00"},{"id":"f01958cf-347c-45a4-bfde-becd80453dbb","name":"v0.3.4","release_date":"2026-09-07T17:27:15+02:00"},{"id":"87f54749-16fa-4f4b-96d5-e9a5770ab44f","name":"v0.3.3","release_date":"2026-07-06T14:26:53+02:00"},{"id":"016b38bc-484f-458d-8172-0d3df632a38f","name":"v0.3.2","release_date":"2026-06-17T14:03:41+02:00"},{"id":"8c0f5e25-8c93-4ffa-ad23-9b0e49bdd5bf","name":"v0.3.1","release_date":"2026-06-10T09:11:15+02:00"},{"id":"dba50444-7817-4be8-92a2-5b00e66bbf63","name":"v0.3.0","release_date":"2026-06-09T16:55:06+02:00"},{"id":"d4412188-1297-4a50-b7c7-05a63db93f14","name":"v0.2.0","release_date":"2026-06-09T15:15:15+02:00"}]},"download_count":520},{"id":42060,"upstream_id":null,"created":"2025-12-10T21:50:54.913017Z","modified":"2026-10-31T19:44:05.596900Z","imported":"2026-10-31T19:44:05.513866","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-minio","github_branch":"main","commit":"a49e5963aec0f26cf007d27584848550e3423f5a","commit_message":"Add molecule tests and run them in CI (#27)\n\nThe MinIO community binaries are no longer published, so test the role with\nminio_use_rustfs on Rocky Linux 9 and 10, with RustFS from the pgvillage\npackage repo, and check the service, TLS, data directory and buckets.\n\nInstall the RustFS client as rustfs-cli: the name rc installed the Plan 9\nrc shell from EPEL as /usr/bin/rc, so creating the buckets failed.\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"minio","description":"Minio is a tool to create a S3 bucket out of a filesystem.\nMinio can do a whole lot more, but this is what Minio is to PgVillage.\nThis role installs and configures minio.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-minio","original_name":"ansible-role-minio"},"tags":["system","minio","storage","objectstorage","s3"],"versions":[{"id":"5512edf4-1c4b-42fb-b528-e28e7275cfde","name":"v0.3.2","release_date":"2026-10-31T12:54:52+01:00"},{"id":"6ddd42e0-11bc-4ab5-8852-9552b021453d","name":"v0.3.1","release_date":"2026-10-30T17:45:58+01:00"},{"id":"a3b3638d-0178-407b-ae36-35a3a87dc741","name":"v0.3.0","release_date":"2026-10-08T14:46:58+02:00"},{"id":"d0cca8c8-4753-4ae4-9944-2a3b60d15e5f","name":"v0.2.1","release_date":"2026-06-09T12:57:34+02:00"},{"id":"69c193d6-2fc8-40d5-83cd-1fa14e7da828","name":"v0.2.0","release_date":"2026-06-08T15:18:58+02:00"},{"id":"246cd93e-92a8-45e3-8961-11c1211784a9","name":"v0.1.1","release_date":"2026-05-08T14:43:24+02:00"},{"id":"c7ce2637-a9b1-47af-8cba-28113d0b1a87","name":"v0.1.0","release_date":"2026-05-07T15:55:49+02:00"}]},"download_count":500},{"id":42061,"upstream_id":null,"created":"2025-12-10T21:53:16.875731Z","modified":"2026-11-04T13:15:34.040195Z","imported":"2026-11-04T13:15:33.960353","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-nagios","github_branch":"main","commit":"79bbbda9772070c08d841a3a54a2966908df9894","commit_message":"Merge pull request #10 from pgvillage/feat/multi-instance-fixes\n\nfeat: multicluster support","name":"nagios","description":"Nagios is a tool to monitor endpoints, such as PostgreSQL systems.\nThis role installs postgres-nrpe and additionally adds configuration to configure endpoint monitoring.\nAnd it can enable endpoint monitoring on a cental Nagios monitoring system.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-nagios","original_name":"ansible-role-nagios"},"tags":[],"versions":[{"id":"b0649f08-8008-4155-acc6-36b15a91444c","name":"v0.4.0","release_date":"2026-11-04T14:05:53+01:00"},{"id":"ececc8d9-a3f2-4132-ac62-44acb78e1ee9","name":"v0.3.1","release_date":"2026-10-30T17:44:54+01:00"},{"id":"5988ac9f-a360-480a-89b8-5ba3a98444af","name":"v0.3.0","release_date":"2026-10-09T16:50:06+02:00"},{"id":"45d5cb5d-c61f-4933-ab24-1699baad8b15","name":"v0.2.0","release_date":"2026-06-08T15:18:43+02:00"},{"id":"cfc908ef-7d4b-499d-b822-8979179259c4","name":"v0.1.0","release_date":"2026-05-07T17:10:52+02:00"}]},"download_count":506},{"id":42062,"upstream_id":null,"created":"2025-12-10T22:01:17.688079Z","modified":"2026-10-30T16:49:34.663871Z","imported":"2026-10-30T16:49:34.609146","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-pgquartz","github_branch":"main","commit":"8b38172e1433012f5dedded16ecda9dc0ca60103","commit_message":"Pin Python 3.13 for the Galaxy import (#9)\n\npython-version '3.x' now gives Python 3.15, on which ansible-galaxy fails to start\n(AttributeError: module 'dataclasses' has no attribute '_is_type').\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"pgquartz","description":"PgQuartz is a tool to define and execute PostgreSQL jobs.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-pgquartz","original_name":"ansible-role-pgquartz"},"tags":["postgres","job","parallel","step","shell","query"],"versions":[{"id":"33577992-9b0d-4d22-88c2-6507658a42ec","name":"v0.3.1","release_date":"2026-10-30T17:45:22+01:00"},{"id":"38a66e4b-2285-45fc-95f9-694a940d9d13","name":"v0.3.0","release_date":"2026-10-09T16:49:49+02:00"},{"id":"b8d69855-34e4-4c0a-8d61-058b5a78202b","name":"v0.2.0","release_date":"2026-06-08T15:19:10+02:00"},{"id":"77d94ee3-818d-4e2a-a904-dbde945b161f","name":"v0.1.0","release_date":"2026-05-07T17:15:41+02:00"}]},"download_count":500},{"id":42063,"upstream_id":null,"created":"2025-12-10T22:02:22.750372Z","modified":"2026-11-01T00:47:47.605649Z","imported":"2026-11-01T00:47:47.548696","github_user":"pgvillage","username":"pgvillage","github_repo":"ansible-role-pgfga","github_branch":"main","commit":"34b1dcf10ee5d7238b0a0f8a2b8d6c6bae5c3be8","commit_message":"Set up pgfga's own login: ident over the socket, user created by the role (#12)\n\n* Set up pgfga's own login: ident over the socket, user created by the role\n\npgfga runs as pgfga_osuser and now connects over the unix socket as\npgfga_pg_user (default: the same name), with ident/peer authentication. The\nconnection is the default postgresql_dsn (pgfga_default_config: host, port,\nuser, dbname), and pgfga_config is merged over it. The role creates\npgfga_pg_user (LOGIN SUPERUSER) when it doesn't exist, as the PostgreSQL OS\nuser over the socket, and skips that on a standby.\n\nThe Molecule test no longer creates the user in prepare and uses the default\nconnection; verify checks the user and the deployed connection.\n\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\n\n* Molecule: compare the port as a string (Ansible templates \"5432\" to a number)\n\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\n\n* Create the pgfga user with community.postgresql.postgresql_user\n\nInstead of psql: postgresql_query checks whether PostgreSQL is a standby,\nand postgresql_user creates pgfga_pg_user (LOGIN, SUPERUSER) on the primary.\nThe role installs psycopg for these modules (pgfga_python_packages:\npython3-psycopg2, python313-psycopg2 on zypper) and requires\ncommunity.postgresql.\n\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Sebastiaan Mannem <sebas@mannem.nl>\nCo-authored-by: Claude Opus 5.5 <noreply@anthropic.com>","name":"pgfga","description":"PgFga is a tool to manage PostgreSQL resources, such as databases, extensions, users and roles.\nOne of the fine things is that PgFga can manage users from LDAP groups.\n","summary_fields":{"dependencies":[],"namespace":{"id":25023,"name":"pgvillage","avatar_url":"https://github.com/pgvillage.png"},"provider_namespace":{"id":34480,"name":"pgvillage","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34480/"},"repository":{"name":"ansible-role-pgfga","original_name":"ansible-role-pgfga"},"tags":["postgres","ldap","user","role","database","extension"],"versions":[{"id":"8473b1af-8045-4d72-bc38-d378eace25e6","name":"v0.3.2","release_date":"2026-11-01T00:46:45+00:00"},{"id":"47d4415f-62cc-4df7-8a0a-7db2125472c4","name":"v0.3.1","release_date":"2026-10-30T17:50:36+01:00"},{"id":"127e5b63-b4ac-40e7-bf00-22db921c8378","name":"v0.3.0","release_date":"2026-10-09T16:49:55+02:00"},{"id":"22fb9af8-d386-4984-a225-47f3467b22a4","name":"v0.2.0","release_date":"2026-06-08T15:19:12+02:00"},{"id":"05812a50-1e09-4839-8db9-50262d052caa","name":"v0.1.0","release_date":"2026-05-07T17:19:50+02:00"}]},"download_count":507}]}