Skip to content
Snippets Groups Projects
Commit ea1f6728 authored by John Jenni's avatar John Jenni
Browse files

ajout exoscale

parent 8a970bc3
Branches main
No related tags found
No related merge requests found
from gettext import install
from operator import getitem
import exoscale
import pathlib
import os
from datetime import datetime, timedelta
def create_bucket(bucket_name):
try:
bucket = exo.storage.create_bucket(bucket_name)
print("Bucket : "+ bucket.name+ "Created")
return bucket
except :
print("Bucket "+bucket_name+" already exists")
def create_bucket_and_upload_directory_to_bucket(directory_path,bucket_name,bucket_region):
rpath= glob.glob(directory_path+'/**',recursive=True)
try:
bucket = exo.storage.create_bucket(bucket_name,zone=bucket_region)
except:
pass
for file in rpath :
remote_path = f'{local_file}'/{"/".join(local_file.split(os.sep)[1:])}
if os.path.isfile(local_file):
bucket.put_file(local_file, local_file)
print("Bucket "+bucket.name+" created and files added !")
def create_security_group(security_group_name):
print("Creating security group : "+security_group_name+" ...")
security_group = exo.compute.create_security_group(security_group_name)
for rule in [
exoscale.api.compute.SecurityGroupRule.ingress(
description="HTTP",
network_cidr="0.0.0.0/0",
port="80",
protocol="tcp",
),
exoscale.api.compute.SecurityGroupRule.ingress(
description="HTTP",
network_cidr="0.0.0.0/0",
port="8080",
protocol="tcp",
),
exoscale.api.compute.SecurityGroupRule.ingress(
description="HTTPS",
network_cidr="0.0.0.0/0",
port="443",
protocol="tcp",
),
exoscale.api.compute.SecurityGroupRule.ingress(
description="SSH",
network_cidr="0.0.0.0/0",
port="22",
protocol="tcp",
),
]:
security_group.add_rule(rule)
print("Instance "+security_group_name+" created !")
return security_group
def create_vm_instance(name,zone,size, security_group, script):
print("Creating instance : "+name+" ...")
#ssh_keys = exo.compute.get_ssh_key("Yan")
#startup_script = open(os.path.join(os.path.dirname(__file__), script_filename), 'r').read()
instance = exo.compute.create_instance(
name=name,
zone=zone_gva2,
type=exo.compute.get_instance_type("tiny"),
template=list(
exo.compute.list_instance_templates(
zone_gva2,
"Linux Ubuntu 20.04 LTS 64-bit"))[0],
volume_size=size,
security_groups=[security_group],
#ssh_key = ssh_keys,
#user_data = "#cloud-config runcmd:"+startup_script,
user_data = script
)
#print(startup_script)
print("Instance "+name+" created !")
return instance
if __name__ == "__main__":
exo = exoscale.Exoscale()
bucket_name = 'bucketcloud1'
region = "ch-gva-2"
#front = """
# #cloud-config
#
# package_update: true
#
# runcmd:
# - curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
# - sudo apt-get install git nodejs -y
# - sudo apt-get install -y git
# - git clone https://gitedu.hesge.ch/thibault.chatillo/cloud-project-front-back-db.git
# - cd cloud-project-front-back-db/FRONT/
# - npm install
# - node client.js
# """
back = """
#cloud-config
package_update: true
runcmd:
- curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
- sudo apt-get install git nodejs -y
- sudo apt-get install -y git
- git clone https://gitedu.hesge.ch/thibault.chatillo/cloud-project-front-back-db.git
- cd cloud-project-front-back-db/API/
- npm install
- npm run start:dev
"""
#bucket = create_bucket(bucket_name)
security_group = create_security_group("cloud-secu")
zone_gva2 = exo.compute.get_zone("ch-gva-2")
back_instance = create_vm_instance("Back",zone_gva2,10,security_group, back)
back_ip = back_instance.ipv4_address
front = """
#cloud-config
package_update: true
runcmd:
- curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
- sudo apt-get install git nodejs -y
- sudo apt-get install -y git
- git clone https://gitedu.hesge.ch/thibault.chatillo/cloud-project-front-back-db.git
- cd cloud-project-front-back-db/FRONT/
- npm install
- sudo sed -i -e 's/0.0.0.0/""" + back_ip + """/g' src/index.js
- node client.js
"""
front_instance = create_vm_instance("Front",zone_gva2,10,security_group, front)
#!/bin/bash
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
sudo apt-get install git nodejs -y
sudo apt-get install -y git
git clone https://gitedu.hesge.ch/thibault.chatillo/cloud-project-front-back-db.git
cd cloud-project-front-back-db/API/
npm install
npm run start:dev
\ No newline at end of file
#!/bin/bash
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
sudo apt-get install git nodejs -y
sudo apt-get install -y git
git clone https://gitedu.hesge.ch/thibault.chatillo/cloud-project-front-back-db.git
cd cloud-project-front-back-db/FRONT/
npm install
node client.js
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment