{"id":25931131,"url":"https://github.com/devetek/ansible-role-cloud-provider","last_synced_at":"2025-06-11T17:36:19.272Z","repository":{"id":280078625,"uuid":"930872441","full_name":"devetek/ansible-role-cloud-provider","owner":"devetek","description":"Resource management for any cloud providers","archived":false,"fork":false,"pushed_at":"2025-03-01T04:31:30.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-01T05:24:08.453Z","etag":null,"topics":["ansible","automation","google-cloud-platform","infrastructure-as-code"],"latest_commit_sha":null,"homepage":"https://cloud.terpusat.com/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devetek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-11T10:55:45.000Z","updated_at":"2025-03-01T04:31:34.000Z","dependencies_parsed_at":"2025-03-01T05:34:17.291Z","dependency_job_id":null,"html_url":"https://github.com/devetek/ansible-role-cloud-provider","commit_stats":null,"previous_names":["devetek/ansible-role-cloud-provider"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devetek%2Fansible-role-cloud-provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devetek%2Fansible-role-cloud-provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devetek%2Fansible-role-cloud-provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devetek%2Fansible-role-cloud-provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devetek","download_url":"https://codeload.github.com/devetek/ansible-role-cloud-provider/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241758971,"owners_count":20015247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","automation","google-cloud-platform","infrastructure-as-code"],"created_at":"2025-03-03T23:57:43.328Z","updated_at":"2025-06-11T17:36:19.266Z","avatar_url":"https://github.com/devetek.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"[WIP] Ansible role: Cloud Provider Creators (GCP / AWS / Azure)\n=========\n\nThis Ansible role is designed to automate the provisioning, configuration, and management of cloud resources across various cloud providers. It simplifies and streamlines tasks such as creating, updating, and deleting resources like virtual machines, storage, networking, and more.\n\nKey Features:\n- **Provider Agnostic**: Supports multiple cloud providers (e.g., AWS, Azure, Google Cloud, etc.), allowing users to manage resources across different platforms using a unified approach.\n\n- **Declarative Resource Management**: Define the desired state of cloud resources (e.g., VM configurations, security groups, network interfaces) and let Ansible ensure that resources are maintained accordingly.\n\n- **Automation of Common Tasks**: Automates routine cloud resource operations such as creating instances, configuring networking, managing access controls, and setting up storage volumes.\n\n- **Scalability and Flexibility**: Easily adaptable to different use cases, from small environments to large-scale cloud infrastructure, by simply adjusting variables or extending the role.\nIdempotent: Ensures that applying the role multiple times doesn’t result in unwanted changes, maintaining consistency across cloud resources.\n\nThis role integrates seamlessly into CI/CD pipelines, enabling automated infrastructure management, efficient resource scaling, and consistent environment setup, improving operational efficiency and reducing manual errors.\n\n\nPrerequisites\n------------\n\nThis role requires the `google.cloud` Ansible collection to interact with Google Cloud services. Unfortunately, the official `google.cloud` collection has not been updated to support the latest Google Cloud Platform API. Therefore, it is necessary to route the target dependency from a custom Git URL. Install the collection using the following steps:\n\n### 1. Install `google.cloud` with CLI or file `requirements.yml`\n\n- CLI:\n```sh\nansible-galaxy collection install git+https://github.com/prakasa1904/google.cloud.git,master\n```\n\n- requirements.yml:\n```sh\ncollections:\n  - name: https://github.com/prakasa1904/google.cloud.git\n    type: git\n    version: master\n```\nExecute command: `ansible-galaxy install -r requirements.yml`\n\n### 2. Verify Installation\n\nAfter installation, you can verify that the collection is correctly installed by running:\n\n```sh\nansible-galaxy collection list google.cloud\n```\n\nThis command will display the installed version and confirm that it's sourced from the custom repository.\n\nRole Variables\n--------------\n\nList of variables in ansible-role-cloud-provider:\n\n```sh\n---\ncloud_provider: \"gcp\" # gcp | aws | proxmox\ncloud_provider_auth: {} # depend on provider\ncloud_provider_resource_type: # array of resource type\n  - \"global-forwarding-rule\"\ncloud_provider_resource_detail: {} # dictionary resource attribute detail\nstate: \"present\" # present | absent\n```\n\nExample Playbook\n----------------\n\n```sh\n---\n# includes all dependencies\n- name: Manage a Global Address\n  ansible.builtin.import_playbook: global-address.yaml\n  vars:\n    with_output: true\n    include_state: \"present\"\n\n- name: Manage a HTTPS Proxy (Backend URL Map Included)\n  ansible.builtin.import_playbook: target-https-proxy.yaml\n  vars:\n    with_output: true\n    include_state: \"present\"\n# includes all dependencies\n\n- name: Manage Global Forwarding Rule\n  hosts: localhost\n  gather_facts: false\n  \n  vars:\n    with_output: true\n    cloud_provider: \"gcp\"\n    cloud_provider_resource_type:\n      - \"global-forwarding-rule\"\n    cloud_provider_auth:\n      project_id: \"terpusat\"\n      auth_kind: \"serviceaccount\"\n      service_acount_token: \"../../credential.json\"\n    cloud_provider_resource_detail:\n      global_forwarding_rule:\n        name: \"global-forwarding-rule\"\n        description: \"Global Forwarding Rule\"\n        ip_address: \"{{ output_global_address['external-global-address'].address }}\"\n        port_range: \"443\"\n        target: \"{{ output_target_https_proxy['https-proxy'].selfLink }}\"\n\n\n  roles:\n    - role: dpanel.cloud-provider\n```\n\nLicense\n-------\n\nGNU General Public License v3.0 or later\n\nAuthor Information\n------------------\n\n[Nedya Prakasa]. Role for [dPanel].\n\n[dPanel]: https://cloud.terpusat.com/\n[Nedya Prakasa]: https://github.com/prakasa1904\n[mit]: https://opensource.org/licenses/MIT\n[devetek]: https://github.com/devetek\n[alicloud]: https://github.com/alibaba/alibaba.alicloud\n[amazon.aws]: https://github.com/ansible-collections/amazon.aws\n[google.cloud]: https://github.com/ansible-collections/google.cloud\n[microsoft.azure]: https://github.com/ansible-collections/azure\n[hetzner.hcloud]: https://github.com/ansible-collections/hetzner.hcloud\n[community.digitalocean]: https://github.com/ansible-collections/community.digitalocean","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevetek%2Fansible-role-cloud-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevetek%2Fansible-role-cloud-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevetek%2Fansible-role-cloud-provider/lists"}