{"id":24503631,"url":"https://github.com/plus3it/terraform-aws-watchmaker","last_synced_at":"2026-01-02T22:15:15.790Z","repository":{"id":37547640,"uuid":"116416628","full_name":"plus3it/terraform-aws-watchmaker","owner":"plus3it","description":"Terraform module for Watchmaker","archived":false,"fork":false,"pushed_at":"2025-02-20T14:16:16.000Z","size":1210,"stargazers_count":8,"open_issues_count":2,"forks_count":21,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-02-20T15:27:26.323Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/plus3it/watchmaker/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plus3it.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":"2018-01-05T18:51:41.000Z","updated_at":"2025-02-20T14:16:19.000Z","dependencies_parsed_at":"2024-08-19T16:47:27.891Z","dependency_job_id":"837df021-27ef-4ec0-9bff-86aff061e308","html_url":"https://github.com/plus3it/terraform-aws-watchmaker","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fterraform-aws-watchmaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fterraform-aws-watchmaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fterraform-aws-watchmaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fterraform-aws-watchmaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plus3it","download_url":"https://codeload.github.com/plus3it/terraform-aws-watchmaker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243703863,"owners_count":20334057,"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":"2025-01-21T23:17:53.656Z","updated_at":"2026-01-02T22:15:15.743Z","avatar_url":"https://github.com/plus3it.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n[![License](https://img.shields.io/github/license/plus3it/terraform-aws-watchmaker.svg)](./LICENSE)\n[![pullreminders](https://pullreminders.com/badge.svg)](https://pullreminders.com?ref=badge)\n\n# Watchmaker AWS Terraform Module\n\n## terraform-aws-watchmaker\n\n## Overview\n\nThis repo contains a set of Terraform modules that utilizes the Cloudformation Stack data\nsource to deploy AWS instances (Linux or Windows) configured with Watchmaker.  The resources\ncan be deployed as individual instances or in an AutoScaling Group.\n\nFor more information on installing and using Watchmaker, go to \u003chttps://watchmaker.readthedocs.io\u003e.\n\n## How To Use This module\n\nThis repo is structured as follows:\n\n* [Root](https://github.com/eemperor/terraform-aws-watchmaker/tree/master): This folder contains an example of Terraform code that uses the [Linux Instance module](https://github.com/eemperor/terraform-aws-watchmaker/tree/master/modules/lx-instance) to deploy a Watchmaker Linux instance.\n* [Modules](https://github.com/eemperor/terraform-aws-watchmaker/tree/master/modules): This folder contains the Terrafrom modules that are used to create the Watchmaker resources.\n* [Examples](https://github.com/eemperor/terraform-aws-watchmaker/tree/master/examples): This folder contains working examples of how to use the modules.  Users will need to modify the parameters for their specific AWS environment.\n\nTo use this module, create a Terraform file with the same format as ```main.tf``` in the root or example directories with variables set to your desired configuration.\n\nIn your Terraform working directory, run the following commands:\n\n```bash\n$ terraform init\n$ terraform plan\n$ terraform apply\n```\n\n\u003c!-- BEGIN TFDOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.12 |\n\n## Providers\n\nNo providers.\n\n## Resources\n\nNo resources.\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_AmiDistro\"\u003e\u003c/a\u003e [AmiDistro](#input\\_AmiDistro) | (Required) Linux distro of the AMI | `string` | n/a | yes |\n| \u003ca name=\"input_AmiId\"\u003e\u003c/a\u003e [AmiId](#input\\_AmiId) | (Required) ID of the AMI to launch | `string` | n/a | yes |\n| \u003ca name=\"input_KeyPairName\"\u003e\u003c/a\u003e [KeyPairName](#input\\_KeyPairName) | (Required) Public/private key pairs allow you to securely connect to your instance after it launches | `string` | n/a | yes |\n| \u003ca name=\"input_Name\"\u003e\u003c/a\u003e [Name](#input\\_Name) | (Required) Name of CloudFormation Stack | `string` | n/a | yes |\n| \u003ca name=\"input_SecurityGroupIds\"\u003e\u003c/a\u003e [SecurityGroupIds](#input\\_SecurityGroupIds) | (Required) List of security groups to apply to the instance | `string` | n/a | yes |\n| \u003ca name=\"input_SubnetId\"\u003e\u003c/a\u003e [SubnetId](#input\\_SubnetId) | (Required) ID of the subnet to assign to the instance | `string` | n/a | yes |\n| \u003ca name=\"input_AppScriptParams\"\u003e\u003c/a\u003e [AppScriptParams](#input\\_AppScriptParams) | (Optional) Parameter string to pass to the application script. Ignored if AppScriptUrl is blank | `string` | `null` | no |\n| \u003ca name=\"input_AppScriptShell\"\u003e\u003c/a\u003e [AppScriptShell](#input\\_AppScriptShell) | (Optional) Shell with which to execute the application script. Ignored if AppScriptUrl is blank | `string` | `\"bash\"` | no |\n| \u003ca name=\"input_AppScriptUrl\"\u003e\u003c/a\u003e [AppScriptUrl](#input\\_AppScriptUrl) | (Optional) S3 URL to the application script in an S3 bucket (s3://). Leave blank to launch without an application script. If specified, an appropriate InstanceRole is required | `string` | `null` | no |\n| \u003ca name=\"input_AppVolumeDevice\"\u003e\u003c/a\u003e [AppVolumeDevice](#input\\_AppVolumeDevice) | (Optional) Device to mount an extra EBS volume. Leave blank to launch without an extra application volume | `string` | `null` | no |\n| \u003ca name=\"input_AppVolumeMountPath\"\u003e\u003c/a\u003e [AppVolumeMountPath](#input\\_AppVolumeMountPath) | (Optional) Filesystem path to mount the extra app volume. Ignored if AppVolumeDevice is blank | `string` | `\"/opt/data\"` | no |\n| \u003ca name=\"input_AppVolumeSize\"\u003e\u003c/a\u003e [AppVolumeSize](#input\\_AppVolumeSize) | (Optional) Size in GB of the EBS volume to create. Ignored if AppVolumeDevice is blank | `string` | `\"1\"` | no |\n| \u003ca name=\"input_AppVolumeType\"\u003e\u003c/a\u003e [AppVolumeType](#input\\_AppVolumeType) | (Optional) Type of EBS volume to create. Ignored if AppVolumeDevice is blank | `string` | `\"gp2\"` | no |\n| \u003ca name=\"input_CfnEndpointUrl\"\u003e\u003c/a\u003e [CfnEndpointUrl](#input\\_CfnEndpointUrl) | (Optional) URL to the CloudFormation Endpoint. e.g. https://cloudformation.us-east-1.amazonaws.com | `string` | `\"https://cloudformation.us-east-1.amazonaws.com\"` | no |\n| \u003ca name=\"input_CfnGetPipUrl\"\u003e\u003c/a\u003e [CfnGetPipUrl](#input\\_CfnGetPipUrl) | (Optional) URL to get-pip.py | `string` | `\"https://bootstrap.pypa.io/2.6/get-pip.py\"` | no |\n| \u003ca name=\"input_EnableRepos\"\u003e\u003c/a\u003e [EnableRepos](#input\\_EnableRepos) | (Optional) Specify repos to be enabled by yum-config-manager | `string` | `null` | no |\n| \u003ca name=\"input_InstanceRole\"\u003e\u003c/a\u003e [InstanceRole](#input\\_InstanceRole) | (Optional) IAM instance role to apply to the instance | `string` | `null` | no |\n| \u003ca name=\"input_InstanceType\"\u003e\u003c/a\u003e [InstanceType](#input\\_InstanceType) | (Optional) Amazon EC2 instance type | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_NoPublicIp\"\u003e\u003c/a\u003e [NoPublicIp](#input\\_NoPublicIp) | (Optional) Controls whether to assign the instance a public IP. Recommended to leave at true _unless_ launching in a public subnet | `bool` | `true` | no |\n| \u003ca name=\"input_NoReboot\"\u003e\u003c/a\u003e [NoReboot](#input\\_NoReboot) | (Optional) Controls whether to reboot the instance as the last step of cfn-init execution | `bool` | `false` | no |\n| \u003ca name=\"input_NoUpdates\"\u003e\u003c/a\u003e [NoUpdates](#input\\_NoUpdates) | (Optional) Controls whether to run yum update during a stack update (On the initial instance launch, Watchmaker _always_ installs updates) | `bool` | `false` | no |\n| \u003ca name=\"input_PrivateIp\"\u003e\u003c/a\u003e [PrivateIp](#input\\_PrivateIp) | (Optional) Set a static, primary private IP. Leave blank to auto-select a free IP | `string` | `null` | no |\n| \u003ca name=\"input_PypiIndexUrl\"\u003e\u003c/a\u003e [PypiIndexUrl](#input\\_PypiIndexUrl) | (Optional) URL to the PyPi Index | `string` | `\"https://pypi.org/simple\"` | no |\n| \u003ca name=\"input_ToggleCfnInitUpdate\"\u003e\u003c/a\u003e [ToggleCfnInitUpdate](#input\\_ToggleCfnInitUpdate) | (Optional) A/B toggle that forces a change to instance metadata, triggering the cfn-init update sequence | `string` | `\"A\"` | no |\n| \u003ca name=\"input_WatchmakerAdminGroups\"\u003e\u003c/a\u003e [WatchmakerAdminGroups](#input\\_WatchmakerAdminGroups) | (Optional) Colon-separated list of domain groups that should have admin permissions on the EC2 instance | `string` | `null` | no |\n| \u003ca name=\"input_WatchmakerAdminUsers\"\u003e\u003c/a\u003e [WatchmakerAdminUsers](#input\\_WatchmakerAdminUsers) | (Optional) Colon-separated list of domain users that should have admin permissions on the EC2 instance | `string` | `null` | no |\n| \u003ca name=\"input_WatchmakerComputerName\"\u003e\u003c/a\u003e [WatchmakerComputerName](#input\\_WatchmakerComputerName) | (Optional) Sets the hostname/computername within the OS | `string` | `null` | no |\n| \u003ca name=\"input_WatchmakerConfig\"\u003e\u003c/a\u003e [WatchmakerConfig](#input\\_WatchmakerConfig) | (Optional) URL to a Watchmaker config file | `string` | `null` | no |\n| \u003ca name=\"input_WatchmakerEnvironment\"\u003e\u003c/a\u003e [WatchmakerEnvironment](#input\\_WatchmakerEnvironment) | (Optional) Environment in which the instance is being deployed | `string` | `null` | no |\n| \u003ca name=\"input_WatchmakerOuPath\"\u003e\u003c/a\u003e [WatchmakerOuPath](#input\\_WatchmakerOuPath) | (Optional) DN of the OU to place the instance when joining a domain. If blank and WatchmakerEnvironment enforces a domain join, the instance will be placed in a default container. Leave blank if not joining a domain, or if WatchmakerEnvironment is false | `string` | `null` | no |\n| \u003ca name=\"input_WatchmakerS3Source\"\u003e\u003c/a\u003e [WatchmakerS3Source](#input\\_WatchmakerS3Source) | (Optional) Flag that tells watchmaker to use its instance role to retrieve watchmaker content from S3 | `bool` | `false` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_watchmaker-lx-instance-stack\"\u003e\u003c/a\u003e [watchmaker-lx-instance-stack](#output\\_watchmaker-lx-instance-stack) | CloudFormation stack object for watchmaker-lx-instance-stack |\n\n\u003c!-- END TFDOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplus3it%2Fterraform-aws-watchmaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplus3it%2Fterraform-aws-watchmaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplus3it%2Fterraform-aws-watchmaker/lists"}