Set up Fabric¶
Spin up Fabric Manager¶
The first thing you will need to do is to create and/or choose a VPC for your Fabric Manager deployment. Next, create a VM in this VPC using the Bayware Multicloud Service Mesh image from the Marketplace.
To quickly start from the Azure marketplace offering, simply search for Bayware, and click on the “Get It Now” button to begin the download.
Update BWCTL CLI Tool¶
Upon successfully completing the creation of the new VM image, it is time to
update all necessary packages and dependencies for BWCTL. To do this, you will
need to SSH
into your newly created VM and switch to root level access to
update all packages as such:
]$ sudo su -
Next, to update BWCTL, run the command:
]# pip3 install --upgrade bwctl
To update the BWCTL-resources package, run the command:
]# pip3 install --upgrade bwctl-resources
To exit from the current command prompt once you have completed updating, run the command:
]# exit
Configure BWCTL¶
Next, it’s time to create the BWCTL environment in the home directory of the
current user (ubuntu
).
First, start BWCTL running the command:
]$ bwctl init
You should see this output:
[2019-09-25 17:30:12.156] Welcome to bwctl initialization
[2019-09-25 17:30:12.156] Fabric manager
[2019-09-25 17:30:12.156] Company name (value is required):
In interactive mode, provide all required values when prompted.
Note
Press <Enter>
to accept the default values.
After the initialization you should have a configuration similar to:
[2019-09-25 17:30:12.156] Welcome to bwctl initialization
[2019-09-25 17:30:12.156] Fabric manager
[2019-09-25 17:30:12.156] Company name (value is required): myorg3
[2019-09-25 17:30:30.113] Global
[2019-09-25 17:30:30.113] Cloud providers credentials file [~/.bwctl/credentials.yml]:
[2019-09-25 17:30:34.004] DNS hosted zone (value is required): poc.bayware.io
[2019-09-25 17:30:37.325] Debug enabled [true]:
[2019-09-25 17:30:42.062] Production mode enabled [true]:
[2019-09-25 17:30:44.548] Marketplace images to be used [false]:
[2019-09-25 17:30:48.624] Components
[2019-09-25 17:30:48.624] Family version [1.2]:
[2019-09-25 17:30:51.959] Cloud storage
[2019-09-25 17:30:51.959] Store bwctl state on AWS S3 [false]:
[2019-09-25 17:30:58.786] Store terraform state on AWS S3 [true]:
[2019-09-25 17:31:05.633] AWS S3 bucket name [terraform-states-sandboxes]:
[2019-09-25 17:31:12.933] AWS region [us-west-1]:
[2019-09-25 17:31:15.876] SSH keys
[2019-09-25 17:31:15.876] SSH Private key file []:
[2019-09-25 17:31:21.268] Configuration is done
To view the file with your cloud provider credentials, cat to where the cloud
credentials.yml
file was specified during the initialization by running the
command with the path to the file–in this example
/home/ubuntu/.bwctl/credentials.yml
–as argument:
]$ cd /home/ubuntu/.bwctl/credentials.yml
You should see this output:
---
# Add cloud-provider credentials that will be used when creating
# infrastructure and accessing repositories.
aws:
# In the AWS console, select the IAM service for managing users and keys.
# Select Users, and then Add User. Type in a user name and check
# programmatic access. Users require access to EC2, S3, and Route53.
# Copy and paste the secret access key and key ID here.
aws_secret_access_key:
aws_access_key_id:
azr:
# Azure provides detailed steps for generating required credentials
# on the command line, which you can find at this URL:
# https://docs.microsoft.com/en-us/azure/virtual-machines/linux/terraform-install-configure#set-up-terraform-access-to-azure
azr_client_id:
azr_client_secret:
azr_resource_group_name:
azr_subscription_id:
azr_tennant_id:
gcp:
# Google uses a GCP Service Account that is granted a limited set of
# IAM permissions for generating infrastructure. From the IAM & Admin
# page, select the service account to use and then click "create key"
# in the drop-down menu on the right. The JSON file will be downloaded
# to your computer. Put the path to that file here.
google_cloud_keyfile_json:
Use your editor of choice (ex: vim, nano) to add your public cloud credentials
to credentials.yml
.
Create Fabric¶
The next step is to create a fabric. The fabric acts as a namespace into which your infrastructure components will be deployed.
Note
The fabric manager allows you to create multiple fabrics to isolate various applications or different environments.
To get started, SSH into your Fabric Manager VM and enter the BWCTL command prompt:
]$ bwctl
You should be at the bwctl
prompt:
(None) bwctl>
Now, to create a new fabric, run the command with your fabric name–in this
example myfab2
–as the argument:
(None) bwctl> create fabric myfab2
You should see output similar to:
[2019-09-25 17:33:24.563] Creating fabric: myfab2...
...
[2019-09-25 17:33:29.901] Fabric 'myfab21' created successfully
To configure the fabric, run the command with your organization name–in this
example myorg2
–as the argument:
(None) bwctl> configure fabric myfab2
You should see output similar to:
[2019-09-25 17:34:29.730] Install CA for fabric 'myfab2'
...
[2019-09-25 17:34:36.859 Fabric 'myfab2' configured successfully
To verify the new fabric has been created with the argument provided, run the command:
(None) bwctl> show fabric
You should see output similar to:
[2019-09-25 17:35:50.356] Available fabrics listed. Use “bwctl set fabric FABRIC_NAME” to select fabric.
FABRIC
myfab2
Now, set BWCTL to the new fabric by running this command:
(None) bwctl> set fabric myfab2
You should see output similar to:
[2019-09-25 17:36:22.476] Active fabric: 'myfab2'
Notice that your bwctl
prompt has changed, now showing the active fabric:
(myfab2) bwctl>