64 lines
No EOL
2.3 KiB
Markdown
64 lines
No EOL
2.3 KiB
Markdown
## 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
|
||
[![Build Status](https://travis-ci.org/beelit94/python-terraform.svg?branch=develop)](https://travis-ci.org/beelit94/python-terraform)
|
||
|
||
## Installation
|
||
pip install git+https://github.com/beelit94/python-terraform.git@develop
|
||
|
||
## 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)
|
||
|
||
|
||
|
||
|