Terraform: NSX-T infra segments and File:Nsx-universal-sec-11.png: Difference between pages

From Iwan
(Difference between pages)
Jump to: navigation, search
No edit summary
 
(== Summary == Uplaoding files from nsx.ninja and iwan.wiki)
Tag: Server-side upload
 
Line 1: Line 1:
Now that we prepared the environment to start our Terraform coding it is time to actually start some Terraform coding.
== Summary ==
For our automated nested lab we need some network segments that the infra that we are building will consume.
Uplaoding files from nsx.ninja and iwan.wiki
 
The Segments we need to create with the subnets are listed below:
 
* '''LX-APP-MGMT-11''' | 192.168.11.0/24
** Subnet for Management applications, like vCenter Server, NSX-T Manager, etc.
* '''LX-ESXI-MGMT-UT'''  | 192.168.12.0/24
** Subnet for all vmk0 interfaces for ESXi management traffic.
* '''LX-VMOTION-13''' | 192.168.13.0/24
** Subnet for all vmk1 interfaces for ESXi vMotion traffic.
* '''LX-VSAN-14''' | 192.168.14.0/24
** Subnet for all vmk2 interfaces for ESXi VSAN traffic.
* '''LX-REPLICATION-15''' | 192.168.15.0/24
** Subnet for all vmk3 interfaces for ESXi Replication traffic.
* '''LX-OVERLAY-HOST-16''' | 192.168.16.0/24
** Subnet for all Host (ESXi) Transport Node TEP interfaces for GENEVE traffic.
* '''LX-OVERLAY-EDGE-17''' | 192.168.17.0/24
** Subnet for all Edge (VM) Transport Node TEP interfaces for GENEVE traffic.
* '''LX-BGP-UPLINK-01-18''' | 192.168.18.0/24
** Subnet for BGP uplink 01 for N/S Connectivity.
* '''LX-BGP-UPLINK-02-19''' | 192.168.19.0/24
** Subnet for BGP uplink 02 for N/S Connectivity.
* '''LX-TRANSIT-LEAF-SPINE-20''' | 192.168.20.0/24
** Subnet to connect the virtual ToR switches/leafs (VX01 and VX02) with the core/spine (VX00).
 
{{note|Where the “X” is used we need to replace this with a number that will reflect our lab number.}}
 
The terraform script in order to deploy these segments on my NSX-T infrastructure NSX-T Manager can be found below:
 
{{console|body=
\❯ tree
├── main.tf
}}
 
 
'''main.tf'''
<div class="toccolours mw-collapsible mw-collapsed">
'''CLICK ON EXPAND ===> ON THE RIGHT ===> TO SEE THE OUTPUT (main.tf code) ===>''' :
<div class="mw-collapsible-content">{{console|body=
# use Terraform 0.12 to execute script
 
# NSX-T Manager Credentials
provider "nsxt" {
    host                    = “<your NSX-T manager IP/Hostname>”
    username                = “admin”
    password                = “<your NSX-T manager password>”
    allow_unverified_ssl    = true
    max_retries              = 10
    retry_min_delay          = 500
    retry_max_delay          = 5000
    retry_on_status_codes    = [429]
}
 
data “nsxt_policy_transport_zone” “overlay_tz” {
    display_name = “TZ-OVERLAY”
}
 
resource “nsxt_policy_segment” “tf_app_mgmt” {
    display_name = “LX-APP-MGMT-11”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource “nsxt_policy_segment” “tf_esxi_mgmt” {
    display_name = “LX-ESXI-MGMT-UT”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource “nsxt_policy_segment” “tf_vmotion” {
    display_name = “LX-VMOTION-13”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource “nsxt_policy_segment” “tf_vsan” {
    display_name = “LX-VSAN-14”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource "nsxt_policy_segment” “tf_replication” {
    display_name = “LX-REPLICATION-15”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource “nsxt_policy_segment” “tf_overlay_host” {
    display_name = “LX-OVERLAY-HOST-16”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource “nsxt_policy_segment” “tf_overlay_edge” {
    display_name = “LX-OVERLAY-EDGE-17”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource “nsxt_policy_segment” “tf_uplink_01” {
    display_name = “LX-BGP-UPLINK-01-18”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource “nsxt_policy_segment” “tf_uplink_02” {
    display_name = “LX-BGP-UPLINK-02-19”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
 
resource “nsxt_policy_segment” “tf_transit_leaf_spine” {
    display_name = “LX-TRANSIT-LEAF-SPINE-20”
    description = “Segment created by Terraform”
    transport_zone_path = data.nsxt_policy_transport_zone.overlay_tz.path
}
}}</div>
</div>
 
Validate your code:
{{console|body=
ihoogendoor-a01:#Test iwanhoogendoorn$ tfenv use 0.12.24
[INFO] Switching to v0.12.24
[INFO] Switching completed
ihoogendoor-a01:Test iwanhoogendoorn$ terraform validate
}}
 
Plan your code:
{{console|body=
ihoogendoor-a01:Test iwanhoogendoorn$ terraform plan
}}
 
Execute your code to implement the Segments:
{{console|body=
ihoogendoor-a01:Test iwanhoogendoorn$ terraform apply
}}
 
When the segments need to be removed again you can revert the implementation:
{{console|body=
ihoogendoor-a01:Test iwanhoogendoorn$ terraform destroy
}}
 
Before the above script can be executed (as the time of this writing: March 2020) we need to compile the latest NSX-T Terraform Provider from source.
The NSX-T Terraform Provider that is downloaded automatically is a version that does not contain all features and the policy management features are not fully available and in beta at the moment.
 
In order to create the segments with terraform in NSX-T in the Simple UI the default nsx-t terraform provider is not supported.
With the default you can only create segments in the advanced UI (that is not visible in the Simple UI).
In order to get the latest terraform NSX-T provider you need to compile this yourself.
 
== Using the latest version of the NSX-T provider ==
 
By default when using the NSX-T provider in your Terraform script the “Default” provider will be downloaded and used.
This “default” version is the latest and stable version of the provider, but not the one with the latest features.
There are a lot more features and commands under development and these can only be used with the latest version of the NSX-T provider.
In order to get this new NSX-T provider with the latest and greatest features we need to clone the GitHub repo of the provider and compile it from source using Go Lang.
 
So the first step is to install Go Lang on my Mac.
We do this using brew.
How brew works can be found [http://www.iwan.wiki/Install_brew,_PowerShell_and_Terraform_on_my_MacBook_Pro_running_OS_X here].
 
{{console|body=
ihoogendoor-a01:~ iwanhoogendoorn$ # Go development
 
ihoogendoor-a01:~ iwanhoogendoorn$ export GOPATH=“${HOME}/.go”
 
ihoogendoor-a01:~ iwanhoogendoorn$ export GOROOT=“$(brew —prefix golang)/libexec”
 
ihoogendoor-a01:~ iwanhoogendoorn$ export PATH=“$PATH:${GOPATH}/bin:${GOROOT}/bin”
 
ihoogendoor-a01:~ iwanhoogendoorn$ test -d “${GOPATH}” || mkdir “${GOPATH}”
 
ihoogendoor-a01:~ iwanhoogendoorn$ test -d “${GOPATH}/src/github.com” || mkdir -p “${GOPATH}/src/github.com”
}}
 
{{console|body=
ihoogendoor-a01:~ iwanhoogendoorn$ brew install go
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
azcopy                      container-structure-test    dhall-yaml                  mtoc                        publish                    swift-format
==> Updated Formulae
appium                      dvc                        gsoap                      libvirt                    run                        tiny-fugue
arp-sk                      ettercap                    hugo                        minio                      selenium-server-standalone  tomee-plume
arping                      exploitdb                  inspircd                    minio-mc                    skaffold                    tomee-plus
arpoison                    fop                        legit                      miniserve                  spades                      tomee-webprofile
balena-cli                  frege                      libarchive                  nanopb-generator            sslsplit                    travis
bash-completion@2          gitlab-gem                  libcbor                    nativefier                  suricata                    vice
calicoctl                  gitversion                  libfido2                    poppler                    tccutil                    wpscan
docbook                    glooctl                    libnet                      ripgrep                    tcptraceroute              wtfutil
dpkg                        golang-migrate              libnids                    root                        tflint                      zeek
==> Updated Casks
1password-cli                    fontforge                        lazarus                          qownnotes                        unity-android-support-for-editor
angry-ip-scanner                  fontgoggles                      lrtimelapse                      rectangle                        unity-download-assistant
anydo                            frhelper                          maccy                            refined-github-safari            unity-ios-support-for-editor
beaker-browser                    gifox                            macgamestore                      ripcord                          unity-lumin-support-for-editor
chromium                          glyphs                            metaz                            supercollider                    unity-webgl-support-for-editor
clashx                            hbuilderx                        meteorologist                    texworks                          unity-windows-support-for-editor
electron-fiddle                  icq                              mochi                            thonny                            webcatalog
engine-prime                      jami                              multitouch                        tinderbox
espresso                          jprofiler                        odrive                            trilium-notes
exodus                            kapitainsky-rclone-browser        pd-l2ork                          unity
==> Deleted Casks
google-nik-collection
 
==> Downloading https://homebrew.bintray.com/bottles/go-1.14.catalina.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/a4/a4e81b1025b77af039a34888545ce0f4a3a332b1ed6358ca8107e878d25e46aa?__gda__=exp=1584369109~hmac=e7bb7a5cce083ba4b6c323ef9
######################################################################## 100.0%
==> Pouring go-1.14.catalina.bottle.tar.gz
🍺  /usr/local/Cellar/go/1.14: 9,431 files, 424MB
ihoogendoor-a01:~ iwanhoogendoorn$
}}
 
Now that Go Lang is installed we can clone the new NSX-Tprovider code:
 
{{console|body=
ihoogendoor-a01:~ iwanhoogendoorn$ cd Coding/nestedlabs/Terraform/
 
ihoogendoor-a01:Terraform iwanhoogendoorn$ mkdir terratemp
 
ihoogendoor-a01:Terraform iwanhoogendoorn$ cd terratemp/
 
ihoogendoor-a01:terratemp iwanhoogendoorn$ pwd
/Users/iwanhoogendoorn/Coding/nestedlabs/Terraform/terratemp
 
ihoogendoor-a01:terratemp iwanhoogendoorn$ git clone https://github.com/terraform-providers/terraform-provider-nsxt.git
Cloning into ‘terraform-provider-nsxt’…
remote: Enumerating objects: 86, done.
remote: Counting objects: 100% (86/86), done.
remote: Compressing objects: 100% (51/51), done.
remote: Total 15107 (delta 46), reused 51 (delta 34), pack-reused 15021
Receiving objects: 100% (15107/15107), 16.23 MiB | 12.05 MiB/s, done.
Resolving deltas: 100% (8313/8313), done.
Checking out files: 100% (4088/4088), done.
}}
 
Now that the code is downloaded we need to compile it from source:
 
<div class="toccolours mw-collapsible mw-collapsed">
'''CLICK ON EXPAND ===> ON THE RIGHT ===> TO SEE THE OUTPUT (compile provider from source output) ===>''' :
<div class="mw-collapsible-content">{{console|body=
ihoogendoor-a01:terratemp iwanhoogendoorn$ ls -l
total 0
drwxr-xr-x  20 iwanhoogendoorn  staff  640 Mar 16 15:04 terraform-provider-nsxt
ihoogendoor-a01:terratemp iwanhoogendoorn$ cd terraform-provider-nsxt/
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ ls
CHANGELOG.md    GNUmakefile    NOTICE.txt    go.mod        main.go        scripts        vendor
CONTRIBUTING.md    LICENSE.txt    README.md    go.sum        nsxt        tools        website
 
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ go build
go: downloading github.com/hashicorp/terraform-plugin-sdk v1.1.0
go: downloading github.com/google/uuid v1.1.1
go: downloading github.com/vmware/go-vmware-nsxt v0.0.0-20191219213550-f4221331f638
go: downloading github.com/vmware/vsphere-automation-sdk-go/services/nsxt v0.2.0
go: downloading github.com/vmware/vsphere-automation-sdk-go/runtime v0.1.1
go: downloading github.com/vmware/vsphere-automation-sdk-go/lib v0.1.1
go: downloading github.com/hashicorp/go-multierror v1.0.0
go: downloading github.com/zclconf/go-cty v1.1.0
go: downloading github.com/beevik/etree v1.1.0
go: downloading github.com/hashicorp/go-hclog v0.9.2
go: downloading github.com/gorilla/mux v1.7.3
go: downloading golang.org/x/text v0.3.2
go: downloading github.com/mitchellh/mapstructure v1.1.2
go: downloading github.com/agext/levenshtein v1.2.2
go: downloading google.golang.org/grpc v1.23.0
go: downloading github.com/vmihailenco/msgpack v3.3.3+incompatible
go: downloading github.com/mitchellh/reflectwalk v1.0.1
go: downloading github.com/hashicorp/go-version v1.2.0
go: downloading github.com/spf13/afero v1.2.2
go: downloading github.com/hashicorp/hcl2 v0.0.0-20190821123243-0c888d1241f6
go: downloading github.com/hashicorp/logutils v1.0.0
go: downloading github.com/mitchellh/copystructure v1.0.0
go: downloading golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
go: downloading github.com/hashicorp/go-getter v1.4.0
go: downloading github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
go: downloading golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/apparentlymart/go-textseg v1.0.0
go: downloading github.com/hashicorp/go-plugin v1.0.1
go: downloading google.golang.org/api v0.9.0
go: downloading github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d
go: downloading github.com/aws/aws-sdk-go v1.19.39
go: downloading golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa
go: downloading github.com/mitchellh/go-wordwrap v1.0.0
go: downloading cloud.google.com/go v0.45.1
go: downloading github.com/google/go-cmp v0.3.0
go: downloading github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590
go: downloading github.com/hashicorp/errwrap v1.0.0
go: downloading github.com/mitchellh/cli v1.0.0
go: downloading github.com/gibson042/canonicaljson-go v1.0.3
go: downloading github.com/oklog/run v1.0.0
go: downloading github.com/armon/go-radix v1.0.0
go: downloading github.com/mitchellh/go-homedir v1.1.0
go: downloading github.com/ulikunitz/xz v0.5.5
go: downloading github.com/hashicorp/go-cleanhttp v0.5.1
go: downloading google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55
go: downloading github.com/hashicorp/go-uuid v1.0.1
go: downloading github.com/golang/protobuf v1.3.2
go: downloading github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d
go: downloading github.com/hashicorp/terraform-config-inspect v0.0.0-20190821133035-82a99dc22ef4
go: downloading github.com/posener/complete v1.2.1
go: downloading github.com/hashicorp/go-safetemp v1.0.0
go: downloading github.com/bgentry/speakeasy v0.1.0
go: downloading github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f
go: downloading github.com/mattn/go-isatty v0.0.4
go: downloading github.com/googleapis/gax-go/v2 v2.0.5
go: downloading github.com/zclconf/go-cty-yaml v1.0.1
go: downloading github.com/fatih/color v1.7.0
go: downloading github.com/mitchellh/go-testing-interface v1.0.0
go: downloading github.com/mattn/go-colorable v0.0.9
go: downloading go.opencensus.io v0.22.0
go: downloading github.com/apparentlymart/go-cidr v1.0.1
go: downloading github.com/hashicorp/golang-lru v0.5.1
go: downloading github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af
}}</div>
</div>
 
When we look in the directory we see the following file “terraform-provider-nsxt":
 
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ ls -l
total 88824
-rw-r--r--    1 iwanhoogendoorn  staff      8857 Mar 16 15:04 CHANGELOG.md
-rw-r—r—    1 iwanhoogendoorn  staff      2422 Mar 16 15:04 CONTRIBUTING.md
-rw-r—r—    1 iwanhoogendoorn  staff      1839 Mar 16 15:04 GNUmakefile
-rw-r—r—    1 iwanhoogendoorn  staff     15248 Mar 16 15:04 LICENSE.txt
-rw-r—r—    1 iwanhoogendoorn  staff       485 Mar 16 15:04 NOTICE.txt
-rw-r—r—    1 iwanhoogendoorn  staff      7322 Mar 16 15:04 README.md
-rw-r—r—    1 iwanhoogendoorn  staff       456 Mar 16 15:23 go.mod
-rw-r—r—    1 iwanhoogendoorn  staff     28565 Mar 16 15:04 go.sum
-rw-r—r—    1 iwanhoogendoorn  staff       427 Mar 16 15:04 main.go
drwxr-xr-x  248 iwanhoogendoorn  staff      7936 Mar 16 15:04 nsxt
drwxr-xr-x    6 iwanhoogendoorn  staff       192 Mar 16 15:04 scripts
-rwxr-xr-x    1 iwanhoogendoorn  staff  45391620 Mar 16 15:23 terraform-provider-nsxt <-- new file
drwxr-xr-x   10 iwanhoogendoorn  staff       320 Mar 16 15:04 tools
drwxr-xr-x    8 iwanhoogendoorn  staff       256 Mar 16 15:04 vendor
drwxr-xr-x    4 iwanhoogendoorn  staff       128 Mar 16 15:04 website
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$
}}
 
We need to copy this file in our working directory where our Terraform script is in that we want to execute for deployment.
 
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ cp terraform-provider-nsxt /Users/iwanhoogendoorn/Coding/nestedlabs/Terraform/Test/terraform-provider-nsxt
 
ihoogendoor-a01:Test iwanhoogendoorn$ cd /Users/iwanhoogendoorn/Coding/nestedlabs/Terraform/Test
}}
 
I needed to remove the cached provided, because I executed the "terraform init" before where it used the downloaded “default” NSX-T provider.
I want to use the”local” and “just compiled” provider so I need to remove the .terraform directory.
 
{{console|body=
ihoogendoor-a01:Test iwanhoogendoorn$ ls -lah
total 88664
drwxr-xr-x  5 iwanhoogendoorn  staff  160B Mar 16 15:36 .
drwxr-xr-x  15 iwanhoogendoorn  staff  480B Mar 16 15:43 ..
drwxr-xr-x  3 iwanhoogendoorn  staff    96B Mar 14 22:59 .terraform
-rw-r—r—  1 iwanhoogendoorn  staff  838B Mar 16 15:28 networks.tf
-rwxr-xr-x  1 iwanhoogendoorn  staff    43M Mar 16 15:26 terraform-provider-nsxt
ihoogendoor-a01:Test iwanhoogendoorn$ rm -R .terraform/
}}
 
Now lets run the “init” command:
 
{{console|body=
ihoogendoor-a01:#Test iwanhoogendoorn$ tfenv use 0.12.24
[INFO] Switching to v0.12.24
[INFO] Switching completed
ihoogendoor-a01:Test iwanhoogendoorn$ terraform init
 
Initializing the backend...
 
Initializing provider plugins…
 
Terraform has been successfully initialized!
}}
 
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
 
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialise your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
 
And when we check the version we see the “unversioned” remark, and this tells us we are using our NSX-T provider we have just compiled.
 
{{console|body=
ihoogendoor-a01:#Test iwanhoogendoorn$ tfenv use 0.12.24
[INFO] Switching to v0.12.24
[INFO] Switching completed
ihoogendoor-a01:Test iwanhoogendoorn$ terraform version
Terraform v0.12.24
+ provider.nsxt (unversioned)
}}
 
So we are ready to use the “newest" version of the NSX-T provider that is required to deploy our NSX-T segments.
 
Validate your code:
{{console|body=
ihoogendoor-a01:Test iwanhoogendoorn$ terraform validate
}}
 
Plan your code:
{{console|body=
ihoogendoor-a01:Test iwanhoogendoorn$ terraform plan
}}
 
Execute your code to implement the Segments:
{{console|body=
ihoogendoor-a01:Test iwanhoogendoorn$ terraform apply
}}
 
When the segments need to be removed again you can revert the implementation:
{{console|body=
ihoogendoor-a01:Test iwanhoogendoorn$ terraform destroy
}}
 
The terraform provider is currently under development.
If you download and compile the latest version (that is still under development) it can be that old functionality that was working first, is now broken.
To go back to a specific version with specific commits you can do this by following the below procedure (Thank you Rutger Blom for this):
 
Browse to a new fresh directory:
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ cd terraform-provider-nsxt-v0/
}}
 
The directory is really empty:
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt-v0 iwanhoogendoorn$ ls
}}
 
Clone the full repository:
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt-v0 iwanhoogendoorn$ git clone https://github.com/terraform-providers/terraform-provider-nsxt.git
Cloning into 'terraform-provider-nsxt'...
remote: Enumerating objects: 142, done.
remote: Counting objects: 100% (142/142), done.
remote: Compressing objects: 100% (87/87), done.
remote: Total 15163 (delta 84), reused 78 (delta 54), pack-reused 15021
Receiving objects: 100% (15163/15163), 16.25 MiB  8.33 MiB/s, done.
Resolving deltas: 100% (8351/8351), done.
Checking out files: 100% (4088/4088), done.
}}
 
Now lets browse into the directory:
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt-v0 iwanhoogendoorn$ ls
terraform-provider-nsxt
ihoogendoor-a01:terraform-provider-nsxt-v0 iwanhoogendoorn$ cd terraform-provider-nsxt
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ ls
CHANGELOG.md GNUmakefile NOTICE.txt go.mod main.go scripts vendor
CONTRIBUTING.md LICENSE.txt README.md go.sum nsxt tools website
}}
 
Fetch a specific version + commits:
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ git fetch origin c01d221ceb98e114aadd84126707633d25fcb43b
From https://github.com/terraform-providers/terraform-provider-nsxt
* branch            c01d221ceb98e114aadd84126707633d25fcb43b ->
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ git reset --hard
is now at c01d221 Policy block subnet - wait for delete realization
}}
 
Compile the specific version :
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ go build
go: downloading github.com/vmware/vsphere-automation-sdk-go/services/nsxt v0.1.1
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$
}}
 
'Copy the new provider to the repository directory of your NSX-T Terraform code:
{{console|body=
ihoogendoor-a01:terraform-provider-nsxt iwanhoogendoorn$ cp terraform-provider-nsxt /Users/iwanhoogendoorn/Coding/nestedlabs/Terraform/#create-T1
}}
 
 
== Sources ==
* [https://ahmadawais.com/install-go-lang-on-macos-with-homebrew/ Source 1]
* [https://rutgerblom.com/2020/02/09/terraform-support-for-nsx-t-policy-api/ Source 2]
* [https://www.terraform.io/docs/providers/nsxt/r/logical_switch.html Source 3]
* [http://www.cloudxtreme.info/configuring-nsx-t-fabric-using-terraform/ Source 4]
* [https://github.com/rahulkj/nsxt-terraforming Source 5]
* [https://upcloud.com/community/tutorials/automate-terraform-deployments/ Source 6]
 
[[Category:Articles]]
[[Category:VMware]]
[[Category:NSX-T]]
[[Category:Networking]]
[[Category:Terraform]]

Latest revision as of 14:14, 12 January 2024

Summary

Uplaoding files from nsx.ninja and iwan.wiki