Legacy Roles
A list of legacy roles.
GET /api/v1/roles/?format=api&page=3648
{ "count": 37865, "next": "http://galaxy.ansible.com/api/v1/roles/?format=api&page=3649", "previous": "http://galaxy.ansible.com/api/v1/roles/?format=api&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 <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 <[email protected]>\n\n* Remove the commented out debug tasks\n\nCo-Authored-By: Claude Opus 5.5 <[email protected]>\n\n---------\n\nCo-authored-by: Sebastiaan Mannem <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 <[email protected]>\n\n* Molecule: compare the port as a string (Ansible templates \"5432\" to a number)\n\nCo-Authored-By: Claude Opus 5.5 <[email protected]>\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 <[email protected]>\n\n---------\n\nCo-authored-by: Sebastiaan Mannem <[email protected]>\nCo-authored-by: Claude Opus 5.5 <[email protected]>", "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 } ] }