Skip to content
Snippets Groups Projects
Commit 3a52b43b authored by jeremy.martinot's avatar jeremy.martinot :speech_balloon:
Browse files

Deploy adds + key pair

parent 88a8661e
Branches
No related tags found
No related merge requests found
......@@ -3,15 +3,30 @@ from pexpect import pxssh
from time import sleep
import re
EXOSCALE_API_KEY = 'EXO7945e92f25a038a400b488aa'
EXOSCALE_API_SECRET = 'smRDVh7H0QO3w9068WlSq_JqBuPPdR7uaps6bSkLEWw'
EXOSCALE_API_KEY = 'EXO37ac257070da225b758e0f76'
EXOSCALE_API_SECRET = 'R7yBJ-XChI2rdkJ_1dOAeJJ1GK4N-jMsuhep4qEx16Q'
# Initialise exoscale API
exo = exoscale.Exoscale(api_key=EXOSCALE_API_KEY, api_secret=EXOSCALE_API_SECRET)
zone_decix = exo.compute.get_zone("de-fra-1")
zone_gva2 = exo.compute.get_zone("ch-gva-2")
security_group_default_ssh = exo.compute.get_security_group(name='default')
try:
security_group_ssh = exo.compute.create_security_group("ssh")
for rule in [
exoscale.api.compute.SecurityGroupRule.ingress(
description="HTTP",
network_cidr="0.0.0.0/0",
port="22",
protocol="tcp",
)
]:
security_group_web.add_rule(rule)
except Exoscale.api.APIException as err:
print(err)
###
# Create instances
###
......@@ -19,16 +34,17 @@ security_group_default_ssh = exo.compute.get_security_group(name='default')
nodes = []
for i in range(6):
instance_name = "freenet-" + str(i)
new_instance = exo.compute.create_instance(
name="freenet-1"
zone=zone_decix,
name=instance_name,
zone=zone_gva2,
type=exo.compute.get_instance_type("tiny"),
template=list(exo.compute.list_instance_templates(
zone_decix,
zone_gva2,
"Linux Ubuntu 18.04 LTS 64-bit"))[0],
volume_size=10,
security_groups=[security_group_default_ssh],
ssh_key=exo.compute.get_ssh_key("SWARM-cluster-key"),
ssh_key=exo.compute.get_ssh_key("exoscale.key"),
user_data=
"""#cloud-config
package_upgrade: true
......@@ -41,20 +57,18 @@ for i in range(6):
"""
)
nodes.append(new_instance)
print("Instance : " + instance_name + " created !")
print("SWARM master hosted at {}".format(swarm_master.ipv4_address))
print("SWARM http hosted at {}".format(swarm_http_slave.ipv4_address))
print("Swarm slave at {}".format(swarm_slave.ipv4_address))
print("Waiting 60 seconds for cloud-init completion...");
print("Waiting 60 seconds for cloud-init completion...")
sleep(60)
print("Setting up docker SWARM...")
for instance in nodes:
try:
print("Connexion a l'instance: " + instance.name)
s = pxssh.pxssh(options={"StrictHostKeyChecking": "no", "UserKnownHostsFile": "/dev/null"})
s.login(swarm_master.ipv4_address, username='ubuntu', ssh_key='swarm_key')
s.sendline('docker swarm init')
s.login(instance.ipv4_address, username='ubuntu', ssh_key='exoscale.key')
s.sendline('git clone ssh://git@ssh.hesge.ch:10572/jeremy.martinot/tp2_freenet_go_socket.git')
print("git cloned")
s.prompt()
haystack = s.before.decode('utf-8', 'ignore')
......@@ -62,19 +76,6 @@ try:
s.logout()
s = pxssh.pxssh(options={"StrictHostKeyChecking": "no", "UserKnownHostsFile": "/dev/null"})
s.login(swarm_slave.ipv4_address, username='ubuntu', ssh_key='swarm_key')
s.sendline(join_cmd)
s.prompt()
s.logout()
s = pxssh.pxssh(options={"StrictHostKeyChecking": "no", "UserKnownHostsFile": "/dev/null"})
s.login(swarm_http_slave.ipv4_address, username='ubuntu', ssh_key='swarm_key')
s.sendline(join_cmd)
s.prompt()
s.logout()
print("Swarm created on all nodes.")
except pxssh.ExceptionPxssh as e:
print("pxssh failed on login.")
print(e)
\ No newline at end of file
-----BEGIN OPENSSH PRIVATE KEY-----
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
vgLQ6GDXGkUAAAAIZXhvc2NhbGUBAgM=
-----END OPENSSH PRIVATE KEY-----
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDP/OlUdvFebzcQU5+otUC15ma7VF1HULGw5wCMjn55rmIF7iVW9GTg+zOtH+GP2TAtZ6ibEUS4XsFF+kFS7Cnjf5m/nw9GvHqv39boRLDPvGG01e3b7orqTBWLAc+tHB+JmPticIDmXgb8PfDEDKKrHE6UfFVP2jWHFHsXt5rI4TAhcS5PmiEjubWnl1W/rEx7r2U+mT7QXb0zcDGvRstHD53AuYSSEZ6oFaOUSygO09AlM8Jilk2CDgfkl4lb7KuE7BBdSbfqbIh+e+nLWwn0mQJR9JOgTo7remlyDXNoyOeYbCKGGcvqqBna8yOkQq3vuBJYBmgEcgqOE+pr47jCryByfN12p8MzcarThywVmII1e9lTO4OVpZYdyAROmLjnJA67ag62KkLnz0tPSN3DIsT67yqpITiuF5GmmQQS3wsshyHtNhcudPwyja2/HXEnNqtx6csmoIH95VfYbQSGc+TLlpdJAppAUzqwtEMpzh3BS/lyGwL0dR3u1HMn00KB27zrQBXWJly7tydmcHogt92x6MzFkIZ+PVozMzIQoguqghc+tTidOIdlnYSJBdHqqbb9+XmW0hywPGe+wBIGgf8hwY8Fr1uuyTzaoDJQIJtahvwG58Hy6eug1p5epNOsmzhp3vRJTBThAjcdhAqM3OpsWW83he5YlzzFX7ydjw== exoscale
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment