{"id":15156223,"url":"https://github.com/masoud-maghsoudi/terraform-linux-vps-arvancloud","last_synced_at":"2026-01-20T13:01:41.293Z","repository":{"id":198199118,"uuid":"700282980","full_name":"masoud-maghsoudi/terraform-linux-vps-arvancloud","owner":"masoud-maghsoudi","description":"Create a fleet of Linux machines bound with SSH keys in ArvanCloud Service provider using Terraform","archived":false,"fork":false,"pushed_at":"2023-10-05T06:20:35.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T12:49:49.840Z","etag":null,"topics":["arvancloud","terraform","terraform-modules"],"latest_commit_sha":null,"homepage":"","language":"HCL","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/masoud-maghsoudi.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-04T09:51:42.000Z","updated_at":"2023-10-05T06:10:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"4791987e-17e7-49f7-89b4-509528dd975e","html_url":"https://github.com/masoud-maghsoudi/terraform-linux-vps-arvancloud","commit_stats":{"total_commits":6,"total_committers":1,"mean_commits":6.0,"dds":0.0,"last_synced_commit":"6be13b9ac9f9d4920480dd90d8d363f495007d13"},"previous_names":["masoud-maghsoudi/terraform-linux-vps-arvancloud"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/masoud-maghsoudi/terraform-linux-vps-arvancloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masoud-maghsoudi%2Fterraform-linux-vps-arvancloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masoud-maghsoudi%2Fterraform-linux-vps-arvancloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masoud-maghsoudi%2Fterraform-linux-vps-arvancloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masoud-maghsoudi%2Fterraform-linux-vps-arvancloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masoud-maghsoudi","download_url":"https://codeload.github.com/masoud-maghsoudi/terraform-linux-vps-arvancloud/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masoud-maghsoudi%2Fterraform-linux-vps-arvancloud/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28603404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["arvancloud","terraform","terraform-modules"],"created_at":"2024-09-26T19:01:54.600Z","updated_at":"2026-01-20T13:01:41.277Z","avatar_url":"https://github.com/masoud-maghsoudi.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-linux-vps-arvancloud\n\n## About\n\nThis project helps to create a fleet of Linux VPS bound with specific SSH key in ArvanCloud Service provider using Terraform. 4 modules have been developed in this project for different Linux distributions specified below:\n\n- CentOS\n  - 7\n- Debian\n  - 10 (Buster)\n  - 11 (Bullseye)\n  - 12 (Bookworm)\n- Rocky\n  - 8.5\n  - 9\n- Ubuntu\n  - 18.04 (Bionic)\n  - 20.04 (Focal)\n  - 22.04 (Jammy)\n\nyou can have a combination of linux machines from different distribiutions at the same time. even you can make customized OS template in your Arvanclpud [panel](https://panel.arvancloud.ir) and add it as module to the code and call it in `main.tf` file.\n\n## Example\n\nbefore running code you are required to get `API key` from your Arvancloud [panel](https://panel.arvancloud.ir) and set it in `terraform.tfvars`:\n\n```ini\nApiKey = \"someapikey0123456789\"\n```\n\nbased on Arvancloud access regions at the time of writing this document, you can assign variable `region` with one of options below:\n\n| Region alias | Description                                |\n| ------------ | ------------------------------------------ |\n| ir-thr-c1    | Simin Datacenter located in Iran, Tehran   |\n| ir-thr-c2    | Forough Datacenter located in Iran, Tehran |\n| ir-tbz-dc1   | Shahriar Datacenter located in Iran, Tabriz   |\n| ir-thr-w1    | Forough Datacenter located in Iran, Tehran |\n\nfor example, if you intend to provision a infrastructure in Tabriz datacenter set this in `teraform.tafvars`:\n\n```ini\nregion = \"ir-tbz-dc1\"\n```\n\nif you are not familiar with SSH keypairs, read [this](https://docs.oracle.com/en/cloud/cloud-at-customer/occ-get-started/generate-ssh-key-pair.html) instruction to generate an SSH keypair. in order to access your machines via SSH you need to set variable `public-key` in `terraform.tfvars` with the content of your generated public key file usually found in `~/.ssh/id_rsa.pub`. please consider keeping your private key securely.\n\n```ini\npublic_key = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmUs3m50UiEyBuswzg8gAUtI0ewRTHiqT6k1bsLCX3YWDrC7k+uLvBnxHoyKdCMedAg95Wf+rIc4Ph86m+LNyKrYN1Pji4/toWhNH1dQN5edadCnZXe9TrFwNIRfCSVsp1PDedAdvLut5V0mGLOA9l/iILjaCM+hw9ljV9XFnB5Na80R2T1C7oFXn2/bxp1+QCC5eUnVh3WkG9C9HNSh27eLP/mAW7OIhyt6PV5yOd8AtjIFoCAO0cCyMiH4btB488jWGezx47jRnfYBIHjkL9CnvkccAx3YSAiTcikIUJUDk3O+ptrkKckJ75Ea2yzMzvcAYhVEGrkw5gNzpX8x5R\"\n```\n\nvariable `server_count` is equivalent to the number of instances you wish to deploy, which is `0` by default. consider setting this parameter in `terraform.tfvars` before apply. for example if you want to create 3 instance from `Ubunut` and 2 instances of `Rocky Linux`:\n\n```ini\nserver_count_rocky  = 2\nserver-count-ubuntu = 3\n```\n\neach module has a variable named `image-name` which could be set in module call in `main.tf` file. their default value is set to the latest version of each distribiution at the time of writing this document.\n\n```terraform\nmodule \"server-ubuntu\" {\n  source       = \"./modules/server-ubuntu\"\n  region       = var.region\n  ApiKey       = var.ApiKey\n  key_name     = arvan_iaas_sshkey.ssh-key-user-terraform.name\n  server-count = var.server-count-ubuntu\n  image-name   = \"Ubunut/18.04\"\n}\n```\n\n## License\n\nMIT\n\n## Author Information\n\n| Author | Masoud Maghsoudi                      |\n| ------ | ------------------------------------- |\n| Email  | \u003cmasoud_maghsopudi@yahoo.com\u003e         |\n| Github | \u003chttps://github.com/masoud-maghsoudi\u003e |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasoud-maghsoudi%2Fterraform-linux-vps-arvancloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasoud-maghsoudi%2Fterraform-linux-vps-arvancloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasoud-maghsoudi%2Fterraform-linux-vps-arvancloud/lists"}