Merge branch 'feature/KASM-7433-update-ancillary-repos-that-handle-install-stigs-etc-for-removal-of-share-functionality' into 'develop'
KASM-7433 "Feature/ update ancillary repos that handle install stigs etc for removal of share functionality" Closes KASM-7433 See merge request kasm-technologies/internal/terraform!22
|
|
@ -15,7 +15,7 @@ is deployed.
|
|||
|
||||
![Diagram][Image_Diagram]
|
||||
|
||||
[Image_Diagram]: https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/terraform/diagrams/aws-multi-region-new.jpg "Diagram"
|
||||
[Image_Diagram]: ../readme_diagrams/multi_region.png "Diagram"
|
||||
|
||||
# Pre-Configuration
|
||||
|
||||
|
|
@ -120,7 +120,6 @@ No resources.
|
|||
| <a name="input_project_name"></a> [project\_name](#input\_project\_name) | The name of the deployment (e.g dev, staging). A short single word | `string` | n/a | yes |
|
||||
| <a name="input_proxy_hdd_size_gb"></a> [proxy\_hdd\_size\_gb](#input\_proxy\_hdd\_size\_gb) | The HDD size in GB to configure for the Kasm dedicated proxy instances | `number` | n/a | yes |
|
||||
| <a name="input_proxy_instance_type"></a> [proxy\_instance\_type](#input\_proxy\_instance\_type) | The instance type for the dedicated proxy node | `string` | `""` | no |
|
||||
| <a name="input_redis_password"></a> [redis\_password](#input\_redis\_password) | The password for the Redis server. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_secondary_regions_settings"></a> [secondary\_regions\_settings](#input\_secondary\_regions\_settings) | Map of Kasm settings for secondary regions | <pre>map(object({<br> agent_region = string<br> agent_vpc_cidr = string<br> ec2_ami_id = string<br> })<br> )</pre> | n/a | yes |
|
||||
| <a name="input_service_registration_token"></a> [service\_registration\_token](#input\_service\_registration\_token) | The service registration token value for cpx RDP servers to authenticate to webapps. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_ssh_access_cidrs"></a> [ssh\_access\_cidrs](#input\_ssh\_access\_cidrs) | CIDR notation of the bastion host allowed to SSH in to the machines | `list(string)` | <pre>[<br> "0.0.0.0/0"<br>]</pre> | no |
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ module "primary_region" {
|
|||
db_hdd_size_gb = var.db_hdd_size_gb
|
||||
swap_size = var.swap_size
|
||||
database_password = var.database_password
|
||||
redis_password = var.redis_password
|
||||
user_password = var.user_password
|
||||
admin_password = var.admin_password
|
||||
manager_token = var.manager_token
|
||||
|
|
@ -69,7 +68,6 @@ module "primary_region_webapps_and_agents" {
|
|||
project_name = var.project_name
|
||||
kasm_build = var.kasm_build
|
||||
database_password = var.database_password
|
||||
redis_password = var.redis_password
|
||||
manager_token = var.manager_token
|
||||
service_registration_token = var.service_registration_token
|
||||
aws_key_pair = module.primary_aws_key_pairs.aws_key_pair_name
|
||||
|
|
@ -110,7 +108,6 @@ module "region2_webapps" {
|
|||
project_name = var.project_name
|
||||
kasm_build = var.kasm_build
|
||||
database_password = var.database_password
|
||||
redis_password = var.redis_password
|
||||
manager_token = var.manager_token
|
||||
|
||||
kasm_db_ip = module.primary_region.kasm_db_ip
|
||||
|
|
@ -186,7 +183,6 @@ module "region2_aws_key_pairs" {
|
|||
# project_name = var.project_name
|
||||
# kasm_build = var.kasm_build
|
||||
# database_password = var.database_password
|
||||
# redis_password = var.redis_password
|
||||
# manager_token = var.manager_token
|
||||
# aws_key_pair = module.region2_aws_key_pairs
|
||||
# kasm_db_ip = module.primary_region.kasm_db_ip
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
<mxCell id="98" value="DB Subnet 1<br>10.0.0.0/24" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_security_group;grStroke=0;strokeColor=#248814;fillColor=#E9F3E6;verticalAlign=top;align=left;spacingLeft=30;fontColor=#248814;dashed=0;" parent="2" vertex="1">
|
||||
<mxGeometry x="273.5" y="499" width="145" height="135" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="120" value="Kasm Database<br>Kasm Redis" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ec2;" parent="98" vertex="1">
|
||||
<mxCell id="120" value="Kasm Database" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ec2;" parent="98" vertex="1">
|
||||
<mxGeometry x="50" y="49" width="40" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="190" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;labelBackgroundColor=none;strokeColor=#7A0000;strokeWidth=3;fontSize=11;fontColor=#4D4D4D;" edge="1" parent="2" source="91" target="25">
|
||||
|
|
@ -287,7 +287,7 @@
|
|||
<mxPoint x="760" y="306.5" as="sourcePoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="268" value="Kasm DB and Redis<br>Connections" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontColor=#000000;labelBackgroundColor=#FFFFFF;" vertex="1" connectable="0" parent="121">
|
||||
<mxCell id="268" value="Kasm DB<br>Connections" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontColor=#000000;labelBackgroundColor=#FFFFFF;" vertex="1" connectable="0" parent="121">
|
||||
<mxGeometry x="-0.697" y="4" relative="1" as="geometry">
|
||||
<mxPoint x="13" y="27" as="offset"/>
|
||||
</mxGeometry>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 415 KiB After Width: | Height: | Size: 262 KiB |
|
|
@ -94,7 +94,7 @@ No modules.
|
|||
| <a name="input_database_password"></a> [database\_password](#input\_database\_password) | The password for the database. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_db_hdd_size_gb"></a> [db\_hdd\_size\_gb](#input\_db\_hdd\_size\_gb) | The HDD size in GB to configure for the Kasm Database instances | `number` | n/a | yes |
|
||||
| <a name="input_db_instance_type"></a> [db\_instance\_type](#input\_db\_instance\_type) | The instance type for the Database | `string` | n/a | yes |
|
||||
| <a name="input_db_security_rules"></a> [db\_security\_rules](#input\_db\_security\_rules) | A map of objects of security rules to apply to the Kasm DB | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> }))</pre> | <pre>{<br> "postgres": {<br> "from_port": 5432,<br> "protocol": "tcp",<br> "to_port": 5432<br> },<br> "redis": {<br> "from_port": 6379,<br> "protocol": "tcp",<br> "to_port": 6379<br> }<br>}</pre> | no |
|
||||
| <a name="input_db_security_rules"></a> [db\_security\_rules](#input\_db\_security\_rules) | A map of objects of security rules to apply to the Kasm DB | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> }))</pre> | <pre>{<br> "postgres": {<br> "from_port": 5432,<br> "protocol": "tcp",<br> "to_port": 5432<br> },<br>}</pre> | no |
|
||||
| <a name="input_default_egress"></a> [default\_egress](#input\_default\_egress) | Default egress security rule for all security groups | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> cidr_subnets = list(string)<br> }))</pre> | <pre>{<br> "all": {<br> "cidr_subnets": [<br> "0.0.0.0/0"<br> ],<br> "from_port": 0,<br> "protocol": "-1",<br> "to_port": 0<br> }<br>}</pre> | no |
|
||||
| <a name="input_ec2_ami"></a> [ec2\_ami](#input\_ec2\_ami) | The AMI used for the EC2 nodes. Recommended Ubuntu 22.04 LTS. | `string` | n/a | yes |
|
||||
| <a name="input_kasm_build"></a> [kasm\_build](#input\_kasm\_build) | The URL for the Kasm Workspaces build | `string` | n/a | yes |
|
||||
|
|
@ -103,7 +103,6 @@ No modules.
|
|||
| <a name="input_num_webapps"></a> [num\_webapps](#input\_num\_webapps) | The number of WebApp role servers to create in the deployment | `number` | n/a | yes |
|
||||
| <a name="input_project_name"></a> [project\_name](#input\_project\_name) | The name of the deployment (e.g dev, staging). A short single word | `string` | n/a | yes |
|
||||
| <a name="input_public_lb_security_rules"></a> [public\_lb\_security\_rules](#input\_public\_lb\_security\_rules) | A map of objects of security rules to apply to the Public ALB | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> }))</pre> | <pre>{<br> "http": {<br> "from_port": 80,<br> "protocol": "tcp",<br> "to_port": 80<br> },<br> "https": {<br> "from_port": 443,<br> "protocol": "tcp",<br> "to_port": 443<br> }<br>}</pre> | no |
|
||||
| <a name="input_redis_password"></a> [redis\_password](#input\_redis\_password) | The password for the Redis server. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_service_registration_token"></a> [service\_registration\_token](#input\_service\_registration\_token) | The service registration token value for cpx RDP servers to authenticate to webapps. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_swap_size"></a> [swap\_size](#input\_swap\_size) | The amount of swap (in MB) to configure inside the compute instances | `number` | n/a | yes |
|
||||
| <a name="input_user_password"></a> [user\_password](#input\_user\_password) | The standard (non administrator) user password. No special characters | `string` | n/a | yes |
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ resource "aws_instance" "db" {
|
|||
kasm_build_url = var.kasm_build
|
||||
user_password = var.user_password
|
||||
admin_password = var.admin_password
|
||||
redis_password = var.redis_password
|
||||
database_password = var.database_password
|
||||
manager_token = var.manager_token
|
||||
service_registration_token = var.service_registration_token
|
||||
|
|
|
|||
|
|
@ -44,12 +44,6 @@ variable "database_password" {
|
|||
sensitive = true
|
||||
}
|
||||
|
||||
variable "redis_password" {
|
||||
description = "The password for the Redis server. No special characters"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "user_password" {
|
||||
description = "The standard (non administrator) user password. No special characters"
|
||||
type = string
|
||||
|
|
@ -182,11 +176,6 @@ variable "db_security_rules" {
|
|||
to_port = 5432
|
||||
protocol = "tcp"
|
||||
}
|
||||
redis = {
|
||||
from_port = 6379
|
||||
to_port = 6379
|
||||
protocol = "tcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ project_name = ""
|
|||
|
||||
## Kasm passwords
|
||||
database_password = "changeme"
|
||||
redis_password = "changeme"
|
||||
user_password = "changeme"
|
||||
admin_password = "changeme"
|
||||
manager_token = "changeme"
|
||||
|
|
|
|||
|
|
@ -13,6 +13,6 @@ cd /tmp
|
|||
|
||||
wget "${kasm_build_url}" -O kasm_workspaces.tar.gz
|
||||
tar -xf kasm_workspaces.tar.gz
|
||||
bash kasm_release/install.sh -S db -e -Q "${database_password}" -R "${redis_password}" -U "${user_password}" -P "${admin_password}" -M "${manager_token}" -k "${service_registration_token}"
|
||||
bash kasm_release/install.sh -S db -e -Q "${database_password}" -U "${user_password}" -P "${admin_password}" -M "${manager_token}" -k "${service_registration_token}"
|
||||
|
||||
echo "Done"
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ cd /tmp
|
|||
wget "${kasm_build_url}" -O kasm_workspaces.tar.gz
|
||||
tar -xf kasm_workspaces.tar.gz
|
||||
|
||||
echo "Checking for Kasm DB and Redis..."
|
||||
echo "Checking for Kasm DB..."
|
||||
apt-get update && apt-get install -y netcat-openbsd
|
||||
while ! nc -w 1 -z "${db_ip}" 5432; do
|
||||
echo "Database not ready..."
|
||||
|
|
@ -22,13 +22,6 @@ while ! nc -w 1 -z "${db_ip}" 5432; do
|
|||
done
|
||||
echo "DB is alive"
|
||||
|
||||
while ! nc -w 1 -z "${db_ip}" 6379; do
|
||||
echo "Redis not ready..."
|
||||
sleep 5
|
||||
done
|
||||
echo "Redis is alive"
|
||||
|
||||
|
||||
bash kasm_release/install.sh -S app -e -z "${zone_name}" -q "${db_ip}" -Q "${database_password}" -R "${redis_password}"
|
||||
bash kasm_release/install.sh -S app -e -z "${zone_name}" -q "${db_ip}" -Q "${database_password}"
|
||||
|
||||
echo "Done"
|
||||
|
|
|
|||
|
|
@ -303,17 +303,6 @@ variable "database_password" {
|
|||
}
|
||||
}
|
||||
|
||||
variable "redis_password" {
|
||||
description = "The password for the Redis server. No special characters"
|
||||
type = string
|
||||
sensitive = true
|
||||
|
||||
validation {
|
||||
condition = can(regex("^[a-zA-Z0-9]{12,30}$", var.redis_password))
|
||||
error_message = "The Redis Password should be a string between 12 and 30 letters and numbers with no special characters."
|
||||
}
|
||||
}
|
||||
|
||||
variable "user_password" {
|
||||
description = "The standard (non administrator) user password. No special characters"
|
||||
type = string
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ No modules.
|
|||
| <a name="input_primary_aws_region"></a> [primary\_aws\_region](#input\_primary\_aws\_region) | The AWS region for primary region of the deployment. (e.g us-east-1) | `string` | n/a | yes |
|
||||
| <a name="input_primary_vpc_id"></a> [primary\_vpc\_id](#input\_primary\_vpc\_id) | The VPC ID of the primary region | `string` | n/a | yes |
|
||||
| <a name="input_project_name"></a> [project\_name](#input\_project\_name) | The name of the deployment (e.g dev, staging). A short single word | `string` | n/a | yes |
|
||||
| <a name="input_redis_password"></a> [redis\_password](#input\_redis\_password) | The password for the database. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_service_registration_token"></a> [service\_registration\_token](#input\_service\_registration\_token) | The service registration token value for cpx RDP servers to authenticate to webapps. No special characters | `string` | `""` | no |
|
||||
| <a name="input_swap_size"></a> [swap\_size](#input\_swap\_size) | The amount of swap (in MB) to configure inside the compute instances | `number` | n/a | yes |
|
||||
| <a name="input_webapp_hdd_size_gb"></a> [webapp\_hdd\_size\_gb](#input\_webapp\_hdd\_size\_gb) | The HDD size in GB to configure for the Kasm WebApp instances | `number` | n/a | yes |
|
||||
|
|
|
|||
|
|
@ -31,12 +31,6 @@ variable "database_password" {
|
|||
sensitive = true
|
||||
}
|
||||
|
||||
variable "redis_password" {
|
||||
description = "The password for the database. No special characters"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "service_registration_token" {
|
||||
description = "The service registration token value for cpx RDP servers to authenticate to webapps. No special characters"
|
||||
type = string
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ resource "aws_instance" "webapp" {
|
|||
kasm_build_url = var.kasm_build
|
||||
db_ip = var.kasm_db_ip
|
||||
database_password = var.database_password
|
||||
redis_password = var.redis_password
|
||||
swap_size = var.swap_size
|
||||
zone_name = var.aws_to_kasm_zone_map[(var.faux_aws_region)]
|
||||
}
|
||||
|
|
|
|||
BIN
aws/readme_diagrams/multi_region.png
Normal file
|
After Width: | Height: | Size: 159 KiB |
BIN
aws/readme_diagrams/multi_server_single_region.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
|
|
@ -5,7 +5,7 @@ Each role is placed in a separate subnet and traffic from user sessions on the A
|
|||
|
||||
![Diagram][Image_Diagram]
|
||||
|
||||
[Image_Diagram]: https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/terraform/diagrams/aws-multi-server-new.jpg "Diagram"
|
||||
[Image_Diagram]: ../readme_diagrams/multi_server_single_region.png "Diagram"
|
||||
|
||||
# Pre-Configuration
|
||||
|
||||
|
|
@ -98,7 +98,6 @@ No resources.
|
|||
| <a name="input_num_cpx_nodes"></a> [num\_cpx\_nodes](#input\_num\_cpx\_nodes) | The number of Agent Role Servers to create in the deployment | `number` | n/a | yes |
|
||||
| <a name="input_num_webapps"></a> [num\_webapps](#input\_num\_webapps) | The number of WebApp role servers to create in the deployment | `number` | n/a | yes |
|
||||
| <a name="input_project_name"></a> [project\_name](#input\_project\_name) | The name of the deployment (e.g dev, staging). A short single word | `string` | n/a | yes |
|
||||
| <a name="input_redis_password"></a> [redis\_password](#input\_redis\_password) | The password for the Redis server. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_service_registration_token"></a> [service\_registration\_token](#input\_service\_registration\_token) | The service registration token value for cpx RDP servers to authenticate to webapps. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_swap_size"></a> [swap\_size](#input\_swap\_size) | The amount of swap (in MB) to configure inside the compute instances | `number` | n/a | yes |
|
||||
| <a name="input_user_password"></a> [user\_password](#input\_user\_password) | The standard (non administrator) user password. No special characters | `string` | n/a | yes |
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ module "standard" {
|
|||
|
||||
web_access_cidrs = var.web_access_cidrs
|
||||
database_password = var.database_password
|
||||
redis_password = var.redis_password
|
||||
user_password = var.user_password
|
||||
admin_password = var.admin_password
|
||||
manager_token = var.manager_token
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@
|
|||
<mxCell id="120" value="DB Subnet 1<br>10.0.0.0/24" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_security_group;grStroke=0;strokeColor=#248814;fillColor=#E9F3E6;verticalAlign=top;align=left;spacingLeft=30;fontColor=#248814;dashed=0;" parent="2" vertex="1">
|
||||
<mxGeometry x="289" y="365" width="145" height="135" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="124" value="Kasm Database<br>Kasm Redis" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ec2;" parent="120" vertex="1">
|
||||
<mxCell id="124" value="Kasm Database" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ec2;" parent="120" vertex="1">
|
||||
<mxGeometry x="52.5" y="47.5" width="40" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="123" value="Database Security Group" style="fontStyle=0;verticalAlign=top;align=center;spacingTop=-2;fillColor=none;rounded=1;whiteSpace=wrap;html=1;strokeColor=#FF0000;strokeWidth=2;dashed=1;container=1;collapsible=0;expand=0;recursiveResize=0;labelBackgroundColor=none;fontSize=10;fontColor=#000000;arcSize=4;" parent="2" vertex="1">
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 800 KiB |
|
|
@ -119,7 +119,7 @@ No modules.
|
|||
| <a name="input_database_password"></a> [database\_password](#input\_database\_password) | The password for the database. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_db_hdd_size_gb"></a> [db\_hdd\_size\_gb](#input\_db\_hdd\_size\_gb) | The HDD size for Kasm DB | `number` | n/a | yes |
|
||||
| <a name="input_db_instance_type"></a> [db\_instance\_type](#input\_db\_instance\_type) | The instance type for the Database | `string` | `"t3.small"` | no |
|
||||
| <a name="input_db_security_rules"></a> [db\_security\_rules](#input\_db\_security\_rules) | A map of objects of security rules to apply to the Kasm DB | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> }))</pre> | <pre>{<br> "postgres": {<br> "from_port": 5432,<br> "protocol": "tcp",<br> "to_port": 5432<br> },<br> "redis": {<br> "from_port": 6379,<br> "protocol": "tcp",<br> "to_port": 6379<br> }<br>}</pre> | no |
|
||||
| <a name="input_db_security_rules"></a> [db\_security\_rules](#input\_db\_security\_rules) | A map of objects of security rules to apply to the Kasm DB | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> }))</pre> | <pre>{<br> "postgres": {<br> "from_port": 5432,<br> "protocol": "tcp",<br> "to_port": 5432<br> }<br>}</pre> | no |
|
||||
| <a name="input_default_egress"></a> [default\_egress](#input\_default\_egress) | Default egress security rule for all security groups | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> cidr_subnets = list(string)<br> }))</pre> | <pre>{<br> "all": {<br> "cidr_subnets": [<br> "0.0.0.0/0"<br> ],<br> "from_port": 0,<br> "protocol": "-1",<br> "to_port": 0<br> }<br>}</pre> | no |
|
||||
| <a name="input_ec2_ami"></a> [ec2\_ami](#input\_ec2\_ami) | The AMI used for the EC2 nodes. Recommended Ubuntu 20.04 LTS. | `string` | n/a | yes |
|
||||
| <a name="input_kasm_build"></a> [kasm\_build](#input\_kasm\_build) | The URL for the Kasm Workspaces build | `string` | n/a | yes |
|
||||
|
|
@ -131,7 +131,6 @@ No modules.
|
|||
| <a name="input_private_lb_security_rules"></a> [private\_lb\_security\_rules](#input\_private\_lb\_security\_rules) | A map of objects of security rules to apply to the Private ALB | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> }))</pre> | <pre>{<br> "https": {<br> "from_port": 443,<br> "protocol": "tcp",<br> "to_port": 443<br> }<br>}</pre> | no |
|
||||
| <a name="input_project_name"></a> [project\_name](#input\_project\_name) | The name of the deployment (e.g dev, staging). A short single word | `string` | n/a | yes |
|
||||
| <a name="input_public_lb_security_rules"></a> [public\_lb\_security\_rules](#input\_public\_lb\_security\_rules) | A map of objects of security rules to apply to the Public ALB | <pre>map(object({<br> from_port = number<br> to_port = number<br> protocol = string<br> }))</pre> | <pre>{<br> "http": {<br> "from_port": 80,<br> "protocol": "tcp",<br> "to_port": 80<br> },<br> "https": {<br> "from_port": 443,<br> "protocol": "tcp",<br> "to_port": 443<br> }<br>}</pre> | no |
|
||||
| <a name="input_redis_password"></a> [redis\_password](#input\_redis\_password) | The password for the Redis server. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_service_registration_token"></a> [service\_registration\_token](#input\_service\_registration\_token) | The service registration token value for cpx RDP servers to authenticate to webapps. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_swap_size"></a> [swap\_size](#input\_swap\_size) | The amount of swap (in MB) to configure inside the compute instances | `number` | n/a | yes |
|
||||
| <a name="input_user_password"></a> [user\_password](#input\_user\_password) | The standard (non administrator) user password. No special characters | `string` | n/a | yes |
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ resource "aws_instance" "db" {
|
|||
kasm_build_url = var.kasm_build
|
||||
user_password = var.user_password
|
||||
admin_password = var.admin_password
|
||||
redis_password = var.redis_password
|
||||
database_password = var.database_password
|
||||
service_registration_token = var.service_registration_token
|
||||
manager_token = var.manager_token
|
||||
|
|
|
|||
|
|
@ -13,6 +13,6 @@ cd /tmp
|
|||
|
||||
wget ${kasm_build_url} -O kasm_workspaces.tar.gz
|
||||
tar -xf kasm_workspaces.tar.gz
|
||||
bash kasm_release/install.sh -S db -e -H -Q ${database_password} -R ${redis_password} -U ${user_password} -P ${admin_password} -M ${manager_token} -k ${service_registration_token}
|
||||
bash kasm_release/install.sh -S db -e -H -Q ${database_password} -U ${user_password} -P ${admin_password} -M ${manager_token} -k ${service_registration_token}
|
||||
|
||||
echo "Done"
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ cd /tmp
|
|||
wget ${kasm_build_url} -O kasm_workspaces.tar.gz
|
||||
tar -xf kasm_workspaces.tar.gz
|
||||
|
||||
echo "Checking for Kasm DB and Redis..."
|
||||
echo "Checking for Kasm DB..."
|
||||
apt-get update && apt-get install -y netcat-openbsd
|
||||
while ! nc -w 1 -z ${db_ip} 5432; do
|
||||
echo "Database not ready..."
|
||||
|
|
@ -22,13 +22,6 @@ while ! nc -w 1 -z ${db_ip} 5432; do
|
|||
done
|
||||
echo "DB is alive"
|
||||
|
||||
while ! nc -w 1 -z ${db_ip} 6379; do
|
||||
echo "Redis not ready..."
|
||||
sleep 5
|
||||
done
|
||||
echo "Redis is alive"
|
||||
|
||||
|
||||
bash kasm_release/install.sh -S app -e -H -z ${zone_name} -q "${db_ip}" -Q ${database_password} -R ${redis_password}
|
||||
bash kasm_release/install.sh -S app -e -H -z ${zone_name} -q "${db_ip}" -Q ${database_password}
|
||||
|
||||
echo "Done"
|
||||
|
|
|
|||
|
|
@ -126,12 +126,6 @@ variable "database_password" {
|
|||
sensitive = true
|
||||
}
|
||||
|
||||
variable "redis_password" {
|
||||
description = "The password for the Redis server. No special characters"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "user_password" {
|
||||
description = "The standard (non administrator) user password. No special characters"
|
||||
type = string
|
||||
|
|
@ -241,11 +235,6 @@ variable "db_security_rules" {
|
|||
to_port = 5432
|
||||
protocol = "tcp"
|
||||
}
|
||||
redis = {
|
||||
from_port = 6379
|
||||
to_port = 6379
|
||||
protocol = "tcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ resource "aws_instance" "webapp" {
|
|||
kasm_build_url = var.kasm_build
|
||||
db_ip = aws_instance.db.private_ip
|
||||
database_password = var.database_password
|
||||
redis_password = var.redis_password
|
||||
swap_size = var.swap_size
|
||||
zone_name = "default"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ cpx_hdd_size_gb = 50
|
|||
|
||||
## Kasm passwords
|
||||
database_password = "changeme"
|
||||
redis_password = "changeme"
|
||||
user_password = "changeme"
|
||||
admin_password = "changeme"
|
||||
manager_token = "changeme"
|
||||
|
|
|
|||
|
|
@ -234,17 +234,6 @@ variable "database_password" {
|
|||
}
|
||||
}
|
||||
|
||||
variable "redis_password" {
|
||||
description = "The password for the Redis server. No special characters"
|
||||
type = string
|
||||
sensitive = true
|
||||
|
||||
validation {
|
||||
condition = can(regex("^[a-zA-Z0-9]{12,30}$", var.redis_password))
|
||||
error_message = "The Redis Password should be a string between 12 and 30 letters or numbers with no special characters."
|
||||
}
|
||||
}
|
||||
|
||||
variable "user_password" {
|
||||
description = "The standard (non administrator) user password. No special characters"
|
||||
type = string
|
||||
|
|
|
|||
BIN
digitalocean/readme_diagrams/single_server.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
|
|
@ -4,7 +4,7 @@ This project will deploy Kasm Workspaces in a single-server deployment on Digita
|
|||
|
||||
![Diagram][Image_Diagram]
|
||||
|
||||
[Image_Diagram]: https://f.hubspotusercontent30.net/hubfs/5856039/terraform/diagrams/digitalocean-single-server.png "Diagram"
|
||||
[Image_Diagram]: ../readme_diagrams/single_server.png "Diagram"
|
||||
|
||||
# Pre-Configuration
|
||||
|
||||
|
|
|
|||
|
|
@ -121,7 +121,6 @@ No resources.
|
|||
| <a name="input_kasm_firewall_security_tags"></a> [kasm\_firewall\_security\_tags](#input\_kasm\_firewall\_security\_tags) | Firewall tags to use for Kasm CPX firewall rules | <pre>object({<br> webapp = list(string)<br> database = list(string)<br> agent = list(string)<br> cpx = optional(list(string), [])<br> windows = optional(list(string), [])<br> })</pre> | <pre>{<br> "agent": [<br> "kasm-agent"<br> ],<br> "cpx": [<br> "kasm-cpx"<br> ],<br> "database": [<br> "database"<br> ],<br> "webapp": [<br> "webapp"<br> ],<br> "windows": [<br> "kasm-windows"<br> ]<br>}</pre> | no |
|
||||
| <a name="input_kasm_manager_token"></a> [kasm\_manager\_token](#input\_kasm\_manager\_token) | The manager token value for Agents to authenticate to webapps. No special characters | `string` | `""` | no |
|
||||
| <a name="input_kasm_project_name"></a> [kasm\_project\_name](#input\_kasm\_project\_name) | Kasm deployment project name (separate from GCP Project id or Project Name) | `string` | `""` | no |
|
||||
| <a name="input_kasm_redis_password"></a> [kasm\_redis\_password](#input\_kasm\_redis\_password) | The password for the Redis server. No special characters | `string` | `""` | no |
|
||||
| <a name="input_kasm_service_token"></a> [kasm\_service\_token](#input\_kasm\_service\_token) | The service registration token value for Guac RDP servers to authenticate to webapps. No special characters | `string` | `""` | no |
|
||||
| <a name="input_kasm_source_image"></a> [kasm\_source\_image](#input\_kasm\_source\_image) | The source VM Image information to use for deploying Kasm. Recommended to use Ubuntu 20.04 Minimal. You can either explicitly define the source image to use, or the image project and family so that Terraform always chooses the latest. | <pre>object({<br> source_image = optional(string, null)<br> project = optional(string, null)<br> family = optional(string, null)<br> })</pre> | <pre>{<br> "family": "ubuntu-minimal-2004-lts",<br> "project": "ubuntu-os-cloud"<br>}</pre> | no |
|
||||
| <a name="input_kasm_user_password"></a> [kasm\_user\_password](#input\_kasm\_user\_password) | The standard (non administrator) user password. No special characters | `string` | `""` | no |
|
||||
|
|
@ -240,7 +239,6 @@ No resources.
|
|||
| <a name="input_kasm_firewall_security_tags"></a> [kasm\_firewall\_security\_tags](#input\_kasm\_firewall\_security\_tags) | Firewall tags to use for Kasm CPX firewall rules | <pre>object({<br> webapp = list(string)<br> database = list(string)<br> agent = list(string)<br> cpx = optional(list(string), [])<br> windows = optional(list(string), [])<br> })</pre> | <pre>{<br> "agent": [<br> "kasm-agent"<br> ],<br> "cpx": [<br> "kasm-cpx"<br> ],<br> "database": [<br> "database"<br> ],<br> "webapp": [<br> "webapp"<br> ],<br> "windows": [<br> "kasm-windows"<br> ]<br>}</pre> | no |
|
||||
| <a name="input_kasm_manager_token"></a> [kasm\_manager\_token](#input\_kasm\_manager\_token) | The manager token value for Agents to authenticate to webapps. No special characters | `string` | `""` | no |
|
||||
| <a name="input_kasm_project_name"></a> [kasm\_project\_name](#input\_kasm\_project\_name) | Kasm deployment project name (separate from GCP Project id or Project Name) | `string` | `""` | no |
|
||||
| <a name="input_kasm_redis_password"></a> [kasm\_redis\_password](#input\_kasm\_redis\_password) | The password for the Redis server. No special characters | `string` | `""` | no |
|
||||
| <a name="input_kasm_service_token"></a> [kasm\_service\_token](#input\_kasm\_service\_token) | The service registration token value for Guac RDP servers to authenticate to webapps. No special characters | `string` | `""` | no |
|
||||
| <a name="input_kasm_source_image"></a> [kasm\_source\_image](#input\_kasm\_source\_image) | The source VM Image information to use for deploying Kasm. Recommended to use Ubuntu 20.04 Minimal. You can either explicitly define the source image to use, or the image project and family so that Terraform always chooses the latest. | <pre>object({<br> source_image = optional(string, null)<br> project = optional(string, null)<br> family = optional(string, null)<br> })</pre> | <pre>{<br> "family": "ubuntu-minimal-2004-lts",<br> "project": "ubuntu-os-cloud"<br>}</pre> | no |
|
||||
| <a name="input_kasm_user_password"></a> [kasm\_user\_password](#input\_kasm\_user\_password) | The standard (non administrator) user password. No special characters | `string` | `""` | no |
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ locals {
|
|||
admin_password = var.kasm_admin_password == "" ? module.passwords[0].password : var.kasm_admin_password
|
||||
user_password = var.kasm_user_password == "" ? module.passwords[1].password : var.kasm_user_password
|
||||
database_password = var.kasm_database_password == "" ? module.passwords[2].password : var.kasm_database_password
|
||||
redis_password = var.kasm_redis_password == "" ? module.passwords[3].password : var.kasm_redis_password
|
||||
service_token = var.kasm_service_token == "" ? module.passwords[4].password : var.kasm_service_token
|
||||
manager_token = var.kasm_manager_token == "" ? module.passwords[5].password : var.kasm_manager_token
|
||||
|
||||
|
|
@ -41,7 +40,6 @@ locals {
|
|||
webapp_startup_scripts = { for region in var.kasm_deployment_regions : region => templatefile("${path.module}/userdata/webapp_bootstrap.sh", {
|
||||
DB_PRIVATE_IP = local.database_private_ip
|
||||
KASM_DB_PASS = local.database_password
|
||||
KASM_REDIS_PASS = local.redis_password
|
||||
KASM_DOWNLOAD_URL = var.kasm_download_url
|
||||
ADDITIONAL_WEBAPP_INSTALL_ARGS = join(" ", distinct(flatten([var.additional_kasm_install_options, var.additional_webapp_install_options])))
|
||||
KASM_ZONE_NAME = region
|
||||
|
|
@ -57,7 +55,6 @@ locals {
|
|||
KASM_MANAGER_TOKEN = local.manager_token
|
||||
KASM_SERVICE_TOKEN = local.service_token
|
||||
KASM_DB_PASS = local.database_password
|
||||
KASM_REDIS_PASS = local.redis_password
|
||||
KASM_DOWNLOAD_URL = var.kasm_download_url
|
||||
ADDITIONAL_DATABASE_INSTALL_ARGS = join(" ", distinct(flatten([var.additional_kasm_install_options, var.additional_database_install_options])))
|
||||
})]
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ output "kasm_passwords" {
|
|||
kasm_admin_password = local.admin_password
|
||||
kasm_user_password = local.user_password
|
||||
kasm_database_password = local.database_password
|
||||
kasm_redis_password = local.redis_password
|
||||
kasm_service_token = local.service_token
|
||||
kasm_manager_token = local.manager_token
|
||||
} : null
|
||||
|
|
|
|||
|
|
@ -21,11 +21,10 @@ apt update && apt install iputils-ping dnsutils netcat -y
|
|||
## -H = Don't check for swap (since we created it already)
|
||||
## -e = accept EULA
|
||||
## -Q = Database password
|
||||
## -R = Redis password
|
||||
## -U = Password to use for user@kasm.local built-in account
|
||||
## -P = Password to use for admin@kasm.local built-in admin account
|
||||
## -M = Management token to use for agent registration
|
||||
## -k = Service registration token to use for Connection Proxy (Guac) registration
|
||||
## Useful additional arguments:
|
||||
## -O = use Rolling images (ensures the most up-to-date containers are used)
|
||||
bash kasm_release/install.sh -S db -e -Q ${KASM_DB_PASS} -R ${KASM_REDIS_PASS} -U ${KASM_USER_PASS} -P ${KASM_ADMIN_PASS} -M ${KASM_MANAGER_TOKEN} -k ${KASM_SERVICE_TOKEN} ${ADDITIONAL_DATABASE_INSTALL_ARGS}
|
||||
bash kasm_release/install.sh -S db -e -Q ${KASM_DB_PASS} -U ${KASM_USER_PASS} -P ${KASM_ADMIN_PASS} -M ${KASM_MANAGER_TOKEN} -k ${KASM_SERVICE_TOKEN} ${ADDITIONAL_DATABASE_INSTALL_ARGS}
|
||||
|
|
|
|||
|
|
@ -22,13 +22,6 @@ do
|
|||
sleep 10
|
||||
done
|
||||
|
||||
## Ensure connection to remote Redis before installing
|
||||
while ! nc -w 1 -z ${REDIS_IP} 6379
|
||||
do
|
||||
echo "Waiting for Redis connection..."
|
||||
sleep 10
|
||||
done
|
||||
|
||||
## Install Kasm
|
||||
## Kasm install arguments used:
|
||||
## -S = Kasm role - init_remote_db in this case
|
||||
|
|
@ -36,8 +29,6 @@ done
|
|||
## -e = accept EULA
|
||||
## -q = Database IP or Hostname
|
||||
## -Q = Database password
|
||||
## -o = Redis IP or Hostname
|
||||
## -R = Redis password
|
||||
## -U = Password to use for user@kasm.local built-in account
|
||||
## -P = Password to use for admin@kasm.local built-in admin account
|
||||
## -M = Management token to use for agent registration
|
||||
|
|
@ -45,4 +36,4 @@ done
|
|||
## Useful additional arguments:
|
||||
## -O = use Rolling images (ensures the most up-to-date containers are used)
|
||||
bash kasm_release/install_dependencies.sh
|
||||
bash kasm_release/install.sh -S init_remote_db -e -H -q ${DATABASE_IP} -Q ${KASM_DB_PASS} -U ${KASM_USER_PASS} -P ${KASM_ADMIN_PASS} -o ${REDIS_IP} -R ${KASM_REDIS_PASS} -M ${KASM_SERVICE_TOKEN} -g ${DB_MASTER_USER} -G ${DB_MASTER_PASSWORD} -k ${KASM_SERVICE_TOKEN} ${ADDITIONAL_DATABASE_INSTALL_ARGS}
|
||||
bash kasm_release/install.sh -S init_remote_db -e -H -q ${DATABASE_IP} -Q ${KASM_DB_PASS} -U ${KASM_USER_PASS} -P ${KASM_ADMIN_PASS} -M ${KASM_SERVICE_TOKEN} -g ${DB_MASTER_USER} -G ${DB_MASTER_PASSWORD} -k ${KASM_SERVICE_TOKEN} ${ADDITIONAL_DATABASE_INSTALL_ARGS}
|
||||
|
|
|
|||
|
|
@ -22,13 +22,6 @@ do
|
|||
sleep 5
|
||||
done
|
||||
|
||||
## Test Redis connectivity before installing
|
||||
while ! nc -w 1 -z ${DB_PRIVATE_IP} 6379
|
||||
do
|
||||
echo "Waiting for Redis connection..."
|
||||
sleep 5
|
||||
done
|
||||
|
||||
## Install Kasm
|
||||
## Kasm install arguments used:
|
||||
## -S = Kasm role - webapp in this case
|
||||
|
|
@ -36,8 +29,7 @@ done
|
|||
## -e = accept EULA
|
||||
## -q = Database Server IP
|
||||
## -Q = Database password
|
||||
## -R = Redis password
|
||||
## -z = The Zone name to use for the webapp
|
||||
## Useful additional arguments:
|
||||
## -O = use Rolling images (ensures the most up-to-date containers are used)
|
||||
bash kasm_release/install.sh -S app -H -e -z ${KASM_ZONE_NAME} -q ${DB_PRIVATE_IP} -Q ${KASM_DB_PASS} -R ${KASM_REDIS_PASS} ${ADDITIONAL_WEBAPP_INSTALL_ARGS}
|
||||
bash kasm_release/install.sh -S app -H -e -z ${KASM_ZONE_NAME} -q ${DB_PRIVATE_IP} -Q ${KASM_DB_PASS} ${ADDITIONAL_WEBAPP_INSTALL_ARGS}
|
||||
|
|
|
|||
|
|
@ -107,18 +107,6 @@ variable "kasm_database_password" {
|
|||
}
|
||||
}
|
||||
|
||||
variable "kasm_redis_password" {
|
||||
description = "The password for the Redis server. No special characters"
|
||||
type = string
|
||||
sensitive = true
|
||||
default = ""
|
||||
|
||||
validation {
|
||||
condition = var.kasm_redis_password == "" ? true : can(regex("^[a-zA-Z0-9]{12,40}", var.kasm_redis_password))
|
||||
error_message = "The Kasm Redis should be a string between 12 and 40 letters or numbers with no special characters."
|
||||
}
|
||||
}
|
||||
|
||||
variable "kasm_user_password" {
|
||||
description = "The standard (non administrator) user password. No special characters"
|
||||
type = string
|
||||
|
|
|
|||
BIN
oci/readme_diagrams/oci_multi_server.png
Normal file
|
After Width: | Height: | Size: 384 KiB |
BIN
oci/readme_diagrams/oci_single_server.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
|
|
@ -4,7 +4,7 @@ This project will deploy Kasm Workspaces in a single-server deployment in OCI.
|
|||
|
||||
![Diagram][Image_Diagram]
|
||||
|
||||
[Image_Diagram]: https://f.hubspotusercontent30.net/hubfs/5856039/terraform/diagrams/oci-single-server.png "Diagram"
|
||||
[Image_Diagram]: ../readme_diagrams/oci_single_server.png "Diagram"
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ This project will deploy Kasm Workspaces in a multi-server deployment in OCI.
|
|||
|
||||
![Diagram][Image_Diagram]
|
||||
|
||||
[Image_Diagram]: https://f.hubspotusercontent30.net/hubfs/5856039/terraform/diagrams/oci-multi-server.png "Diagram"
|
||||
[Image_Diagram]: ../readme_diagrams/oci_multi_server.png "Diagram"
|
||||
|
||||
|
||||
|
||||
|
|
@ -106,7 +106,6 @@ No resources.
|
|||
| <a name="input_oci_domain_name"></a> [oci\_domain\_name](#input\_oci\_domain\_name) | The public Zone used for the dns entries. This must already exist in the OCI account. (e.g kasm.contoso.com). The deployment will be accessed via this zone name via https | `string` | n/a | yes |
|
||||
| <a name="input_private_key_path"></a> [private\_key\_path](#input\_private\_key\_path) | The path to the API Key PEM encoded Private Key | `string` | n/a | yes |
|
||||
| <a name="input_project_name"></a> [project\_name](#input\_project\_name) | The name of the deployment (e.g dev, staging). A short single word | `string` | n/a | yes |
|
||||
| <a name="input_redis_password"></a> [redis\_password](#input\_redis\_password) | The password for the Redis server. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_region"></a> [region](#input\_region) | The OCI Region eg: (us-ashburn-1) | `string` | n/a | yes |
|
||||
| <a name="input_service_registration_token"></a> [service\_registration\_token](#input\_service\_registration\_token) | The service registration token value for cpx RDP servers to authenticate to webapps. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_ssh_authorized_keys"></a> [ssh\_authorized\_keys](#input\_ssh\_authorized\_keys) | The SSH Public Keys to be installed on the OCI compute instance | `string` | n/a | yes |
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ module "kasm" {
|
|||
manager_token = var.manager_token
|
||||
admin_password = var.admin_password
|
||||
user_password = var.user_password
|
||||
redis_password = var.redis_password
|
||||
database_password = var.database_password
|
||||
service_registration_token = var.service_registration_token
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@
|
|||
<mxCell id="eChJDwyTb9s3T-vj8w6D-21" style="vsdxID=16;fillColor=#2d5967;gradientColor=none;shape=stencil(lVjLctswDPwaXzkkwec5Tf4j0zi1p26ccZI2/fuClUgRIEVFN1sGscACC1A+wN3b6fH1eNDy7f12/Xn8c356Px3g20Hr88vpeDu/46cD3B/g7vl6O/64XT9enqbvr4/JMn36df2dPHxO55SU6YyWf+fvWsT/Dx4m6+8ft8lccfv5gRZ+evCppwfOCzObzE/mE58wfTVRxDhbQG2xAgla2EBBJYWUFG8JCejv0M/xcn6pGKF8BC/sKDjGRszmJTaM3msaX+FwwEi2WYFFkrWj0ItXDpNxq+CAm0A/XUrNVrPss6aNGI2AQOzdRivWJzItIIDxH7XQgfLgrHCUh6CFs5QJZNj5EbxXIioGH4VXTA1SREfhvcyeRw2AVhaGsggisvSTZ0fxtV+sdInSRdYH2E6qzV8P829Uibxaxr7NThZ0LBEFr2ygVD4M2rA6MNNnxiJVtjCeY0XGgQ0uqEjI4cscyBKtFApouIvVmlpBSEPxa88zWDDCMfw6Sihdn2uc8Xn6lK1tYe213xIudiYM+egoF8+ETeEaJSSjo6NcA0KNO7dVrrFCMeV0lGtc9jxSLvqKw8nRUW7yzCZHR7kpSiaejnIxfzmeXI1yE7GawrfKxbA9F0Mj3VT7HcpVUei90tUmnxlJF7E865WOdBerr0u39rwu3RTltnSb/Le02Ghr9wF2/0PmDDngRRgyolnvIBuRslH3d+5cEVjjdoQznqFcsTnMAsuvWVaEQDFxWHhWgDCcU7ppPsUuWUi4Zbh4z2EyqY1W7qCdEVmOZOhlcy4j0gIDt41IO1lj1YfonkFr2cyHpt9xhGyXGB0NgTujMTk27WiMDF4uVtVoNG3eG5cawwteEbo6GrE0DLydjFsVr06ocoIl7psxo6rKLEmWGZAvk8N7+uYI2GtPR0zqv0js02ofl0ELyfSOgtBszji1WGVF2PJeNOjCWPbo19uw9ry+oeso1zf0dv7Nho64u9i8a9sw5DoP2nD8htcsaHxZkHsXtIesstGC9rbRTLufi9HX13Pld3071yGub+cm+WbZlhN9cjtT3bHX9lSz9pXVspsnll+zeFFWkbGV+ooIET8sf/w8ny+X6X+j+nf+RxE+mv5kgvt/);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;dashed=1;dashPattern=1 1;fontFamily=Helvetica;fontSize=12;fontColor=#312D2A;align=center;" vertex="1" parent="eChJDwyTb9s3T-vj8w6D-23">
|
||||
<mxGeometry x="25.029999999999973" width="39.94" height="45" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="eChJDwyTb9s3T-vj8w6D-22" value="<span style="color: rgb(49, 45, 42); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Kasm DB/Redis</span>" style="text;whiteSpace=wrap;html=1;align=center;labelBackgroundColor=none;" vertex="1" parent="eChJDwyTb9s3T-vj8w6D-23">
|
||||
<mxCell id="eChJDwyTb9s3T-vj8w6D-22" value="<span style="color: rgb(49, 45, 42); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Kasm DB</span>" style="text;whiteSpace=wrap;html=1;align=center;labelBackgroundColor=none;" vertex="1" parent="eChJDwyTb9s3T-vj8w6D-23">
|
||||
<mxGeometry y="43.710000000000036" width="90" height="25" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="eChJDwyTb9s3T-vj8w6D-26" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 87 KiB |
|
|
@ -38,7 +38,7 @@ No modules.
|
|||
| [oci_core_route_table.internet_gateway](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_route_table) | resource |
|
||||
| [oci_core_route_table.nat_gateway](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_route_table) | resource |
|
||||
| [oci_core_security_list.allow_bastion_ssh](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_security_list) | resource |
|
||||
| [oci_core_security_list.allow_db_redis](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_security_list) | resource |
|
||||
| [oci_core_security_list.allow_db](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_security_list) | resource |
|
||||
| [oci_core_security_list.allow_public_ssh](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_security_list) | resource |
|
||||
| [oci_core_security_list.allow_rdp_to_windows](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_security_list) | resource |
|
||||
| [oci_core_security_list.allow_web](https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_security_list) | resource |
|
||||
|
|
@ -95,7 +95,6 @@ No modules.
|
|||
| <a name="input_oci_domain_name"></a> [oci\_domain\_name](#input\_oci\_domain\_name) | The public Zone used for the dns entries. This must already exist in the OCI account. (e.g kasm.contoso.com). The deployment will be accessed via this zone name via https | `string` | n/a | yes |
|
||||
| <a name="input_private_key_path"></a> [private\_key\_path](#input\_private\_key\_path) | The path to the API Key PEM encoded Private Key | `string` | n/a | yes |
|
||||
| <a name="input_project_name"></a> [project\_name](#input\_project\_name) | The name of the deployment (e.g dev, staging). A short single word | `string` | n/a | yes |
|
||||
| <a name="input_redis_password"></a> [redis\_password](#input\_redis\_password) | The password for the Redis server. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_region"></a> [region](#input\_region) | The OCI Region eg: (us-ashburn-1) | `string` | n/a | yes |
|
||||
| <a name="input_service_registration_token"></a> [service\_registration\_token](#input\_service\_registration\_token) | The service registration token value for cpx RDP servers to authenticate to webapps. No special characters | `string` | n/a | yes |
|
||||
| <a name="input_ssh_authorized_keys"></a> [ssh\_authorized\_keys](#input\_ssh\_authorized\_keys) | The SSH Public Keys to be installed on the OCI compute instance | `string` | n/a | yes |
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ resource "oci_core_instance" "db" {
|
|||
kasm_build_url = var.kasm_build_url
|
||||
user_password = var.user_password
|
||||
admin_password = var.admin_password
|
||||
redis_password = var.redis_password
|
||||
database_password = var.database_password
|
||||
service_registration_token = var.service_registration_token
|
||||
manager_token = var.manager_token
|
||||
|
|
|
|||
|
|
@ -69,10 +69,10 @@ resource "oci_core_security_list" "allow_bastion_ssh" {
|
|||
}
|
||||
}
|
||||
|
||||
resource "oci_core_security_list" "allow_db_redis" {
|
||||
resource "oci_core_security_list" "allow_db" {
|
||||
compartment_id = var.compartment_ocid
|
||||
vcn_id = oci_core_vcn.this.id
|
||||
display_name = "allow_db_redis"
|
||||
display_name = "allow_db"
|
||||
|
||||
dynamic "egress_security_rules" {
|
||||
for_each = var.anywhere
|
||||
|
|
@ -92,15 +92,6 @@ resource "oci_core_security_list" "allow_db_redis" {
|
|||
min = "5432"
|
||||
}
|
||||
}
|
||||
|
||||
ingress_security_rules {
|
||||
protocol = "6"
|
||||
source = oci_core_subnet.webapp.cidr_block
|
||||
tcp_options {
|
||||
max = "6379"
|
||||
min = "6379"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "oci_core_security_list" "allow_web_from_lb" {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ resource "oci_core_subnet" "db" {
|
|||
display_name = "${var.project_name}-db-subnet"
|
||||
dns_label = "${var.project_name}db"
|
||||
security_list_ids = [
|
||||
oci_core_security_list.allow_db_redis.id,
|
||||
oci_core_security_list.allow_db.id,
|
||||
oci_core_security_list.allow_bastion_ssh.id
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,6 @@ wget ${kasm_build_url} -O kasm_workspaces.tar.gz
|
|||
tar -xf kasm_workspaces.tar.gz
|
||||
|
||||
sleep 30
|
||||
bash kasm_release/install.sh -S db -e -Q ${database_password} -R ${redis_password} -U ${user_password} -P ${admin_password} -M ${manager_token} -k ${service_registration_token}
|
||||
bash kasm_release/install.sh -S db -e -Q ${database_password} -U ${user_password} -P ${admin_password} -M ${manager_token} -k ${service_registration_token}
|
||||
|
||||
echo "Done"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ PRIVATE_IP=(`hostname -I | cut -d ' ' -f1 | tr -d '\\n'`)
|
|||
wget ${kasm_build_url} -O kasm_workspaces.tar.gz
|
||||
tar -xf kasm_workspaces.tar.gz
|
||||
|
||||
echo "Checking for Kasm DB and Redis..."
|
||||
echo "Checking for Kasm DB..."
|
||||
apt-get update && apt-get install -y netcat-openbsd
|
||||
while ! nc -w 1 -z ${db_ip} 5432; do
|
||||
echo "Database not ready..."
|
||||
|
|
@ -24,13 +24,7 @@ while ! nc -w 1 -z ${db_ip} 5432; do
|
|||
done
|
||||
echo "DB is alive"
|
||||
|
||||
while ! nc -w 1 -z ${db_ip} 6379; do
|
||||
echo "Redis not ready..."
|
||||
sleep 5
|
||||
done
|
||||
echo "Redis is alive"
|
||||
|
||||
sleep 30
|
||||
bash kasm_release/install.sh -S app -e -z ${zone_name} -q "${db_ip}" -Q ${database_password} -R ${redis_password}
|
||||
bash kasm_release/install.sh -S app -e -z ${zone_name} -q "${db_ip}" -Q ${database_password}
|
||||
|
||||
echo "Done"
|
||||
|
|
|
|||
|
|
@ -105,12 +105,6 @@ variable "database_password" {
|
|||
sensitive = true
|
||||
}
|
||||
|
||||
variable "redis_password" {
|
||||
description = "The password for the Redis server. No special characters"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "user_password" {
|
||||
description = "The standard (non administrator) user password. No special characters"
|
||||
type = string
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ resource "oci_core_instance" "webapp" {
|
|||
kasm_build_url = var.kasm_build_url
|
||||
db_ip = oci_core_instance.db.private_ip
|
||||
database_password = var.database_password
|
||||
redis_password = var.redis_password
|
||||
swap_size = var.swap_size
|
||||
zone_name = "default"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ allow_web_cidrs = ["0.0.0.0/0"]
|
|||
manager_token = "changeme"
|
||||
admin_password = "changeme"
|
||||
user_password = "changeme"
|
||||
redis_password = "changeme"
|
||||
database_password = "changeme"
|
||||
service_registration_token = "changeme"
|
||||
|
||||
|
|
|
|||
|
|
@ -199,17 +199,6 @@ variable "database_password" {
|
|||
}
|
||||
}
|
||||
|
||||
variable "redis_password" {
|
||||
description = "The password for the Redis server. No special characters"
|
||||
type = string
|
||||
sensitive = true
|
||||
|
||||
validation {
|
||||
condition = can(regex("^[a-zA-Z0-9]{12,30}$", var.redis_password))
|
||||
error_message = "The Redis Password should be a string between 12 and 30 letters or numbers with no special characters."
|
||||
}
|
||||
}
|
||||
|
||||
variable "user_password" {
|
||||
description = "The standard (non administrator) user password. No special characters"
|
||||
type = string
|
||||
|
|
|
|||