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
Close
Hashes for terraformvspherevm-0.0.13.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70d128be36dccb3d932efcc6d4a706efb753b3dba49a054baa744aa6f7ba42ad |
|
MD5 | 774f1ca4a4bedb0373db99e8ac9745bc |
|
BLAKE2b-256 | 6927f35562daa8a06e9faa1c39eb1c0d19d3de74691edeee7c89ca1e63e7b79c |
Close
Hashes for terraformvspherevm-0.0.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 041758feafa133d723016b5770d31cee8c4ec00d5ff1047936f402a1b3ab1f36 |
|
MD5 | 536516f09c786a49e35b79e2b8900b26 |
|
BLAKE2b-256 | b003cbe2bc89ebd018a7ec6bd9ac265b784d41720e18f6fc174a256d17d8212b |