Did you ever want to run Cisco Modeling Labs but did not have the hardware or software to do so? Or have you wanted to run a topology on your local deployment—but couldn’t because you did not have enough memory available locally? What about integrating CML into a CI/CD pipeline, which includes the creation and destruction of the entire pipeline, including CML?

You might think one answer to these problems would be to use CML in the cloud. And you’d be right. However, up until recently, the only supported platforms to run CML were either on bare metal servers or on VMware vSphere.

We have heard requests to have CML Software-as-a-Service (SaaS), and we’re working hard to make this a reality in the future. Our first step in this direction is to provide tooling and automation so you can deploy your CML instance into Amazon Web Services (AWS)! This tooling is available as of today on GitHub.

Setting expectations

With this first step of automation and tooling comes a few limitations, including:

  • Tooling is currently only supported on AWS. We’re working on making this also available on Azure in a subsequent release.
  • It only supports an all-in-one deployment. Subsequent releases could include deployment of multiple instances to form a CML cluster.
  • This approach needs a bare-metal flavor to support all node types. Metal flavors are more expensive than virtualized instances; however, AWS does not support virtualization extensions on their non-bare-metal flavors. This is different from Azure.
  • You need to bring your own AWS instance AND your own CML license. No pay-as-you-go consumption model is available as of today.
  • CML software and reference platform files from the “refplat ISO” need to be made available in a bucket.
  • Automation must run locally on your computer, particularly a Linux machine with Terraform.

Due to the nature of CML’s function, the ability to run it in the cloud will never be cheap (as in free-tier). CML requires a lot of resources, memory, disk, and CPU, which comes at a cost, regardless of whether you run it locally on your laptop, in your data center, or in the cloud. The idea behind the cloud is to simplify operation and provide elasticity but not necessarily to save money.

Meeting software requirements

The software requirements you’ll need to successfully use the tooling include:

  • a Linux machine (should also work on a Mac with the same packages installed via Homebrew)
  • a Bash shell (in case you use the upload tool, which is a Bash script)
  • a Terraform installation
  • the AWS CLI package (awscli with the aws command)
  • the CML software package (.pkg) and the CML reference platform ISO from CCO/cisco.com

An existing CML controller satisfies the first two requirements, and you can use that to install Terraform and the AWS CLI. It also has the reference platform files available to copy to an AWS S3 bucket. You also must download the CML distribution package from the Cisco support website and copy it to the AWS S3 bucket.

Select the distribution package circled in the following screenshot (the version might be different, but it ends in .pkg.zip), and you’ll need to unzip it for the upload tool to recognize it

For more detail, refer to the “Upload script” section of the README.md that is included in the cml-cloud repository.

Getting up and running

Once you’ve installed the requirements and copied the files, you’ll find the actual procedure straight forward and meticulously documented in the README.md.

Here are the fundamental steps:

    1. Configure the required S3 bucket, user, policies, secrets, and rules via AWS console (once).
    2. Upload the binary files (images and software) into the created bucket (once or whenever new software is available).
    3. Configure the tooling by editing the config.json file (once).
    4. Run terraform plan followed by terraform apply to bring up an instance
    5. Wait 5-10 minutes for the system to become ready; the address of the controller is provided as a result (“output” from Terraform)
    6. Use CML in the cloud and profit!

Once you’re done, tear down the cloud infrastructure by executing terraform destroy.

Note: While no cost is incurred when you are not running CML instances, you’ll still need to pay for storing the files inside the created S3 bucket.

Taking the next steps

While CML AWS automation tooling is a first step toward CML SaaS, the tooling in its current form might not fit your needs exactly because of cost for bare-metal instances or the current dependency on AWS. Or you might want a pay-as-you-go service or something else. Let us know!

Just remember subsequent steps are ahead! Stay tuned, and tell us what you think in the meantime. We are extremely interested in how useful (or not) this first iteration of cloud tooling is to you and your organization and, going forward, what your specific requirements are. Please reach out to us on the GitHub issue tracker project.



Join the Cisco Learning Network today for free.

Follow Cisco Learning & Certifications

Twitter | Facebook | LinkedIn | Instagram | YouTube

Use #CiscoCert to join the conversation.


Ralph Schmieder

Technical Leader, Learning & Certifications

Customer Experience (CX)