Skip to content

Control components rebranding #38

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ Current coverage:
- [x] Deployment on AWS
- [x] Deployment on Azure
- [x] Deployment of:
- [x] vManage
- [x] vBond
- [x] vSmart
- [x] Manager
- [x] Validator
- [x] Controller
- [x] cEdge
- [x] Local installation via Ansible Galaxy
- [x] Installation via git repository link
Expand Down Expand Up @@ -125,7 +125,7 @@ ansible-galaxy install -r requirements.yml

### Prepare your configuration

*Note:* Current solution supports topology that consist of vManage, vBond, vSmart and C8000V edge device.
*Note:* Current solution supports topology that consist of Manager, Validator, Controller and C8000V edge device.

There are configuration files which has been initially filled with values:

Expand Down Expand Up @@ -235,7 +235,7 @@ is "allow-listed". See `aws_allowed_subnets` in `roles/aws_controllers/defaults/

### 2. Services status

If vManage is not starting NMS service:
If Manager is not starting NMS service:

- check if your disk /opt/data is more than 20% free. Otherwise that case shutdown application as well
- remember to make sure the sdwan manager and other sdwan virtual machines are right sized for your deployment needs - cisco's server recommendations are available here: [server-requirements](https://www.cisco.com/c/en/us/td/docs/routers/sdwan/release/notes/compatibility-and-server-recommendations/server-requirements.html)
Expand Down
50 changes: 25 additions & 25 deletions playbooks/aws_sdwan_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ aws_subnets: |
subnet_cidr: "10.0.2.0/24" # default ips from official Cisco guides
VPN: 0
type: transport
{% if vmanage_instances is defined and vmanage_instances | length > 2 %}
{% if manager_instances is defined and manager_instances | length > 2 %}
- name: "{{ aws_resources_prefix }}-cluster-subnet-0"
subnet_cidr: "10.0.3.0/24"
VPN: 0
Expand Down Expand Up @@ -74,50 +74,50 @@ aws_nacl_name: "{{ aws_resources_prefix }}-nacl"
# Cloud-init general configurations
admin_username: admin
admin_password: null # pragma: allowlist secret
vbond_port: 12346
# vbond_transport_private_ip: null # note that default: 192.168.1.199
# vbond_transport_public_ip: null # note that default: 192.168.1.199
validator_port: 12346
# validator_transport_private_ip: null # note that default: 192.168.1.199
# validator_transport_public_ip: null # note that default: 192.168.1.199



###############################
# Controllers #
###############################

# vManage
aws_vmanage_ami_id: null
aws_vmanage_instance_type: "c5.9xlarge"
# Manager
aws_manager_ami_id: null
aws_manager_instance_type: "c5.9xlarge"

site_id_vmanage: 100
site_id_manager: 100

vmanage_instances:
- hostname: "{{ aws_resources_prefix }}-vManage"
manager_instances:
- hostname: "{{ aws_resources_prefix }}-Manager"
system_ip: 192.168.1.1
site_id: "{{ site_id_vmanage }}"
site_id: "{{ site_id_manager }}"


# vBond
aws_vbond_ami_id: null
aws_vbond_instance_type: "c5.large"
# Validator
aws_validator_ami_id: null
aws_validator_instance_type: "c5.large"

site_id_vbond: 200
site_id_validator: 200

vbond_instances:
- hostname: "{{ aws_resources_prefix }}-vBond"
validator_instances:
- hostname: "{{ aws_resources_prefix }}-Validator"
system_ip: 192.168.3.1
site_id: "{{ site_id_vbond }}"
site_id: "{{ site_id_validator }}"


# vSmart
aws_vsmart_ami_id: null
aws_vsmart_instance_type: "c5.large"
# Controller
aws_controller_ami_id: null
aws_controller_instance_type: "c5.large"

site_id_vsmart: 300
site_id_controller: 300

vsmart_instances:
- hostname: "{{ aws_resources_prefix }}-vSmart"
controller_instances:
- hostname: "{{ aws_resources_prefix }}-Controller"
system_ip: 192.168.2.1
site_id: "{{ site_id_vsmart }}"
site_id: "{{ site_id_controller }}"



Expand Down
40 changes: 20 additions & 20 deletions playbooks/azure_sdwan_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,38 +28,38 @@ az_allowed_subnets: null

admin_password: null

# vManage
az_vmanage_image_vhd_source: null
az_vmanage_vm_size: "Standard_F16s_v2"
# Manager
az_manager_image_vhd_source: null
az_manager_vm_size: "Standard_F16s_v2"

site_id_vmanage: 100
site_id_manager: 100

vmanage_instances:
- hostname: "{{ az_resources_prefix }}-vManage"
manager_instances:
- hostname: "{{ az_resources_prefix }}-Manager"
system_ip: 192.168.1.1
site_id: "{{ site_id_vmanage }}"
site_id: "{{ site_id_manager }}"


# vBond
az_vbond_image_vhd_source: null
site_id_vbond: 200
# Validator
az_validator_image_vhd_source: null
site_id_validator: 200

vbond_instances:
- hostname: "{{ az_resources_prefix }}-vBond"
validator_instances:
- hostname: "{{ az_resources_prefix }}-Validator"
system_ip: 192.168.3.1
site_id: "{{ site_id_vbond }}"
site_id: "{{ site_id_validator }}"


# vSmart
az_vsmart_image_vhd_source: null
az_vsmart_vm_size: "Standard_F4s_v2"
# Controller
az_controller_image_vhd_source: null
az_controller_vm_size: "Standard_F4s_v2"

site_id_vsmart: 300
site_id_controller: 300

vsmart_instances:
- hostname: "{{ az_resources_prefix }}-vSmart"
controller_instances:
- hostname: "{{ az_resources_prefix }}-Controller"
system_ip: 192.168.2.1
site_id: "{{ site_id_vsmart }}"
site_id: "{{ site_id_controller }}"


################################
Expand Down
38 changes: 19 additions & 19 deletions playbooks/template_cloudinit_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,41 +19,41 @@ cloud_provider: null # can be either aws or azure
# Cloud-init general configurations
admin_username: admin
admin_password: dummypassword # pragma: allowlist secret
vbond_port: 12346
vbond_transport_private_ip: X.X.X.X
vbond_transport_public_ip: Y.Y.Y.Y
validator_port: 12346
validator_transport_private_ip: X.X.X.X
validator_transport_public_ip: Y.Y.Y.Y


###############################
# Controllers #
###############################

# vManage
site_id_vmanage: 100
# Manager
site_id_manager: 100

vmanage_instances:
- hostname: terraformvmanage1 # "{{ resources_prefix }}-vManage"
manager_instances:
- hostname: terraformmanager1 # "{{ resources_prefix }}-Manager"
system_ip: 192.168.1.1
site_id: "{{ site_id_vmanage }}"
site_id: "{{ site_id_manager }}"
vpn0_default_gateway: 10.0.2.1 # has to be set if cloud_provider == "azure"

# vBond
site_id_vbond: 200
# Validator
site_id_validator: 200

vbond_instances:
- hostname: terraformvbond1 # "{{ resources_prefix }}-vBond"
validator_instances:
- hostname: terraformvalidator1 # "{{ resources_prefix }}-Validator"
system_ip: 192.168.3.1
site_id: "{{ site_id_vbond }}"
site_id: "{{ site_id_validator }}"
vpn0_default_gateway: 10.0.2.1 # has to be set if cloud_provider == "azure"


# vSmart
site_id_vsmart: 300
# Controller
site_id_controller: 300

vsmart_instances:
- hostname: terraformvsmart1 # "{{ resources_prefix }}-vSmart"
controller_instances:
- hostname: terraformcontroller1 # "{{ resources_prefix }}-Controller"
system_ip: 192.168.2.1
site_id: "{{ site_id_vsmart }}"
site_id: "{{ site_id_controller }}"
vpn0_default_gateway: 10.0.2.1 # has to be set if cloud_provider == "azure"


Expand All @@ -68,4 +68,4 @@ edge_instances:
site_id: 1002
system_ip: 192.168.102.1
uuid: XXXX-XXXX-XXXX
vbond: 1.1.1.1
validator: 1.1.1.1
12 changes: 6 additions & 6 deletions roles/aws_controllers/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Ansible Role: aws_controllers

The `aws_controllers` Ansible role is designed to deploy a Cisco SD-WAN controller topology on AWS cloud infrastructure. It follows the topology outlined in the official Cisco documentation and currently supports the deployment of vManage, vBond, and vSmart instances.
The `aws_controllers` Ansible role is designed to deploy a Cisco SD-WAN controller topology on AWS cloud infrastructure. It follows the topology outlined in the official Cisco documentation and currently supports the deployment of Manager, Validator, and Controller instances.

NOTE: Role must be used on localhost - API requests to AWS via boto are done from local machine.

## Role description

The `aws_controllers` role automates the deployment of Cisco SD-WAN controllers (vManage, vBond, and vSmart) in AWS. Key functionalities include:
The `aws_controllers` role automates the deployment of Cisco SD-WAN controllers (Manager, Validator, and Controller) in AWS. Key functionalities include:

- Validating AWS dependencies and user sessions.
- Discovering or using provided network infrastructure settings.
Expand All @@ -21,7 +21,7 @@ The `aws_controllers` role automates the deployment of Cisco SD-WAN controllers
- Ansible AWS modules (`amazon.aws` collection) installed.
- Boto3 and Botocore Python libraries installed on the controlling machine to interact with AWS APIs.
- AWS CLI configured with the appropriate permissions to create and manage AWS resources.
- AWS EC2 AMIs for vManage, vBond, and vSmart instances must be available in your AWS account.
- AWS EC2 AMIs for Manager, Validator, and Controller instances must be available in your AWS account.

## Dependencies

Expand All @@ -36,14 +36,14 @@ The `aws_controllers` role automates the deployment of Cisco SD-WAN controllers
- `az_subnets`: A list of subnet definitions for the Azure Virtual Network.
- `aws_vpc_name`, `aws_security_group_name`: Default naming convention for VPC and security group.
- `aws_tag_creator`: Tag used to mark resources created in AWS.
- `vbond_port`, `default_vbond_ip`: Default port and IP for vBond.
- `site_id_vmanage`, `site_id_vbond`, `site_id_vsmart`: Default site IDs for each controller.
- `validator_port`, `default_validator_ip`: Default port and IP for Validator.
- `site_id_manager`, `site_id_validator`, `site_id_controller`: Default site IDs for each controller.

### Vars (`vars/main.yml`)

- `results_dir`: Directory to store deployment results.
- `aws_deployed_controllers_data`: File to store data of deployed controllers.
- `userdata_vmanage_path`, `userdata_vbond_path`, `userdata_vsmart_path`: Paths to user data configurations for each controller type.
- `userdata_manager_path`, `userdata_validator_path`, `userdata_controller_path`: Paths to user data configurations for each controller type.

### Required Variables

Expand Down
36 changes: 18 additions & 18 deletions roles/aws_controllers/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,37 +27,37 @@ aws_resources_prefix: "{{ organization_name }}"
# Cloud-init general configurations
admin_username: admin
admin_password: null # pragma: allowlist secret
vbond_port: 12346
default_vbond_ip: 192.168.1.199 # default ips from official Cisco guides
validator_port: 12346
default_validator_ip: 192.168.1.199 # default ips from official Cisco guides
# vpn0_interface_color: default


###############################
# Controllers #
###############################

# vManage
aws_vmanage_ami_id: null
aws_vmanage_instance_type: "c5.9xlarge"
# Manager
aws_manager_ami_id: null
aws_manager_instance_type: "c5.9xlarge"

vmanage_default_persona: "COMPUTE_AND_DATA"
site_id_vmanage: 100
manager_default_persona: "COMPUTE_AND_DATA"
site_id_manager: 100

vmanage_instances: []
manager_instances: []

# vBond
aws_vbond_ami_id: null
aws_vbond_instance_type: "c5.large"
# Validator
aws_validator_ami_id: null
aws_validator_instance_type: "c5.large"

site_id_vbond: 200
site_id_validator: 200

vbond_instances: []
validator_instances: []


# vSmart
aws_vsmart_ami_id: null
aws_vsmart_instance_type: "c5.large"
# Controller
aws_controller_ami_id: null
aws_controller_instance_type: "c5.large"

site_id_vsmart: 300
site_id_controller: 300

vsmart_instances: []
controller_instances: []
Loading