No description
a4b16b2791
2.fix for python2 |
||
---|---|---|
python_terraform | ||
test | ||
.gitignore | ||
.travis.yml | ||
DESCRIPTION.rst | ||
LICENSE.txt | ||
MANIFEST.in | ||
README.md | ||
release.py | ||
setup.cfg | ||
setup.py | ||
VERSION |
Introduction
python-terraform is a python module provide a wrapper of terraform
command line tool.
terraform
is a tool made by Hashicorp, please refer to https://terraform.io/
Status
Installation
pip install python-terraform
Usage
For any terraform command
def cmd(self, cmd, *args, **kwargs):
"""
run a terraform command, if success, will try to read state file
:param cmd: command and sub-command of terraform, seperated with space
refer to https://www.terraform.io/docs/commands/index.html
:param args: arguments of a command
:param kwargs: any option flag with key value without prefixed dash character
if there's a dash in the option name, use under line instead of dash,
ex. -no-color --> no_color
if it's a simple flag with no value, value should be IsFlagged
ex. cmd('taint', allow_missing=IsFlagged)
if it's a boolean value flag, assign True or false
if it's a flag could be used multiple times, assign list to it's value
if it's a "var" variable flag, assign dictionary to it
if a value is None, will skip this option
:return: ret_code, out, err
For apply/destroy method, the flag options, like, -no-color
or -force
have been implemented as boolean argument. simply use is_no_color=True/False
for
apply/destroy method
Examples
Have a test.tf file under folder "/home/test"
apply with variables a=b, c=d, refresh=False, no color in the output
In shell:
cd /home/test
terraform apply -var='a=b' -var='c=d' -refresh=false -no-color
In python-terraform:
from python_terraform import Terraform
tf = terraform(working_dir='/home/test')
tf.apply(is_no_color=True, refresh=False, var={'a':'b', 'c':'d'})
taint command, allow-missing and no color
In shell:
cd /home/test
terraform taint -allow-missing -no-color
In python-terraform:
from python_terraform import Terraform
tf = terraform(working_dir='/home/test')
tf.cmd('taint', allow_missing=IsFlagged, no_color=IsFlagged)