{"id":20078398,"url":"https://github.com/uyuni-project/sumaform","last_synced_at":"2025-05-05T22:32:27.818Z","repository":{"id":37989573,"uuid":"69466511","full_name":"uyuni-project/sumaform","owner":"uyuni-project","description":"Terraform configuration to quickly set up SUSE Manager/Uyuni environments","archived":false,"fork":false,"pushed_at":"2024-04-13T13:31:47.000Z","size":7080,"stargazers_count":70,"open_issues_count":72,"forks_count":71,"subscribers_count":31,"default_branch":"master","last_synced_at":"2024-04-14T08:06:51.880Z","etag":null,"topics":["aws","libvirt","openstack","packer","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uyuni-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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}},"created_at":"2016-09-28T13:34:44.000Z","updated_at":"2024-04-16T14:26:19.875Z","dependencies_parsed_at":"2023-02-18T12:16:21.818Z","dependency_job_id":"32082a2b-b60a-41a8-932a-97eaad6e89e1","html_url":"https://github.com/uyuni-project/sumaform","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyuni-project%2Fsumaform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyuni-project%2Fsumaform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyuni-project%2Fsumaform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyuni-project%2Fsumaform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uyuni-project","download_url":"https://codeload.github.com/uyuni-project/sumaform/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224470918,"owners_count":17316710,"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":["aws","libvirt","openstack","packer","terraform"],"created_at":"2024-11-13T15:14:15.355Z","updated_at":"2025-05-05T22:32:27.809Z","avatar_url":"https://github.com/uyuni-project.png","language":"HCL","readme":"![sumaform logo](help/sumaform-logo-color.svg)\n\n`sumaform` is a way to quickly configure test Uyuni and SUSE Manager infrastructures with clients and servers.\n\n[![CI validation tests](https://github.com/uyuni-project/sumaform/actions/workflows/ci-validation.yml/badge.svg?branch=master)](https://github.com/uyuni-project/sumaform/actions/workflows/ci-validation.yml)\n[![Join the chat at https://gitter.im/sumaform/Lobby](https://badges.gitter.im/sumaform/Lobby.svg)](https://gitter.im/sumaform/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n## Installation\n\n**Terraform version**: 1.0.10\n\n**Libvirt provider version**: 0.8.1\n\nNOTE: to deploy development versions of SUSE Manager you will have to have [SUSE's internal CA certificates](http://ca.suse.de/) installed on your system.\n\nYou will need to edit HCL ([HashiCorp Configuration Language](https://github.com/hashicorp/hcl)) files. Syntax highlighting is available in major text editors like [atom](https://atom.io/packages/language-hcl).\n\n### Prerequisites for openSUSE and SUSE Linux Enterprise Server\n\nExecute the following on openSUSE and SUSE Linux Enterprise Server:\n\n```bash\n# Uncomment one of the following lines depending on your distro\n\n#sudo zypper addrepo http://download.opensuse.org/repositories/systemsmanagement:/sumaform/openSUSE_Tumbleweed/systemsmanagement:sumaform.repo\n#sudo zypper addrepo http://download.opensuse.org/repositories/systemsmanagement:/sumaform/openSUSE_Leap_15.2/systemsmanagement:sumaform.repo\n#sudo zypper addrepo http://download.opensuse.org/repositories/systemsmanagement:/sumaform/openSUSE_Leap_15.3/systemsmanagement:sumaform.repo\n#sudo zypper addrepo http://download.opensuse.org/repositories/systemsmanagement:/sumaform/SLE_12_SP5/systemsmanagement:sumaform.repo\n#sudo zypper addrepo http://download.opensuse.org/repositories/systemsmanagement:/sumaform/SLE_15_SP3/systemsmanagement:sumaform.repo\n\nsudo zypper install git-core\nsudo zypper install --from systemsmanagement_sumaform terraform terraform-provider-libvirt\ngit clone https://github.com/uyuni-project/sumaform.git\n```\n\n### Prerequisites for Ubuntu and Debian\n\nExecute the following commands:\n\n```bash\nsudo apt install alien\nwget http://download.opensuse.org/repositories/systemsmanagement:/sumaform/SLE_15_SP1/x86_64/terraform.rpm\nsudo alien -i terraform.rpm\nwget http://download.opensuse.org/repositories/systemsmanagement:/sumaform/SLE_15_SP1/x86_64/terraform-provider-libvirt.rpm\nsudo alien -i terraform-provider-libvirt.rpm\ngit clone https://github.com/uyuni-project/sumaform.git\n```\n\n## Backend choice\n\n### Backends explained\n\n`sumaform` can deploy virtual machines to:\n\n- single libvirt hosts\n- Amazon Web Services\n- null backend\n\n**The simplest, recommended setup is to use libvirt on your local host.** That needs at least 8 GB of RAM in your machine.\nIf you need a lot of VMs or lack hardware you probably want to use an external libvirt host with bridged networking.\n\nThe Amazon Web Services backend is currently under maintenance and is not immediately usable as-is. We plan to restore it soon.\n\nThe null backend can be useful in a wide variety of scenarios, for example:\n\n- Test configurations before going live in another supported backend\n- Cases in which the virtual infrastructure is outside of the Terraform user's control\n- Cover architectures that will maybe never be covered by any other Terraform plugin\n\nSee [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for more information about configuring the backend.\nEach backend has a README file with further configuration instructions.\n\nTo choose the backend in use one should create a symbolic link to a `backend_module` module.\n\n```bash\nln -s ../backend_modules/\u003cBACKEND\u003e/ modules/backend\n```\n\n### Preparing for the libvirt backend\n\nTo use the libvirt provider, install and enable libvirt before you attempt to run the terraform deployment.\nThe `virt-manager` package is recommended because it configures default resources that the terraform deployment uses, e.g. the `default` virtual network.\n\n```bash\n# Download and install libvirt and virt-manager, for example:\nsudo zypper install libvirt virt-manager\n# On Ubuntu/Debian:\nsudo apt install virt-manager qemu-kvm libvirt-daemon-system\n\n# Start libvirt\nsudo systemctl start libvirtd\n\n# Optionally, enable libvirt so that it starts at boot time\nsudo systemctl enable libvirtd\n```\n\nCreate a symbolic link to the `libvirt` backend module:\n\n```bash\nln -s ../backend_modules/libvirt/ modules/backend\n```\n\nCopy the libvirt example file and adjust it:\n\n```bash\ncp main.tf.libvirt.example main.tf\n```\n\n## Basic `main.tf` configuration\n\nIn `sumaform` you define a set of virtual machines in a `main.tf` configuration file, then run Terraform to have them deployed. Contents of the file vary slightly depending on the backend you choose.\n\nRefer to the backend-specific READMEs to get started:\n\n- [libvirt README](backend_modules/libvirt/README.md)\n- [AWS README](backend_modules/aws/README.md)\n- [AZURE README](backend_modules/azure/README.md)\n- [SSH README](backend_modules/ssh/README.md)\n- [NULL README](backend_modules/null/README.md)\n\n## Typical use\n\nRefer to the [official guides](https://www.terraform.io/docs/index.html) for a general understanding of Terraform and full commands.\n\nFor a very quick start:\n\n```bash\nvim main.tf     # change your VM setup\nterraform init  # populate modules\nterraform validate # check if the configuration is valid\nterraform apply # prepare and apply a plan to create your systems (after manual confirmation)\n```\n\n### Common Variables\n\n**cc_username/cc_password**: Credentials for the [SUSE Customer Center](https://scc.suse.com/).\nSet these credentials if you are deploying SUMA, or synchronizing SUMA repositories.\nThey can be omitted when deploying Uyuni.\n\n**images**: In the `base` module, the `images` variable specifies the images that you want to download and use in your installation, for example:\n\n```bash\n# main.tf file contents\nmodule \"base\" {\n  source = \"./modules/base\"\n\n  images = [\n    \"centos7o\",\n    \"almalinux8o\",\n    \"opensuse155o\",\n    \"sles15sp4o\",\n    \"sles15sp5o\",\n    \"sles15sp6o\",\n    \"sles12sp5o\",\n    \"ubuntu2004o\",\n    \"ubuntu2204o\"\n  ]\n# ...\n}\n```\n\n## Advanced use\n\n- To run the Cucumber testsuite for Uyuni or SUSE Manager, see [README_TESTING.md](README_TESTING.md)\n- For any other use, please see [README_ADVANCED.md](README_ADVANCED.md)\n\n## I have a problem!\n\nCheck [TROUBLESHOOTING.md](TROUBLESHOOTING.md) first, if that does not help feel free to [join the Gitter chat](https://gitter.im/sumaform/Lobby)!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuyuni-project%2Fsumaform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuyuni-project%2Fsumaform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuyuni-project%2Fsumaform/lists"}