DNS Configuration Conditioning :
- Add AWS_R53_ENABLED variable - Update Documentation - Add ToDo
This commit is contained in:
12
README.md
12
README.md
@@ -2,6 +2,11 @@
|
||||
|
||||
This project automates the deployment of ContainerLab on an AWS EC2 instance using Terraform for infrastructure provisioning and Ansible for software setup and configuration. It also configures a Route53 DNS record for easy access to the ContainerLab instance.
|
||||
|
||||
## To Do
|
||||
|
||||
- [ ] Improving documentation
|
||||
- [ ] Complete DNS configuration conditioning
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have the following prerequisites installed and configured:
|
||||
@@ -84,7 +89,12 @@ The `network_images` folder is intended for Docker images that will be used by C
|
||||
|
||||
- You can access the ContainerLab instance via SSH using the public IP or the DNS name provided by Route53.
|
||||
- The public IP of the instance can be found in the Terraform output.
|
||||
- The DNS name will be in the format containerlab `<your_route53_zone_name>`
|
||||
- The DNS name will be in the format containerlab `<your_route53_zone_name>`.
|
||||
|
||||
> :warning: **ROUTE 53**
|
||||
> By default, Route 53 is disabled to avoid errors in case of incomplete configuration.
|
||||
> To enable it, modify the variables: `AWS_R53_ENABLED` and `AWS_R53_ZONE_ID`.
|
||||
> In any case, `AWS_R53_ZONE_ID` need to be configured.
|
||||
|
||||
## Customization
|
||||
|
||||
|
||||
@@ -33,6 +33,9 @@ resource "aws_instance" "containerlab_host" {
|
||||
instance_type = var.INSTANCE_TYPE
|
||||
key_name = var.AWS_KEY_NAME
|
||||
vpc_security_group_ids = [aws_security_group.netlab_sg.id]
|
||||
tags = {
|
||||
Name = "ContainerLab"
|
||||
}
|
||||
|
||||
root_block_device {
|
||||
volume_size = "128"
|
||||
|
||||
@@ -3,5 +3,5 @@ output "public_ip" {
|
||||
}
|
||||
|
||||
output "containerlab_fqdn" {
|
||||
value = "${aws_route53_record.containerlab_fqdn.name}.${data.aws_route53_zone.selected.name}"
|
||||
value = var.AWS_R53_ENABLED && length(aws_route53_record.containerlab_fqdn) > 0 ? "${aws_route53_record.containerlab_fqdn[0].name}.${data.aws_route53_zone.selected.name}" : ""
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ data "aws_route53_zone" "selected" {
|
||||
zone_id = var.AWS_R53_ZONE_ID
|
||||
}
|
||||
|
||||
|
||||
resource "aws_route53_record" "containerlab_fqdn" {
|
||||
count = var.AWS_R53_ENABLED ? 1 : 0
|
||||
zone_id = var.AWS_R53_ZONE_ID
|
||||
name = "containerlab"
|
||||
type = "A"
|
||||
|
||||
@@ -2,4 +2,5 @@ AWS_ACCESS_KEY = "YOURACCESSKEY"
|
||||
AWS_SECRET_KEY = "YOURACCESSTOKEN"
|
||||
AWS_KEY_NAME = "AWS_key_name"
|
||||
AWS_KEY_LOCATION = "~/.ssh/aws_key.pem"
|
||||
AWS_R53_ENABLED = "false"
|
||||
AWS_R53_ZONE_ID = "R53_ZONE_ID"
|
||||
@@ -3,6 +3,10 @@ variable "AWS_SECRET_KEY" {}
|
||||
variable "AWS_KEY_NAME" {}
|
||||
variable "AWS_KEY_LOCATION" {}
|
||||
variable "AWS_R53_ZONE_ID" {}
|
||||
variable "AWS_R53_ENABLED" {
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "GITHUB_REPO_URL" {
|
||||
type = string
|
||||
|
||||
Reference in New Issue
Block a user