Create VSphere resources using terraform
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file terraformvspherevm-0.0.13.tar.gz
.
File metadata
- Download URL: terraformvspherevm-0.0.13.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
70d128be36dccb3d932efcc6d4a706efb753b3dba49a054baa744aa6f7ba42ad
|
|
MD5 |
774f1ca4a4bedb0373db99e8ac9745bc
|
|
BLAKE2b-256 |
6927f35562daa8a06e9faa1c39eb1c0d19d3de74691edeee7c89ca1e63e7b79c
|
File details
Details for the file terraformvspherevm-0.0.13-py3-none-any.whl
.
File metadata
- Download URL: terraformvspherevm-0.0.13-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
041758feafa133d723016b5770d31cee8c4ec00d5ff1047936f402a1b3ab1f36
|
|
MD5 |
536516f09c786a49e35b79e2b8900b26
|
|
BLAKE2b-256 |
b003cbe2bc89ebd018a7ec6bd9ac265b784d41720e18f6fc174a256d17d8212b
|