Example #1
0
def create_vpc():
    print("AWS VPC를 생성합니다.")
    print("AWS VPC 생성시 이름을 입력하세요 : ")
    vpcNm = input()  #생성될 object들의 접두사.
    #print("AWS VPC 의 IP 대역을 입력하세요. 예)10.5.0.0/16 ")
    vpc_ips = "10.5.0.0/16"  #default vpc cidr
    startNo = 5
    print("VPC Cidr을 찾고 있습니다.")
    vpc_ips = get_unregistered_vpcmax_cidr(5)
    print(vpc_ips + " IP 대역으로 Vpc를 생성합니다.")
    print("1.생성합니다. 2.IP 대역을 직접 입력합니다.")
    step1 = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    if step1 == "1":
        print("Vpc 생성을 시작합니다.")
    elif step1 == "2":
        while 0 < 1:
            print("IP 대역을 직접 입력해주세요. 예) 10.5.0.0/16")
            vpc_ips = goMain.goPage_inputValCheck(
                selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
            ret_obj = search_vpcs_byCidr(vpc_ips)
            if len(ret_obj) > 0:
                print("입력하신 IP 대역이 이미 등록되어 있습니다. 다시 입력해주세요")
            else:
                break
    else:
        print("잘못 입력하셨습니다.")
        goMain.go_second_menu(selected_first_menu)

    command = 'aws ec2 create-vpc --cidr-block ' + vpc_ips + ' --query Vpc.VpcId --output text'
    credVpcId = cmdUtil.create_resource(command, vpcNm)
    print("Vpc 가 생성되었습니다.")
    retStr = {"vpcId": credVpcId, "cidr": vpc_ips}
    return retStr
Example #2
0
def create_instance():
    print("ec2 instance 를 생성합니다.")
    print("instance 생성시 이름을 입력하세요 : ")
    instanceNm = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    instanceId = ""
    print("instance 로 생성할 linux이미지를 선택합니다.")
    print("linux 이미지는 Default로 amazon Linux를 설치합니다.")
    while 1 > 0:
        print("1.Default로 설치합니다. 2.검색해서 설치합니다.")
        nextStep = goMain.goPage_inputValCheck(
            selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
        selectedImageInfoArr = []
        searchImageKeyword = ""
        if nextStep == "2":
            while 0 < 1:
                print("이미지를 검색할 단어를 입력하세요.")
                searchImageKeyword = goMain.goPage_inputValCheck(
                    selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
                selectedImageInfoArr = search_instance_image(
                    searchImageKeyword)
                if selectedImageInfoArr != "research":
                    break
            break
        elif nextStep == "1":
            selectedImageInfoArr = search_instance_image("")
            break
        else:
            print("잘못 선택하셨습니다. 다시 선택해주세요.")
    #selectedImageInfoArr[3]
    print("Subnet을 선택합니다.")
    selectedSubnetInfoArr = mySubnet.select_subnet()
    #selectedSubnetInfoArr[3]
    print("Security Group을 선택합니다.")
    selectedSGInfoArr = mysg.select_sg("vpc-id", selectedSubnetInfoArr[4])
    print("instance 에 접속에 필요한 key-pairs 를 선택합니다.")
    selectedkeysInfoArr = mykeys.select_keypairs()
    print("instance 에 적용할 권한인 instance profile을 선택합니다.")
    selectedInstanceProfileInfoArr = myroles.select_instance_profiles()

    print("instance 를 생성하시겠습니까?(y/n)")
    netStepYN = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    if netStepYN.lower() == 'y':
        command = "aws ec2 run-instances --image-id " + selectedImageInfoArr[3]
        command = command + " --instance-type t2.micro --count 1"
        command = command + " --subnet-id " + selectedSubnetInfoArr[
            3] + " --associate-public-ip-address"
        command = command + " --security-group-ids " + selectedSGInfoArr[1]
        command = command + " --iam-instance-profile Name=" + selectedInstanceProfileInfoArr[
            0] + " --key-name " + selectedkeysInfoArr[1]
        command = command + " --query Instances[*].InstanceId --output text"
        instanceId = cmdUtil.create_resource(command, instanceNm)
    print("Instance 생성 되었습니다.")
    print("instance OS 명을 입력하세요 (예: ubuntu): ")
    osNm = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    cmdUtil.create_anytag(instanceId, 'OSType', osNm)
    retStr = {"instanceNm": instanceNm, "instanceId": instanceId}
    return retStr
Example #3
0
def create_sg():
    print("Security Group 을 생성합니다.")
    print("Security Group 생성시 이름을 입력하세요 (예 test_sg): ")
    sgNm = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    print("Security Group 을 생성할 Vpc를 선택합니다.")
    # 등록된 vpc 목록을 가져옵니다.
    selectedVpcInfoArr = myVpcs.select_vpc()
    print("Security Group 생성중입니다.")
    command = 'aws ec2 create-security-group --group-name ' + sgNm + ' --description "' + sgNm + '" --vpc-id ' + selectedVpcInfoArr[
        2] + ' --query GroupId --output text'
    credGwId = cmdUtil.create_resource(command, sgNm)
    print("Security Group 이 생성되었습니다.")
    retStr = {"SecurityGroupId": credGwId, "SecurityGroupNm": sgNm}
    return retStr
Example #4
0
def create_gateway():
	print("Gateway를 생성합니다.")
	print("Gateway 생성시 이름을 입력하세요 : ")
	gwNm=goMain.goPage_inputValCheck(selected_first_menu) # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
	print("Gateway를 생성합니다.")		
	command = 'aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text'
	credGwId = cmdUtil.create_resource(command, gwNm)
	print("Internet gateway가 생성되었습니다.")
	print("생성하신 Gateway와 Vpc를 연결하시겠습니까?(y/n)")
	nextStepYN=goMain.goPage_inputValCheck(selected_first_menu) # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
	if nextStepYN == 'Y' or nextStepYN == 'y':
		print("연결할 vpc를 선택하세요.")
		# 등록된 vpc 목록을 가져옵니다.
		selectedVpcInfoArr = myVpcs.select_vpc()
		attach_gw_to_vpc(credGwId, selectedVpcInfoArr[2])
	else:
		goMain.go_second_menu(selected_first_menu)
	retStr = {"GatewayId":credGwId,"vpcId":selectedVpcInfoArr[2]}
	return retStr
Example #5
0
def create_routeTable():
    print("Route table을 생성합니다.")
    print("Route table 생성시 이름을 입력하세요 (예 test_public_RT): ")
    routeTableNm = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    print("Route table을 생성할 Vpc를 선택합니다.")
    # 등록된 vpc 목록을 가져옵니다.
    selectedVpcInfoArr = myVpcs.select_vpc()
    print("Route table 생성중입니다.")
    command = 'aws ec2 create-route-table --vpc-id ' + selectedVpcInfoArr[
        2] + ' --query RouteTable.RouteTableId --output text'
    credRtId = cmdUtil.create_resource(command, routeTableNm)
    print("Route table이 생성되었습니다.")
    retStr = {"RouteTableId": credRtId, "RouteTableName": routeTableNm}
    #route 생성..- gateway연결등 start..
    print("Public network 이용을 위해 route-table에 Gateway를 연결해야 합니다.")
    print("route-table에 Internet Gateway 또는 NAT Gateway를 연결을 진행하시겠습니까? (y/n)")
    nextStepYN = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    if nextStepYN[0] == 'Y' or nextStepYN[0] == 'y':
        create_route()
    #route 생성..- gateway연결등 end..
    return retStr
Example #6
0
def create_subnet():
    print("AWS Subnet을 생성합니다.")
    print("Subnet 생성시 이름을 입력하세요 : ")
    subnetNm = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    print("Subnet을 생성할 Vpc를 선택합니다.")
    # 등록된 vpc 목록을 가져옵니다.
    selectedVpcInfoArr = myVpcs.select_vpc()
    #print(selectedVpcInfoArr)
    print("Subnet의 cidr-block을 선별하고 있습니다.")
    subnetCidrB = get_unregistered_subnetmax_cidr(selectedVpcInfoArr[2],
                                                  selectedVpcInfoArr[1])
    print(subnetCidrB + " cidr-block으로 subnet을 생성하시겠습니까?")
    print("1.생성합니다. 2.IP 대역을 직접 입력합니다.")
    step1 = goMain.goPage_inputValCheck(
        selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
    if step1 == "1":
        print("subnet 생성 진행중입니다.")
    elif step1 == "2":
        print("IP 대역을 직접 입력해주세요. 예) " + subnetCidrB)
        subnetCidrB = goMain.goPage_inputValCheck(
            selected_first_menu)  # 입력시 p, x 입력시 이전 메뉴 또는 프로그램 종료 진행
        ret_obj = search_subnets_byCidr(selectedVpcInfoArr[2], subnetCidrB)
        if len(ret_obj) > 0:
            print("입력하신 IP 대역이 이미 등록되어 있습니다.")
            goMain.go_second_menu(selected_first_menu)
    else:
        print("잘못 입력하셨습니다. 프로그램을 다시 시작해주세요.")
        goMain.go_second_menu(selected_first_menu)

    command = 'aws ec2 create-subnet --vpc-id ' + selectedVpcInfoArr[
        2] + ' --cidr-block ' + subnetCidrB + ' --availability-zone ap-northeast-2a --query Subnet.SubnetId --output text'
    credSubnetId = cmdUtil.create_resource(command, subnetNm)
    print("subnet이 생성되었습니다.")
    retStr = {"SubnetId": credSubnetId, "cidr-block": subnetCidrB}
    return retStr