bd1d08af71
2. update README to adapt change 3. use IsFlagged class for flag option 4. add destroy method
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)
|
||
|
||
|
||
|
||
|