Skip to main content

terraformvspherevm

This tool create and delete machine with terraform on vSphere infrastructure.

System Requirements

  • python3
  • terraform

Installation

pip install terraformvspherevm

Develop

Usage

Command line

Usage

$ terraformvspherevm --help
usage: terraformvspherevm [-h] --action {create,destroy} --datacenter DATACENTER    
                    --datastore DATASTORE --pool POOL --folder FOLDER
                    --template TEMPLATE --guestid GUESTID --name NAME
                    [--nic NIC] [--ip IP] [--cidr CIDR] [--gateway GATEWAY]   
                    --cpu CPU --ram RAM [--disk DISK] [--dns DNS] --esxhost
                    ESXHOST --esxuser ESXUSER --esxpassvar ESXPASSVAR --domain
                    DOMAIN --timezone TIMEZONE [-debug]

Manage vSphere Virtual Machines

optional arguments:
  -h, --help            show this help message and exit
  --action {create,destroy}
                        Action to Execute against vSphere
  --datacenter DATACENTER
                        ESXi Datacenter
  --datastore DATASTORE
                        ESXi Datastore
  --pool POOL           ESXi Resource Pool
  --folder FOLDER       ESXi VM Folder
  --template TEMPLATE   Template Name
  --guestid GUESTID     Guest ID
  --name NAME           Virtual Machine Name
  --nic NIC             Network Interface. Repeat option for several NICs
  --ip IP               NIC IP address. Repeat option for several NICs
  --cidr CIDR           NIC CIDR. Repeat option for several NICs
  --gateway GATEWAY     Default gateway
  --cpu CPU             CPUs
  --ram RAM             Memory
  --disk DISK           Additionnal disk in GB. Repeat option for several
                        disks
  --dns DNS             DNS server
  --esxhost ESXHOST     ESXi host
  --esxuser ESXUSER     ESXi Username
  --esxpassvar ESXPASSVAR
                        Environment variable that contain ESXi password
  --domain DOMAIN       DNS domain
  --timezone TIMEZONE   TimeZone
  -debug                Verbose Output

When you want to destroy a VM, tfstate file is not required

Examples

Create a VM

terraformvspherevm --name terrascript-test --datacenter "DC" --datastore "MyDatastore" \
--pool "ressource_pool" --template "rhel-7.5-vmw6.0" --guestid "rhel7_64Guest" --nic DvP_Nmae \
--ip 10.0.123.123 --cidr 24 --gateway 10.0.123.1 --cpu 1 --ram 1024 --disk 10 --dns 10.0.123.50 \
--dns 10.0.123.100 --esxhost esxhost.domain.com --esxuser "esxusername" --folder "terraformed" \
--domain my.domaon --timezone "Etc/UTC" --esxpassvar ESXPASS --action create

Destroy a VM

terraformvspherevm --name terrascript-test --datacenter "DC" --datastore "MyDatastore" \
--pool "ressource_pool" --template "rhel-7.5-vmw6.0" --guestid "rhel7_64Guest" --cpu 1 \
--ram 1024 --esxhost esxhost.domain.com --esxuser "esxusername" --folder "terraformed" \
--esxpassvar ESXPASS --action destroy

In Python Code

from  terraformvspherevm import TerraformVM

vmProperties = {'name': 'myVM', ...}

tvm = TerraformVM()
tvm.addVirtualMachine(vmProperties)
tvm.createVM('myVM')
tvm.destroyVM('myVM')

Development

Virtualenv and dependencies

python -m venv venv
source ./venv/bin/activate
python -m pip install -r requirements.txt

Run command

$ python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import terraformvm
>>> terraformvm.main(['--help'])

Build

python setup.py sdist bdist_wheel

Upload PyPi

twine upload dist/*

TODOLIST

  • Code documentation
  • arguments validation
  • Error management

Release files for terraformvspherevm 0.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for terraformvspherevm 0.0.13
File Size Uploaded
terraformvspherevm-0.0.13.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for terraformvspherevm 0.0.13
File Interpreter ABI Platform
terraformvspherevm-0.0.13-py3-none-any.whl Python 3 none any Details

Total release size: 16.5 kB

Release files / terraformvspherevm-0.0.13.tar.gz

Download URL terraformvspherevm-0.0.13.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
70d128be36dccb3d932efcc6d4a706efb753b3dba49a054baa744aa6f7ba42ad
BLAKE2b-256 checksum
How to use checksums
6927f35562daa8a06e9faa1c39eb1c0d19d3de74691edeee7c89ca1e63e7b79c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6

Release files / terraformvspherevm-0.0.13-py3-none-any.whl

Download URL terraformvspherevm-0.0.13-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
041758feafa133d723016b5770d31cee8c4ec00d5ff1047936f402a1b3ab1f36
BLAKE2b-256 checksum
How to use checksums
b003cbe2bc89ebd018a7ec6bd9ac265b784d41720e18f6fc174a256d17d8212b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6

Release history Release notifications | RSS feed

This release

0.0.13 This release

2 release files

0.0.12

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page