AVI: Difference between revisions

1,883 bytes added ,  6 years ago
Line 181:
 
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 />