AVI: Difference between revisions
Content added Content deleted
Line 181: | Line 181: | ||
ansible-playbook -v avi-deploy.yml --step |
ansible-playbook -v avi-deploy.yml --step |
||
= Using AVI SDK = |
|||
<syntaxhighlight lang="python"> |
|||
import argparse |
|||
from avi.sdk.avi_api import ApiSession |
|||
from requests import urllib3 |
|||
urllib3.disable_warnings() |
|||
parser = argparse.ArgumentParser(description="AVISDK based Script to attach a Datascript to all the VS(s)") |
|||
parser.add_argument("-u", "--username", required=True, help="Login username") |
|||
parser.add_argument("-p", "--password", required=True, help="Login password") |
|||
parser.add_argument("-c", "--controller", required=True, help="Controller IP address") |
|||
parser.add_argument("-t", "--tenant", required=True, help="Tenant Name") |
|||
parser.add_argument("-vs", "--virtualservice", required=True, help="Controller IP address") |
|||
parser.add_argument("-v", "--vip", required=True, help="Controller IP address") |
|||
parser.add_argument("-po", "--pool", required=True, help="Controller IP address") |
|||
args = parser.parse_args() |
|||
user = args.username |
|||
password = args.password |
|||
controller = args.controller |
|||
tenant = args.tenant |
|||
pool = args.pool |
|||
vs = args.virtualservice |
|||
vip = args.vip |
|||
#Get Api Session |
|||
api = ApiSession.get_session(controller,user,password,tenant=tenant, api_version="17.2.7") |
|||
pool_Already = False |
|||
resp = api.get_object_by_name('pool', pool) |
|||
if resp == None: |
|||
#Create Pool_obj to pass in POST request |
|||
pool_obj = {'name': pool, 'servers': [ { 'ip' : { 'addr': '10.91.1.53', 'type': 'V4' }}]} |
|||
#Post Pool_OBJ |
|||
resp = api.post('pool', data=pool_obj) |
|||
print resp.json() |
|||
#Getting the Refernce for the Pool |
|||
pool_obj = api.get_object_by_name('pool', pool) |
|||
pool_ref = api.get_obj_ref(pool_obj) |
|||
#Creating SERVICE_OBJ |
|||
services_obj = [{'port': 80, 'enable_ssl': False}] |
|||
#Creating VS OBJ |
|||
vs_obj = {'name': vs, 'vip' : [ {'ip_address': {'addr': vip, 'type': 'V4'}}], 'services': services_obj, 'pool_ref': pool_ref} |
|||
#POsting VS OBJ |
|||
resp = api.post('virtualservice', data=vs_obj) |
|||
print resp.json() |
|||
</syntaxhighlight> |
|||
<br /> |
<br /> |