Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cloud-computing-msc-ai-examples
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Sebastian Rieger
cloud-computing-msc-ai-examples
Commits
f8751eb3
Commit
f8751eb3
authored
6 years ago
by
Sebastian Rieger
Browse files
Options
Downloads
Patches
Plain Diff
moved start of worker-3, changed var names to reflect their usage
parent
e3cb9ba1
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
demo4-scale-out-add-worker.py
+96
-0
96 additions, 0 deletions
demo4-scale-out-add-worker.py
demo4-scale-out-destroy.py
+3
-1
3 additions, 1 deletion
demo4-scale-out-destroy.py
demo4-scale-out.py
+21
-18
21 additions, 18 deletions
demo4-scale-out.py
with
120 additions
and
19 deletions
demo4-scale-out-add-worker.py
0 → 100644
+
96
−
0
View file @
f8751eb3
# import getpass
# import os
# import libcloud.security
import
time
from
libcloud.compute.providers
import
get_driver
from
libcloud.compute.types
import
Provider
# reqs:
# services: nova, glance, neutron
# resources: 2 instances (m1.small), 2 floating ips (1 keypair, 2 security groups)
# Please use 1-25 for X in username, project etc., as coordinated in the lab sessions
# web service endpoint of the private cloud infrastructure
auth_url
=
'
https://private-cloud2.informatik.hs-fulda.de:5000
'
# your username in OpenStack
auth_username
=
'
CloudCompX
'
# your project in OpenStack
project_name
=
'
CloudCompGrpX
'
# default region
region_name
=
'
RegionOne
'
# domain to use, "default" for local accounts, "hsfulda" for LDAP of DVZ, e.g., using fdaiXXXX as auth_username
domain_name
=
"
default
"
ubuntu_image_name
=
"
Ubuntu 14.04 - Trusty Tahr - 64-bit - Cloud Based Image
"
#ubuntu_image_name = "Ubuntu 18.04 - Bionic Beaver - 64-bit - Cloud Based Image"
flavor_name
=
'
m1.small
'
network_name
=
"
CloudCompGrpX-net
"
keypair_name
=
'
srieger-pub
'
pub_key_file
=
'
~/.ssh/id_rsa.pub
'
api_1_ip
=
"
192.168.0.x
"
services_ip
=
"
192.168.0.y
"
def
main
():
###########################################################################
#
# get credentials
#
###########################################################################
# if "OS_PASSWORD" in os.environ:
# auth_password = os.environ["OS_PASSWORD"]
# else:
# auth_password = getpass.getpass("Enter your OpenStack password:")
auth_password
=
"
demo
"
###########################################################################
#
# create connection
#
###########################################################################
# libcloud.security.VERIFY_SSL_CERT = False
provider
=
get_driver
(
Provider
.
OPENSTACK
)
conn
=
provider
(
auth_username
,
auth_password
,
ex_force_auth_url
=
auth_url
,
ex_force_auth_version
=
'
3.x_password
'
,
ex_tenant_name
=
project_name
,
ex_force_service_region
=
region_name
,
ex_domain_name
=
domain_name
)
###########################################################################
#
# create worker instances
#
###########################################################################
userdata_worker
=
'''
#!/usr/bin/env bash
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s --
\
-i faafo -r worker -e
'
http://%(api_1_ip)s
'
-m
'
amqp://guest:guest@%(services_ip)s:5672/
'
'''
%
{
'
api_1_ip
'
:
api_1_ip
,
'
services_ip
'
:
services_ip
}
# userdata-api-2 = '''#!/usr/bin/env bash
# curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s -- \
# -i faafo -r worker -e 'http://%(api_2_ip)s' -m 'amqp://guest:guest@%(services_ip)s:5672/'
# ''' % {'api_2_ip': api_2_ip, 'services_ip': services_ip}
print
(
'
Starting new app-worker-3 instance and wait until it is running...
'
)
instance_worker_3
=
conn
.
create_node
(
name
=
'
app-worker-3
'
,
image
=
image
,
size
=
flavor
,
networks
=
[
network
],
ex_keyname
=
keypair_name
,
ex_userdata
=
userdata_worker
,
ex_security_groups
=
[
worker_security_group
])
if
__name__
==
'
__main__
'
:
main
()
This diff is collapsed.
Click to expand it.
demo4-scale-out-destroy.py
+
3
−
1
View file @
f8751eb3
...
@@ -25,6 +25,7 @@ region_name = 'RegionOne'
...
@@ -25,6 +25,7 @@ region_name = 'RegionOne'
domain_name
=
"
default
"
domain_name
=
"
default
"
ubuntu_image_name
=
"
Ubuntu 14.04 - Trusty Tahr - 64-bit - Cloud Based Image
"
ubuntu_image_name
=
"
Ubuntu 14.04 - Trusty Tahr - 64-bit - Cloud Based Image
"
#ubuntu_image_name = "Ubuntu 18.04 - Bionic Beaver - 64-bit - Cloud Based Image"
flavor_name
=
'
m1.small
'
flavor_name
=
'
m1.small
'
...
@@ -85,7 +86,8 @@ def main():
...
@@ -85,7 +86,8 @@ def main():
instances
=
conn
.
list_nodes
()
instances
=
conn
.
list_nodes
()
for
instance
in
instances
:
for
instance
in
instances
:
# if we see any demo instances still running continue to wait for them to stop
# if we see any demo instances still running continue to wait for them to stop
if
instance
.
name
in
[
'
all-in-one
'
,
'
app-worker-1
'
,
'
app-worker-2
'
,
'
app-controller
'
]:
if
instance
.
name
in
[
'
all-in-one
'
,
'
app-worker-1
'
,
'
app-worker-2
'
,
'
app-worker-3
'
,
'
app-controller
'
,
'
app-services
'
,
'
app-api-1
'
,
'
app-api-2
'
]:
nodes_still_running
=
True
nodes_still_running
=
True
print
(
'
There are still instances running, waiting for them to be destroyed...
'
)
print
(
'
There are still instances running, waiting for them to be destroyed...
'
)
...
...
This diff is collapsed.
Click to expand it.
demo4-scale-out.py
+
21
−
18
View file @
f8751eb3
...
@@ -25,6 +25,7 @@ region_name = 'RegionOne'
...
@@ -25,6 +25,7 @@ region_name = 'RegionOne'
domain_name
=
"
default
"
domain_name
=
"
default
"
ubuntu_image_name
=
"
Ubuntu 14.04 - Trusty Tahr - 64-bit - Cloud Based Image
"
ubuntu_image_name
=
"
Ubuntu 14.04 - Trusty Tahr - 64-bit - Cloud Based Image
"
#ubuntu_image_name = "Ubuntu 18.04 - Bionic Beaver - 64-bit - Cloud Based Image"
flavor_name
=
'
m1.small
'
flavor_name
=
'
m1.small
'
...
@@ -220,7 +221,7 @@ def main():
...
@@ -220,7 +221,7 @@ def main():
#
#
# Thanks to Stefan Friedmann for finding this fix ;)
# Thanks to Stefan Friedmann for finding this fix ;)
userdata
=
'''
#!/usr/bin/env bash
userdata
_service
=
'''
#!/usr/bin/env bash
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s --
\
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s --
\
-i database -i messaging
-i database -i messaging
rabbitmqctl add_user faafo guest
rabbitmqctl add_user faafo guest
...
@@ -234,7 +235,7 @@ def main():
...
@@ -234,7 +235,7 @@ def main():
size
=
flavor
,
size
=
flavor
,
networks
=
[
network
],
networks
=
[
network
],
ex_keyname
=
keypair_name
,
ex_keyname
=
keypair_name
,
ex_userdata
=
userdata
,
ex_userdata
=
userdata
_service
,
ex_security_groups
=
[
services_security_group
])
ex_security_groups
=
[
services_security_group
])
instance_services
=
conn
.
wait_until_running
(
nodes
=
[
instance_services
],
timeout
=
120
,
instance_services
=
conn
.
wait_until_running
(
nodes
=
[
instance_services
],
timeout
=
120
,
ssh_interface
=
'
private_ips
'
)[
0
][
0
]
ssh_interface
=
'
private_ips
'
)[
0
][
0
]
...
@@ -246,7 +247,7 @@ def main():
...
@@ -246,7 +247,7 @@ def main():
#
#
###########################################################################
###########################################################################
userdata
=
'''
#!/usr/bin/env bash
userdata
_api
=
'''
#!/usr/bin/env bash
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s --
\
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s --
\
-i faafo -r api -m
'
amqp://guest:guest@%(services_ip)s:5672/
'
\
-i faafo -r api -m
'
amqp://guest:guest@%(services_ip)s:5672/
'
\
-d
'
mysql+pymysql://faafo:password@%(services_ip)s:3306/faafo
'
-d
'
mysql+pymysql://faafo:password@%(services_ip)s:3306/faafo
'
...
@@ -258,7 +259,7 @@ def main():
...
@@ -258,7 +259,7 @@ def main():
size
=
flavor
,
size
=
flavor
,
networks
=
[
network
],
networks
=
[
network
],
ex_keyname
=
keypair_name
,
ex_keyname
=
keypair_name
,
ex_userdata
=
userdata
,
ex_userdata
=
userdata
_api
,
ex_security_groups
=
[
api_security_group
])
ex_security_groups
=
[
api_security_group
])
print
(
'
Starting new app-api-2 instance and wait until it is running...
'
)
print
(
'
Starting new app-api-2 instance and wait until it is running...
'
)
...
@@ -267,7 +268,7 @@ def main():
...
@@ -267,7 +268,7 @@ def main():
size
=
flavor
,
size
=
flavor
,
networks
=
[
network
],
networks
=
[
network
],
ex_keyname
=
keypair_name
,
ex_keyname
=
keypair_name
,
ex_userdata
=
userdata
,
ex_userdata
=
userdata
_api
,
ex_security_groups
=
[
api_security_group
])
ex_security_groups
=
[
api_security_group
])
instance_api_1
=
conn
.
wait_until_running
(
nodes
=
[
instance_api_1
],
timeout
=
120
,
instance_api_1
=
conn
.
wait_until_running
(
nodes
=
[
instance_api_1
],
timeout
=
120
,
...
@@ -288,12 +289,12 @@ def main():
...
@@ -288,12 +289,12 @@ def main():
#
#
###########################################################################
###########################################################################
userdata_
api_1
=
'''
#!/usr/bin/env bash
userdata_
worker
=
'''
#!/usr/bin/env bash
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s --
\
curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s --
\
-i faafo -r worker -e
'
http://%(api_1_ip)s
'
-m
'
amqp://guest:guest@%(services_ip)s:5672/
'
-i faafo -r worker -e
'
http://%(api_1_ip)s
'
-m
'
amqp://guest:guest@%(services_ip)s:5672/
'
'''
%
{
'
api_1_ip
'
:
api_1_ip
,
'
services_ip
'
:
services_ip
}
'''
%
{
'
api_1_ip
'
:
api_1_ip
,
'
services_ip
'
:
services_ip
}
# userdata-api-2 = '''#!/usr/bin/env bash
# userdata
_api
-api-2 = '''#!/usr/bin/env bash
# curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s -- \
# curl -L -s https://git.openstack.org/cgit/openstack/faafo/plain/contrib/install.sh | bash -s -- \
# -i faafo -r worker -e 'http://%(api_2_ip)s' -m 'amqp://guest:guest@%(services_ip)s:5672/'
# -i faafo -r worker -e 'http://%(api_2_ip)s' -m 'amqp://guest:guest@%(services_ip)s:5672/'
# ''' % {'api_2_ip': api_2_ip, 'services_ip': services_ip}
# ''' % {'api_2_ip': api_2_ip, 'services_ip': services_ip}
...
@@ -303,28 +304,30 @@ def main():
...
@@ -303,28 +304,30 @@ def main():
image
=
image
,
size
=
flavor
,
image
=
image
,
size
=
flavor
,
networks
=
[
network
],
networks
=
[
network
],
ex_keyname
=
keypair_name
,
ex_keyname
=
keypair_name
,
ex_userdata
=
userdata_
api_1
,
ex_userdata
=
userdata_
worker
,
ex_security_groups
=
[
worker_security_group
])
ex_security_groups
=
[
worker_security_group
])
print
(
'
Starting new app-worker-
1
instance and wait until it is running...
'
)
print
(
'
Starting new app-worker-
2
instance and wait until it is running...
'
)
instance_worker_2
=
conn
.
create_node
(
name
=
'
app-worker-2
'
,
instance_worker_2
=
conn
.
create_node
(
name
=
'
app-worker-2
'
,
image
=
image
,
size
=
flavor
,
image
=
image
,
size
=
flavor
,
networks
=
[
network
],
networks
=
[
network
],
ex_keyname
=
keypair_name
,
ex_keyname
=
keypair_name
,
ex_userdata
=
userdata_
api_1
,
ex_userdata
=
userdata_
worker
,
ex_security_groups
=
[
worker_security_group
])
ex_security_groups
=
[
worker_security_group
])
print
(
'
Starting new app-worker-1 instance and wait until it is running...
'
)
# do not start worker 3 initially, can be started using scale-out-add-worker.py demo
instance_worker_3
=
conn
.
create_node
(
name
=
'
app-worker-3
'
,
image
=
image
,
size
=
flavor
,
#print('Starting new app-worker-3 instance and wait until it is running...')
networks
=
[
network
],
#instance_worker_3 = conn.create_node(name='app-worker-3',
ex_keyname
=
keypair_name
,
# image=image, size=flavor,
ex_userdata
=
userdata_api_1
,
# networks=[network],
ex_security_groups
=
[
worker_security_group
])
# ex_keyname=keypair_name,
# ex_userdata=userdata_worker,
# ex_security_groups=[worker_security_group])
print
(
instance_worker_1
)
print
(
instance_worker_1
)
print
(
instance_worker_2
)
print
(
instance_worker_2
)
print
(
instance_worker_3
)
#
print(instance_worker_3)
if
__name__
==
'
__main__
'
:
if
__name__
==
'
__main__
'
:
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment