{"id":15190027,"url":"https://github.com/ansible-community/molecule-openstack","last_synced_at":"2025-10-02T04:31:46.344Z","repository":{"id":40559068,"uuid":"217873278","full_name":"ansible-community/molecule-openstack","owner":"ansible-community","description":"Molecule OpenStack Driver","archived":true,"fork":false,"pushed_at":"2022-12-26T19:44:06.000Z","size":64,"stargazers_count":15,"open_issues_count":5,"forks_count":12,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-01-14T15:04:44.752Z","etag":null,"topics":["ansible","hacktoberfest","molecule","molecule-driver"],"latest_commit_sha":null,"homepage":"https://github.com/ansible-community/molecule-plugins/discussions","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ansible-community.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-27T15:13:15.000Z","updated_at":"2023-08-30T16:30:55.000Z","dependencies_parsed_at":"2023-01-31T01:00:18.592Z","dependency_job_id":null,"html_url":"https://github.com/ansible-community/molecule-openstack","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible-community%2Fmolecule-openstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible-community%2Fmolecule-openstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible-community%2Fmolecule-openstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible-community%2Fmolecule-openstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ansible-community","download_url":"https://codeload.github.com/ansible-community/molecule-openstack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234934661,"owners_count":18909706,"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","hacktoberfest","molecule","molecule-driver"],"created_at":"2024-09-27T20:02:40.309Z","updated_at":"2025-10-02T04:31:46.003Z","avatar_url":"https://github.com/ansible-community.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"*************************\nMolecule OpenStack Plugin\n*************************\n\n.. image:: https://badge.fury.io/py/molecule-openstack.svg\n   :target: https://badge.fury.io/py/molecule-openstack\n   :alt: PyPI Package\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://github.com/python/black\n   :alt: Python Black Code Style\n\n.. image:: https://img.shields.io/badge/Code%20of%20Conduct-Ansible-silver.svg\n   :target: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html\n   :alt: Ansible Code of Conduct\n\n.. image:: https://img.shields.io/badge/Mailing%20lists-Ansible-orange.svg\n   :target: https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information\n   :alt: Ansible mailing lists\n\n.. image:: https://img.shields.io/badge/license-MIT-brightgreen.svg\n   :target: LICENSE\n   :alt: Repository License\n\nMolecule OpenStack is designed to allow use of OpenStack Clouds for\nprovisioning test resources.\n\nPlease note that this driver is currently in its early stage of development.\n\n.. _installation-and-usage:\n\nInstallation and Usage\n======================\n\nInstall molecule-openstack and pre-requisites:\n\n.. code-block::\n\n   pip install molecule-openstack ansible openstacksdk\n\nCreate a new role with molecule using the openstack driver:\n\n.. code-block::\n\n   molecule init role \u003crole_name\u003e -d openstack\n\nConfigure ``\u003crole_name\u003e/molecule/default/molecule.yaml`` with required\nparameters based on your openstack cloud. A simple config is:\n\n.. code-block:: yaml\n\n   dependency:\n      name: galaxy\n   driver:\n      name: openstack\n   platforms:\n   - name: molecule-foo\n      image: \"ubuntu\"\n      flavor: \"m1.medium\"\n      network: \"private\"\n      fip_pool: \"public\"\n      ssh_user: \"ubuntu\"\n   provisioner:\n      name: ansible\n   verifier:\n      name: ansible\n\nArgument ``fip_pool`` in only required when network is not an external\nnetwork. Instead of configuring\n``\u003crole_name\u003e/molecule/default/molecule.yaml`` the following environment\nvariables can be exported:\n\n.. code-block::\n\n   $ export MOLECULE_OPENSTACK_IMAGE=ubuntu\n   $ export MOLECULE_OPENSTACK_FLAVOR=m1.medium\n   $ export MOLECULE_OPENSTACK_NETWORK=private\n   $ export MOLECULE_OPENSTACK_FIP_POOL=public\n   $ export MOLECULE_OPENSTACK_SSH_USER=ubuntu\n\nAfter this molecule can be run from the base-dir of the role:\n\n.. code-block::\n\n   source ~/.openrc\n   molecule test\n\n\n.. _functional-tests:\n\nFunctional Tests\n================\n\nFunctional tests can be run with tox but require access to an openstack\ncluster. They are not part of `ci` yet. To run them locally:\n\n.. code-block::\n\n   $ export MOLECULE_OPENSTACK_IMAGE=\u003cimage_name\u003e\n   $ export MOLECULE_OPENSTACK_FLAVOR=\u003cflavor\u003e\n   $ export MOLECULE_OPENSTACK_NETWORK=\u003cnetwork\u003e\n   $ export MOLECULE_OPENSTACK_FIP_POOL=\u003cfip_pool_if_required\u003e\n   $ export MOLECULE_OPENSTACK_SSH_USER=\u003cssh_user\u003e\n\n   $ source openstack_openrc.sh\n\n   $ tox -e py38-functional   # or 39,310\n\n\n.. _get-involved:\n\nGet Involved\n============\n\n* Join us in the ``#ansible-devtools`` channel on `Libera`_.\n* Join the discussion in `molecule-users Forum`_.\n* Join the community working group by checking the `wiki`_.\n* Want to know about releases, subscribe to `ansible-announce list`_.\n* For the full list of Ansible email Lists, IRC channels see the\n  `communication page`_.\n\n.. _`Libera`: https://web.libera.chat/?channel=#ansible-devtools\n.. _`molecule-users Forum`: https://groups.google.com/forum/#!forum/molecule-users\n.. _`wiki`: https://github.com/ansible/community/wiki/Molecule\n.. _`ansible-announce list`: https://groups.google.com/group/ansible-announce\n.. _`communication page`: https://docs.ansible.com/ansible/latest/community/communication.html\n\n.. _license:\n\nLicense\n=======\n\nThe `MIT`_ License.\n\n.. _`MIT`: https://github.com/ansible/molecule/blob/master/LICENSE\n\nThe logo is licensed under the `Creative Commons NoDerivatives 4.0 License`_.\n\nIf you have some other use in mind, contact us.\n\n.. _`Creative Commons NoDerivatives 4.0 License`: https://creativecommons.org/licenses/by-nd/4.0/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansible-community%2Fmolecule-openstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fansible-community%2Fmolecule-openstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansible-community%2Fmolecule-openstack/lists"}