{"id":18907780,"url":"https://github.com/infraspecdev/terraform-aws-gitlab-shell-runner","last_synced_at":"2026-01-27T14:33:02.256Z","repository":{"id":185013625,"uuid":"592178879","full_name":"infraspecdev/terraform-aws-gitlab-shell-runner","owner":"infraspecdev","description":"Terraform module which provisions EC2 instances as Shell Runners for Gitlab Projects","archived":false,"fork":false,"pushed_at":"2024-11-27T09:59:44.000Z","size":30,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-12-31T11:57:28.789Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HCL","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/infraspecdev.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}},"created_at":"2023-01-23T05:48:00.000Z","updated_at":"2024-11-27T09:59:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"dbe4fcb6-1a47-43cb-b50f-fdd43cdebe54","html_url":"https://github.com/infraspecdev/terraform-aws-gitlab-shell-runner","commit_stats":null,"previous_names":["infraspecdev/terraform-aws-gitlab-shell-runner"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-gitlab-shell-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-gitlab-shell-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-gitlab-shell-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-gitlab-shell-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infraspecdev","download_url":"https://codeload.github.com/infraspecdev/terraform-aws-gitlab-shell-runner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239891371,"owners_count":19714131,"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":[],"created_at":"2024-11-08T09:23:17.567Z","updated_at":"2026-01-27T14:32:57.226Z","avatar_url":"https://github.com/infraspecdev.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gitlab-shell-runner\n\nThis Terraform module provisions an AWS EC2 instance and configures it as a GitLab Runner with Shell executor, allowing it to run CI/CD jobs for your GitLab projects. The module can be used to deploy multiple runners and can be customized to your specific needs.\n\n## Usage\n\n```hcl\nmodule \"gitlab_shell_runner\" {\n  source = \"https://github.com/infraspecdev/terraform-aws-gitlab-shell-runner\"\n\n  ami_id                    = \"ami-0addfae420fd47aab\"\n  instance_type             = \"t2.micro\"\n  instance_count            = 2\n  vpc_security_group_ids    = [\"sg-0b0b0b0b0b0b0b0b0\"]\n  subnet_id                 = \"subnet-0b0e1c4b5b1b1b1b1\"\n  gitlab_url                = \"https://gitlab.example.com\"\n  runner_registration_token = \"runner-registration-token-here\"\n  ssh_public_key            = \"ssh-public-key-here\"\n}\n```\n\n## Examples\n\n[Example](examples/gitlab-shell-runner-setup)\n\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | ~\u003e 1.3.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 4.49.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 4.51.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_instance.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_key_pair.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/key_pair) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_additional_tags\"\u003e\u003c/a\u003e [additional\\_tags](#input\\_additional\\_tags) | Additional tags to apply to the resources | `map(string)` | `{}` | no |\n| \u003ca name=\"input_ami_id\"\u003e\u003c/a\u003e [ami\\_id](#input\\_ami\\_id) | AMI to use for the instance | `string` | `\"ami-0addfae420fd47aab\"` | no |\n| \u003ca name=\"input_gitlab_url\"\u003e\u003c/a\u003e [gitlab\\_url](#input\\_gitlab\\_url) | URL of your Gitlab instance | `string` | n/a | yes |\n| \u003ca name=\"input_instance_count\"\u003e\u003c/a\u003e [instance\\_count](#input\\_instance\\_count) | Number of instances to provision | `number` | n/a | yes |\n| \u003ca name=\"input_instance_type\"\u003e\u003c/a\u003e [instance\\_type](#input\\_instance\\_type) | Type of instance to provision | `string` | n/a | yes |\n| \u003ca name=\"input_run_untagged_jobs\"\u003e\u003c/a\u003e [run\\_untagged\\_jobs](#input\\_run\\_untagged\\_jobs) | Should run untagged jobs or not | `bool` | `true` | no |\n| \u003ca name=\"input_runner_description\"\u003e\u003c/a\u003e [runner\\_description](#input\\_runner\\_description) | Description for Gitlab Runners | `string` | `\"Shell Runner\"` | no |\n| \u003ca name=\"input_runner_locked\"\u003e\u003c/a\u003e [runner\\_locked](#input\\_runner\\_locked) | Should Lock the runners or not | `bool` | `false` | no |\n| \u003ca name=\"input_runner_registration_token\"\u003e\u003c/a\u003e [runner\\_registration\\_token](#input\\_runner\\_registration\\_token) | Registration token for Gitlab Runners | `string` | n/a | yes |\n| \u003ca name=\"input_runner_tags\"\u003e\u003c/a\u003e [runner\\_tags](#input\\_runner\\_tags) | Tags for Gitlab Runners for filtering | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"shell\",\u003cbr\u003e  \"aws\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_ssh_public_key\"\u003e\u003c/a\u003e [ssh\\_public\\_key](#input\\_ssh\\_public\\_key) | Existing SSH public key to use for the key pair | `string` | `null` | no |\n| \u003ca name=\"input_subnet_id\"\u003e\u003c/a\u003e [subnet\\_id](#input\\_subnet\\_id) | VPC Subnet ID to launch in | `string` | n/a | yes |\n| \u003ca name=\"input_vpc_security_group_ids\"\u003e\u003c/a\u003e [vpc\\_security\\_group\\_ids](#input\\_vpc\\_security\\_group\\_ids) | List of security group IDs to associate | `list(string)` | n/a | yes |\n\n## Outputs\n\nNo outputs.\n\u003c!-- END_TF_DOCS --\u003e\n\n## Authors\n\nModule maintained by [Infraspec](https://github.com/infraspecdev).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfraspecdev%2Fterraform-aws-gitlab-shell-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfraspecdev%2Fterraform-aws-gitlab-shell-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfraspecdev%2Fterraform-aws-gitlab-shell-runner/lists"}