7dbdd966fb
The python-openstacksdk repository also moved from stackforge to openstack namespace. Change-Id: I62fc8fd975eec8588d7be60f5527932d33dd8e75
134 lines
4.8 KiB
Python
134 lines
4.8 KiB
Python
# step-1
|
|
userdata = '''#!/usr/bin/env bash
|
|
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s -- \
|
|
-i faafo -i messaging -r api -r worker -r demo
|
|
'''
|
|
|
|
instance_name = 'all-in-one'
|
|
testing_instance = conn.create_node(name=instance_name,
|
|
image=image,
|
|
size=flavor,
|
|
ex_keyname=keypair_name,
|
|
ex_userdata=userdata,
|
|
ex_security_groups=[all_in_one_security_group])
|
|
|
|
# step-2
|
|
userdata = '''#!/usr/bin/env bash
|
|
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s -- \
|
|
-i messaging -i faafo -r api -r worker -r demo
|
|
'''
|
|
|
|
# step-3
|
|
all_in_one_security_group = conn.ex_create_security_group('all-in-one', 'network access for all-in-one application.')
|
|
conn.ex_create_security_group_rule(all_in_one_security_group, 'TCP', 80, 80)
|
|
conn.ex_create_security_group_rule(all_in_one_security_group, 'TCP', 22, 22)
|
|
|
|
# step-4
|
|
conn.ex_list_security_groups()
|
|
|
|
# step-5
|
|
conn.ex_delete_security_group_rule(rule)
|
|
conn.ex_delete_security_group(security_group)
|
|
|
|
# step-6
|
|
conn.ex_get_node_security_groups(testing_instance)
|
|
|
|
# step-7
|
|
unused_floating_ip = None
|
|
for floating_ip in conn.ex_list_floating_ips():
|
|
if not floating_ip.node_id:
|
|
unused_floating_ip = floating_ip
|
|
print("Found an unused Floating IP: %s" % floating_ip)
|
|
break
|
|
|
|
# step-8
|
|
pool = conn.ex_list_floating_ip_pools()[0]
|
|
|
|
# step-9
|
|
unused_floating_ip = pool.create_floating_ip()
|
|
|
|
# step-10
|
|
conn.ex_attach_floating_ip_to_node(instance, unused_floating_ip)
|
|
|
|
# step-11
|
|
worker_group = conn.ex_create_security_group('worker', 'for services that run on a worker node')
|
|
conn.ex_create_security_group_rule(worker_group, 'TCP', 22, 22)
|
|
|
|
controller_group = conn.ex_create_security_group('control', 'for services that run on a control node')
|
|
conn.ex_create_security_group_rule(controller_group, 'TCP', 22, 22)
|
|
conn.ex_create_security_group_rule(controller_group, 'TCP', 80, 80)
|
|
conn.ex_create_security_group_rule(controller_group, 'TCP', 5672, 5672, source_security_group=worker_group)
|
|
|
|
userdata = '''#!/usr/bin/env bash
|
|
curl -L -s http://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s -- \
|
|
-i messaging -i faafo -r api
|
|
'''
|
|
|
|
instance_controller_1 = conn.create_node(name='app-controller',
|
|
image=image,
|
|
size=flavor,
|
|
ex_keyname='demokey',
|
|
ex_userdata=userdata,
|
|
ex_security_groups=[controller_group])
|
|
|
|
conn.wait_until_running([instance_controller_1])
|
|
print('Checking for unused Floating IP...')
|
|
unused_floating_ip = None
|
|
for floating_ip in conn.ex_list_floating_ips():
|
|
if not floating_ip.node_id:
|
|
unused_floating_ip = floating_ip
|
|
break
|
|
|
|
|
|
if not unused_floating_ip:
|
|
pool = conn.ex_list_floating_ip_pools()[0]
|
|
print('Allocating new Floating IP from pool: {}'.format(pool))
|
|
unused_floating_ip = pool.create_floating_ip()
|
|
|
|
|
|
conn.ex_attach_floating_ip_to_node(instance_controller_1, unused_floating_ip)
|
|
print('Application will be deployed to http://%s' % unused_floating_ip.ip_address)
|
|
|
|
# step-12
|
|
instance_controller_1 = conn.ex_get_node_details(instance_controller_1.id)
|
|
if instance_controller_1.public_ips:
|
|
ip_controller = instance_controller_1.private_ips[0]
|
|
else:
|
|
ip_controller = instance_controller_1.public_ips[0]
|
|
|
|
userdata = '''#!/usr/bin/env bash
|
|
curl -L -s http://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s -- \
|
|
-i faafo -r worker -e 'http://%(ip_controller)s' -m 'amqp://guest:guest@%(ip_controller)s:5672/'
|
|
''' % {'ip_controller': ip_controller}
|
|
instance_worker_1 = conn.create_node(name='app-worker-1',
|
|
image=image,
|
|
size=flavor,
|
|
ex_keyname='demokey',
|
|
ex_userdata=userdata,
|
|
ex_security_groups=[worker_group])
|
|
|
|
conn.wait_until_running([instance_worker_1])
|
|
print('Checking for unused Floating IP...')
|
|
unused_floating_ip = None
|
|
for floating_ip in conn.ex_list_floating_ips():
|
|
if not floating_ip.node_id:
|
|
unused_floating_ip = floating_ip
|
|
break
|
|
|
|
|
|
if not unused_floating_ip:
|
|
pool = conn.ex_list_floating_ip_pools()[0]
|
|
print('Allocating new Floating IP from pool: {}'.format(pool))
|
|
unused_floating_ip = pool.create_floating_ip()
|
|
|
|
|
|
conn.ex_attach_floating_ip_to_node(instance_worker_1, unused_floating_ip)
|
|
print('The worker will be available for SSH at %s' % unused_floating_ip.ip_address)
|
|
|
|
|
|
# step-13
|
|
ip_instance_worker_1 = instance_worker_1.private_ips[0]
|
|
print(ip_instance_worker_1)
|
|
|
|
# step-14
|