All Projects → IGNW → terraform-provider-cisco-aci

IGNW / terraform-provider-cisco-aci

Licence: MPL-2.0 license
Terraform provider for automating Cisco ACI enabled networks

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to terraform-provider-cisco-aci

headless-wordpress
Headless Wordpress - AWS - Easy Setup
Stars: ✭ 42 (+200%)
Mutual labels:  infrastructure, iac
terraform-provider-checkly
Terraform provider for the Checkly monitoring service
Stars: ✭ 37 (+164.29%)
Mutual labels:  iac, terraform-provider
Terrascan
Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.
Stars: ✭ 2,687 (+19092.86%)
Mutual labels:  infrastructure, iac
terraform-provider-sonarqube
Terraform provider for managing Sonarqube configuration
Stars: ✭ 26 (+85.71%)
Mutual labels:  iac, terraform-provider
terraform-vsphere-single-vm
Deploy single vSphere VM with Terraform - template.
Stars: ✭ 21 (+50%)
Mutual labels:  infrastructure, iac
devops-infra-demo
Growing repository of Infrastructure as Code demos (initially created for DevOps Wall Street)
Stars: ✭ 31 (+121.43%)
Mutual labels:  infrastructure, iac
Magento-2-aws-cluster-terraform
Magento 2 AWS autoscaling cluster with Terraform and Packer or ImageBuilder. Adobe Commerce Cloud alternative. The best ecommerce infrastructure. Drive more sales online. Transparent billing. Developer-friendly. No hidden bottlenecks.
Stars: ✭ 107 (+664.29%)
Mutual labels:  infrastructure, iac
django-angular2-fullstack-devops
All-in-one django/angular2 seed with cli interface for multi-environment devops on aws using ansible/packer/terraform
Stars: ✭ 54 (+285.71%)
Mutual labels:  infrastructure
terraform-provider-rancher
Terraform Rancher provider
Stars: ✭ 35 (+150%)
Mutual labels:  terraform-provider
cb-spider
CB-Spider provides a unified view and single interface for multi-cloud management.
Stars: ✭ 26 (+85.71%)
Mutual labels:  iac
terraform-provider-mysql
Terraform MySQL provider – This Terraform provider is archived per our provider archiving process: https://terraform.io/docs/internals/archiving.html
Stars: ✭ 59 (+321.43%)
Mutual labels:  terraform-provider
terraform-oci-compute-instance
Terraform Module for creating Oracle Cloud Infrastructure compute instances
Stars: ✭ 29 (+107.14%)
Mutual labels:  iac
devops-101
Intro to DevOps from scratch.
Stars: ✭ 57 (+307.14%)
Mutual labels:  iac
terraform-provider-hcp
Terraform provider for HashiCorp Cloud Platform.
Stars: ✭ 36 (+157.14%)
Mutual labels:  terraform-provider
devopsish.com
DevOps, Cloud Native, Hybrid Cloud, Open Source, industry news, culture, and the ‘ish between.
Stars: ✭ 33 (+135.71%)
Mutual labels:  infrastructure
terraform-provider-external
Utility provider that exists to provide an interface between Terraform and external programs. Useful for integrating Terraform with a system for which a first-class provider does not exist.
Stars: ✭ 136 (+871.43%)
Mutual labels:  terraform-provider
infrastructure
A repository containing scripts for managing infrastructure
Stars: ✭ 18 (+28.57%)
Mutual labels:  infrastructure
terraform-provider-circleci
Terraform provider for CircleCI
Stars: ✭ 94 (+571.43%)
Mutual labels:  terraform-provider
terraform-provider-commercetools
Terraform provider for commercetools
Stars: ✭ 58 (+314.29%)
Mutual labels:  terraform-provider
infrastructure
Flux based GitOps repository for my home lab infrastructure.
Stars: ✭ 14 (+0%)
Mutual labels:  infrastructure

Cisco ACI Provider

This repo contains a terraform provider for deploying networks on Cisco hardware via Cisco ACI.

Background

In modern technology stacks developers and systems engineers find it easy to spin up new networks in the cloud using Terraform. This process is still challenging in more traditional data centers continues to be cumbersome. In recent years, Cisco has released the ACI technology to make the process of setting up and configuring networks simpler and faster. The ACI layer adds an Application Programmer's Interface (API) and a GUI for network engineers. This module aims to leverage the ACI capability and allow engineers to provision Cisco networks using Terraform.

More information on ACI capabilities can be found here.

What's a Provider?

Terraform is used to create, manage, and update infrastructure resources such as physical machines, VMs, network switches, containers, and more. Almost any infrastructure type can be represented as a resource in Terraform.

A provider is responsible for understanding API interactions and exposing resources.

Building the Provider

Clone repository to: $GOPATH/src/github.com/ignw/terraform-provider-cisco-aci

$ mkdir -p $GOPATH/src/github.com/ignw
$ cd $GOPATH/src/github.com/ignw
$ git clone [email protected]:IGNW/terraform-provider-cisco-aci.git

Enter the provider directory, install tools and project dependencies:

$ cd $GOPATH/src/github.com/ignw/terraform-provider-cisco-aci
$ make tools
$ make deps

Build the provider:

$ make build

If the build process ends successfully, the provider binary will be generated in the following path: $GOPATH/bin/terraform-provider-aci

Testing the Provider

In order to test the provider, you can simply run make test.

In order to run the full suite of acceptance tests, run make testacc.

Note: Acceptance tests create real resources, and often cost money to run.

$ make testacc
``ACI_URL=https://host:port ACI_USER=admin ACI_PASS=password ACI_ALLOW_INSECURE make testacc

Using the Provider

If you're building the provider, follow the instructions to install it as a plugin. After placing it into your plugins directory, run terraform init in the folder where you have your .tf files to initialize it.

For example:

mkdir -p ~/.terraform.d/plugins/linux_amd64
cp $GOPATH/bin/terraform-provider-aci ~/.terraform.d/plugins/linux_amd64/
cd examples/example_1
terraform init -plugin-dir ~/.terraform.d/plugins/linux_amd64
terraform plan
terraform apply

Authentication

The ACI provider offers a flexible way of providing credentials for authentication. The following methods are supported, in this order, and explained below:

  • Static credentials
  • Environment variables

Static credentials

You can provide your credentials using the aci provider parameters in the terraform file.

provider "aci" {
  url            = "https://host:port"
  username       = "user"
  password       = "password"
  allow_insecure = true
  domain         = "mydomain.com"
}

Usage:

$ terraform plan

Environment variables

You can provide your credentials via the ACI_URL, ACI_USER, ACI_PASS, ACI_ALLOW_INSECURE and ACI_DOMAIN (optional) environment variables.

provider "aci" {}

Usage:

$ export ACI_URL="https://host:port"
$ export ACI_USER="user"
$ export ACI_PASS="password"
$ export ACI_ALLOW_INSECURE=true
$ export ACI_DOMAIN="mydomain.com"
$ terraform plan

Who maintains this Provider?

This Module is maintained by IGNW. If you're looking for help or commercial support, send an email to [email protected]. IGNW can help with:

  • Setup, customization, and support for this Provider.
  • Modules for other types of infrastructure, such as VPCs, Docker clusters, databases, and continuous integration.
  • Modules that meet compliance requirements, such as FedRamp, HIPAA.
  • Consulting & Training on AWS, Azure, GCP, Terraform, and DevOps.

Code included in this Module:

How is this Provider versioned?

This Module follows the principles of Semantic Versioning. You can find each new release, along with the changelog, in the Releases Page.

During initial development, the major version will be 0 (e.g., 0.x.y), which indicates the code does not yet have a stable API. Once we hit 1.0.0, we will make every effort to maintain a backwards compatible API and use the MAJOR, MINOR, and PATCH versions on each release to indicate any incompatibilities.

License

This code is released under the Mozilla . Please see LICENSE and NOTICE for more details.

Copyright © 2018 InfogroupNW, Inc.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].