Made it to compile...

This commit is contained in:
2023-03-12 05:09:56 +02:00
parent 0f003a8791
commit e04acf4f6f

View File

@@ -938,22 +938,14 @@ def create_node(provider, name=None, location=None, size=None, image=None, confi
confirm = input("Continue? ") confirm = input("Continue? ")
# Any input other than yes does not continue the node creation # Any input other than yes does not continue the node creation
assert confirm == "yes", "User did not confirm" assert confirm == "yes", "User did not confirm"
# In the case of gce the driver does not accept the auth parameter so we must create the node using the deploy node function
if provider == "gce": if provider == "gce":
# node = driver.create_node(name, size, image, location, ex_service_accounts=sa_scopes)
# SCRIPT = """
# #!/usr/bin/env bash
# useradd -G sudo -m secdep
# echo "secdep:secdeppass" | chpasswd
# mkdir -p /home/secdep/.ssh
# """
# step = ScriptDeployment(SCRIPT)
node = driver.create_node(name=name, image=image, size=size, location=location, ex_service_accounts=sa_scopes, ex_metadata=metadata) node = driver.create_node(name=name, image=image, size=size, location=location, ex_service_accounts=sa_scopes, ex_metadata=metadata)
# node = driver.deploy_node(name=name, image=image, size=size, location=location, deploy=step, ex_service_accounts=sa_scopes, ex_metadata=metadata, ssh_key=SECDEP_SSH_PRIVATE_KEY)
elif provider == "azure": elif provider == "azure":
node = driver.create_node(name, size, image, location, auth=auth) node = driver.create_node(name, size, image, location, auth=auth)
else: else:
# driver.import_key_pair_from_string("secdep@"+socket.gethostname(), pubkey) driver.import_key_pair_from_string("secdep@"+socket.gethostname(), pubkey)
driver.ex_authorize_security_group_permissive('default')
keyname="secdep@"+socket.gethostname()
SCRIPT = '''#!/usr/bin/env bash SCRIPT = '''#!/usr/bin/env bash
useradd -G sudo -m secdep useradd -G sudo -m secdep
echo "secdep:secdeppass" | chpasswd echo "secdep:secdeppass" | chpasswd
@@ -963,30 +955,20 @@ def create_node(provider, name=None, location=None, size=None, image=None, confi
step_1 = SSHKeyDeployment(pubkey) step_1 = SSHKeyDeployment(pubkey)
step_2 = ScriptDeployment(SCRIPT) step_2 = ScriptDeployment(SCRIPT)
msd = MultiStepDeployment([step_1, step_2]) msd = MultiStepDeployment([step_1, step_2])
node = driver.deploy_node(name=name, image=image, size=size, deploy=msd, ssh_key=SECDEP_SSH_PRIVATE_KEY) node = driver.deploy_node(name=name, image=image, size=size, ex_keyname=keyname, deploy=msd, ssh_key=SECDEP_SSH_PRIVATE_KEY)
print('stdout: %s' % (step_2.stdout))
print('stderr: %s' % (step_2.stderr))
print('exit_code: %s' % (step_2.exit_status))
else: else:
# When the -y or --yes parameter is passed we go straight to the node creation # When the -y or --yes parameter is passed we go straight to the node creation
if provider == "gce": if provider == "gce":
# SCRIPT = '''#!/usr/bin/env bash
# useradd -G sudo -m secdep
# echo "secdep:secdeppass" | chpasswd
# echo "%sudo ALL=(ALL:ALL) ALL" >> /etc/sudoers
# mkdir -p /home/secdep/.ssh'''
# step = ScriptDeployment(SCRIPT)
node = driver.create_node(name=name, image=image, size=size, location=location, ex_service_accounts=sa_scopes, ex_metadata=metadata) node = driver.create_node(name=name, image=image, size=size, location=location, ex_service_accounts=sa_scopes, ex_metadata=metadata)
# node = driver.deploy_node(name=name, image=image, size=size, location=location, deploy=step, ex_service_accounts=sa_scopes, ex_metadata=metadata, ssh_key=SECDEP_SSH_PRIVATE_KEY)
# if provider == "aws":
# SCRIPT = '''#!/usr/bin/env bash
# useradd -G sudo -m secdep
# echo "secdep:secdeppass" | chpasswd
# echo "%sudo ALL=(ALL:ALL) ALL" >> /etc/sudoers
# mkdir -p /home/secdep/.ssh'''
# step = ScriptDeployment(SCRIPT)
#
elif provider == "azure": elif provider == "azure":
node = driver.create_node(name, size, image, location, auth=auth) node = driver.create_node(name, size, image, location, auth=auth)
else: else:
# driver.import_key_pair_from_string("secdep@"+socket.gethostname(), pubkey) driver.import_key_pair_from_string("secdep@"+socket.gethostname(), pubkey)
driver.ex_authorize_security_group_permissive('default')
keyname="secdep@"+socket.gethostname()
SCRIPT = '''#!/usr/bin/env bash SCRIPT = '''#!/usr/bin/env bash
useradd -G sudo -m secdep useradd -G sudo -m secdep
echo "secdep:secdeppass" | chpasswd echo "secdep:secdeppass" | chpasswd
@@ -996,7 +978,7 @@ def create_node(provider, name=None, location=None, size=None, image=None, confi
step_1 = SSHKeyDeployment(pubkey) step_1 = SSHKeyDeployment(pubkey)
step_2 = ScriptDeployment(SCRIPT) step_2 = ScriptDeployment(SCRIPT)
msd = MultiStepDeployment([step_1, step_2]) msd = MultiStepDeployment([step_1, step_2])
node = driver.deploy_node(name=name, image=image, size=size, deploy=msd, ssh_key=SECDEP_SSH_PRIVATE_KEY) node = driver.deploy_node(name=name, image=image, size=size, ex_keyname=keyname, deploy=msd, ssh_key=SECDEP_SSH_PRIVATE_KEY)
print('stdout: %s' % (step_2.stdout)) print('stdout: %s' % (step_2.stdout))
print('stderr: %s' % (step_2.stderr)) print('stderr: %s' % (step_2.stderr))
print('exit_code: %s' % (step_2.exit_status)) print('exit_code: %s' % (step_2.exit_status))
@@ -1063,14 +1045,6 @@ def delete_node():
else: else:
print("%s node could not be deleted" % (providerName.upper())) print("%s node could not be deleted" % (providerName.upper()))
#elif node.state == "running":
# def get_provider_features(provider):
# driver = get_corresponding_driver(provider);
# print(driver.features['create_node'])
#
# get_provider_features("azure")
# If -p -q or -G is passed, provider must be passed as well # If -p -q or -G is passed, provider must be passed as well
if args.listimages or args.listsizes or args.listlocations: if args.listimages or args.listsizes or args.listlocations:
assert args.provider is not None, "Provider must be passed if listing images, sizes or locations" assert args.provider is not None, "Provider must be passed if listing images, sizes or locations"
@@ -1112,14 +1086,9 @@ if args.list:
if args.delete: if args.delete:
delete_node() delete_node()
exit(0) exit(0)
if args.image or args.size or args.name or args.region or args.yes and not args.create:
# env = { print("Image, size, name, region and yes parameters only go along with the create flag")
# 'gce_key': gce_key, exit(0)
# 'gce_secret': gce_secret, # if args.create and not args.provider:
# 'azure_key': azure_key, # print("Provider must be specified in oder to use the create action")
# 'azure_secret': azure_secret, # exit(0)
# 'aws_key': aws_key,
# 'aws_secret': aws_secret
# }
# with open('.env', 'w') as f:
# json.dump(env, f)