def main(*args): """ Create an auto-scaling group and launch instances. """ # Parse command line options parser = argparse.ArgumentParser(description='Create ASG') parser.add_argument('-c', '--config_name', action="store", required=True) args, unknown = parser.parse_known_args() config_name = args.config_name # Read INI configuration file config = ConfigParser.SafeConfigParser() default_file = awsadmin_cfg.AWS_CONF_DIR + '/default' config_file = awsadmin_cfg.AWS_CONF_DIR + '/' + config_name if not config.read([default_file, config_file]): print "Configure file %s doesn't exist" % config_file sys.exit(1) if not config.has_section(config_name): print "No such configuration section: %s" % config_name sys.exit(1) # Get launch configuration try: ec2_type = config.get(config_name, 'ec2_type') ec2_role = config.get(config_name, 'ec2_role') image_id = config.get(config_name, 'image_id') keypair = config.get(config_name, 'keypair') version = config.get(config_name, 'version') launch_config_name = config.get(config_name, 'launch_config_name') security_group = config.get(config_name, 'security_group') userdata = config.get(config_name, 'userdata') block_device = config.get(config_name, 'block_device') except ConfigParser.NoOptionError, e: sys_exit(1,`e`)
def main(): # Scripts directory for auto-generated help command_dir = paths.scripts try: opts, args = getopt.getopt(sys.argv[1:], '') except getopt.error, msg: sys_exit(1, msg)
def main(): # Scripts directory for auto-generated help command_dir = paths.scripts try: opts, args = getopt.getopt(sys.argv[1:],'') except getopt.error, msg: sys_exit(1,msg)
def main(*args): """ Create AWS AMI image """ # Parse command line options parser = argparse.ArgumentParser(description='Create AWS AMI') parser.add_argument('-c', '--config_name', action="store", required=True) parser.add_argument('-i', '--instance_id', action="store", required=True) parser.add_argument('-r', '--reboot', action="store_true", default=False, help="Reboot before making image, default is no reboot") args, unknown = parser.parse_known_args() config_name = args.config_name # Read INI configuration file config = ConfigParser.SafeConfigParser() config_file = awsadmin_cfg.AWS_CONF_DIR + '/' + config_name if not config.read([config_file]): print "Configure file %s doesn't exist" % config_file sys.exit(1) if not config.has_section(config_name): print "No such configuration section: %s" % config_name sys.exit(1) instance_id = args.instance_id reboot = '--no-reboot' if args.reboot: reboot = '--reboot' # Get launch configuration try: ec2_type = config.get(config_name, 'ec2_type') except ConfigParser.NoSectionError, e: sys_exit(1,`e`)
def main(*args): """ Deregister an AWS AMI image """ # Parse command line options try: opts, args = getopt.getopt(args, 'ha:', ['help', 'ami-id=']) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Print a load-balancer's information """ # Parse command line options try: opts, args = getopt.getopt(args, 'hn:', ['help', 'name=']) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Deregister an AWS AMI image """ # Parse command line options try: opts, args = getopt.getopt(args, 'ha:', ['help','ami-id='] ) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Print a load-balancer's information """ # Parse command line options try: opts, args = getopt.getopt(args, 'hn:', ['help','name='] ) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Set auto-scaling group's desired capacity. """ # Parse command line options try: opts, args = getopt.getopt(args, 'hc:', ['help', 'config-name='] ) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Recycle all EC2 instances in auto-scaling group """ # Parse command line options try: opts, args = getopt.getopt(args, 'hc:', ['help', 'config_name='] ) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Double the capacity of an auto-scaling group. """ # Parse command line options try: opts, args = getopt.getopt(args, 'hc:', ['help', 'config-name='] ) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Set auto-scaling group's desired capacity. """ # Parse command line options try: opts, args = getopt.getopt(args, 'hc:', ['help', 'config-name=']) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Double the capacity of an auto-scaling group. """ # Parse command line options try: opts, args = getopt.getopt(args, 'hc:', ['help', 'config-name=']) except getopt.error, msg: sys_exit(1, msg)
def main(*args): """ Create new launch configuation and update an auto-scaling group's configuration. """ # Parse command line options parser = argparse.ArgumentParser(description='Update launch configuration') parser.add_argument('-c', '--config_name', action="store", required=True) parser.add_argument('-t', '--ec2-type', action="store", required=False, help='An ec2 type. If given, override the default configuration. Useful for testing.') args, unknown = parser.parse_known_args() config_name = args.config_name # Read INI configuration file config = ConfigParser.SafeConfigParser() config_file = awsadmin_cfg.AWS_CONF_DIR + '/' + config_name if not config.read([config_file]): print "Configure file %s doesn't exist" % config_file sys.exit(1) if not config.has_section(config_name): print "No such configuration section: %s" % config_name sys.exit(1) if args.ec2_type: ec2_type = args.ec2_type else: ec2_type = config.get(config_name, 'ec2_type') # Generate a new lc file launch_config_name = "%s_%s_%s" % (config_name,ec2_type,(time.strftime("%Y-%m-%d-%H%M"))) try: launch_config_name = config.get(config_name, 'launch_config_name') ec2_role = config.get(config_name, 'ec2_role') image_id = config.get(config_name, 'image_id') keypair = config.get(config_name, 'keypair') security_group = config.get(config_name, 'security_group') userdata = config.get(config_name, 'userdata') block_device = config.get(config_name, 'block_device') auto_scaling_group_name = config.get(config_name, 'auto_scaling_group_name') except ConfigParser.NoSectionError, e: sys_exit(1,`e`)
def main(*args): """ Describe auto-scaling group """ # Parse command line options parser = argparse.ArgumentParser(description='Describe AWS ASG') parser.add_argument('-c', '--config_name', action="store", required=True) args, unknown = parser.parse_known_args() config_name = args.config_name # Read INI configuration file config = ConfigParser.SafeConfigParser() config_file = awsadmin_cfg.AWS_CONF_DIR + '/' + config_name if not config.read([config_file]): print "Configure file %s doesn't exist" % config_file sys.exit(1) if not config.has_section(config_name): print "No such configuration section: %s" % config_name sys.exit(1) try: auto_scaling_group_name = config.get(config_name, 'auto_scaling_group_name') except ConfigParser.NoOptionError, e: sys_exit(1,`e`)
def main(*args): """ Recycle all EC2 instances in auto-scaling group """ # Parse command line options try: opts, args = getopt.getopt(args, 'hc:', ['help', 'config_name='] ) except getopt.error, msg: sys_exit(1, msg) config_name='' # Process options for option, arg in opts: if option in ('-c', '--config_name'): config_name=(arg) elif option in ('-h', '--help'): sys_exit(0,__doc__) if not config_name: sys_exit(1,"Configuration name is required") # Read INI configuration file config = ConfigParser.ConfigParser() try: config.read(awsadmin_cfg.AMI_CONF_INI) except AttributeError, e: sys_exit(1,e) # Get launch configuration try: ec2_type = config.get(config_name, 'ec2_type') except ConfigParser.NoSectionError, e:
def main(*args): """ Deregister an AWS AMI image """ # Parse command line options try: opts, args = getopt.getopt(args, 'ha:', ['help', 'ami-id=']) except getopt.error, msg: sys_exit(1, msg) ami_id = '' # Process options for option, arg in opts: if option in ('-a', '--ami-id'): ami_id = (arg) elif option in ('-h', '--help'): sys_exit(0, __doc__) if not ami_id: sys_exit(1, "AMI Id is required.") aws_cmd = ' '.join(['aws ec2 deregister-image --image-id', ami_id]) (status, output) = commands.getstatusoutput(aws_cmd) print output sys.exit(0) # Only execute the code when it's called as a script, not just imported. if __name__ == '__main__': main(*sys.argv[1:])
docstring += "%-20s %s" % (cmd.replace('_','-'), m.short_desc()) + '\n' except StandardError,e: pass return docstring def main(): # Scripts directory for auto-generated help command_dir = paths.scripts try: opts, args = getopt.getopt(sys.argv[1:],'') except getopt.error, msg: sys_exit(1,msg) if not args: sys_exit(0, generate_commands_list(command_dir)) cmd = '' if args[0] == 'help': if args[1:]: cmd = args[1].lower().replace('-','_').replace('.py','') # Skip a few python system modules if cmd not in ('user', 'calendar', 'resource'): try: m = __import__(cmd) sys_exit(0, m.__doc__) except StandardError: pass sys_exit(0, generate_commands_list(command_dir, cmd))
sys.exit(1) # Get launch configuration try: ec2_type = config.get(config_name, 'ec2_type') except ConfigParser.NoSectionError, e: sys_exit(1, ` e `) # Get ASG configuration try: auto_scaling_group_name = config.get(config_name, 'auto_scaling_group_name') desired_capacity = config.get(config_name, 'desired_capacity') elb = config.get(config_name, 'load-balancer') except ConfigParser.NoOptionError, e: sys_exit(1, e) # List all current instances running behind elb lb_cmd = ' '.join( ['aws elb describe-instance-health', '--load-balancer', elb]) print "Getting old instances Id..." sys.stdout.flush() (status, output) = commands.getstatusoutput(lb_cmd) instance_pat = re.compile('i-\w+') if status != 0: print "ERROR in getting instances from elb " + elb print output else: old_instances = instance_pat.findall(output) # Scale out to keep service capcity while we recycle instances
except ConfigParser.NoOptionError, e: elb = load_balancer = '' if elb: load_balancer = '--load-balancers ' + elb # Get ASG configuration try: auto_scaling_group_name = config.get(config_name, 'auto_scaling_group_name') availability_zones = config.get(config_name, 'availability_zones') min_size = config.get(config_name, 'min_size') max_size = config.get(config_name, 'max_size') desired_capacity = config.get(config_name, 'desired_capacity') tag = config.get(config_name, 'tag') except ConfigParser.NoOptionError, e: sys_exit(1,e) lc_cmd = ' '.join(['as-create-launch-config',launch_config_name, '--image-id',image_id,'-t',ec2_type, '--key',keypair,'--group',security_group, '--user-data-file',userdata, '--block-device-mapping',block_device, '--iam-instance-profile',ec2_role]) (status,output) = commands.getstatusoutput(lc_cmd) print output if status != 0: print "ERROR in creating LC" + launch_config_name print output sys.exit(1)
""" Print a load-balancer's information """ # Parse command line options try: opts, args = getopt.getopt(args, 'hn:', ['help', 'name=']) except getopt.error, msg: sys_exit(1, msg) name = '' instances = False # Process options for option, arg in opts: if option in ('-n', '--name'): name = (arg) elif option in ('-h', '--help'): sys_exit(0, __doc__) if not name: print "load balancer name is required." sys.exit(1) # Get load-balancer information elb_cmd = 'aws elb describe-load-balancers' exec_cmd = ' '.join( [elb_cmd, '--load-balancer-name', name, '--output json']) (status, output) = commands.getstatusoutput(exec_cmd) if status != 0: print output sys.exit(1)
""" Print a load-balancer's information """ # Parse command line options try: opts, args = getopt.getopt(args, 'hn:', ['help','name='] ) except getopt.error, msg: sys_exit(1, msg) name='' instances = False # Process options for option, arg in opts: if option in ('-n', '--name'): name=(arg) elif option in ('-h', '--help'): sys_exit(0,__doc__) if not name: print "load balancer name is required." sys.exit(1) # Get load-balancer information elb_cmd = 'aws elb describe-load-balancers' exec_cmd = ' '.join([elb_cmd,'--load-balancer-name',name, '--output json']) (status,output) = commands.getstatusoutput(exec_cmd) if status != 0: print output sys.exit(1)
return "Deregister an AMI." def main(*args): """ Deregister an AWS AMI image """ # Parse command line options try: opts, args = getopt.getopt(args, 'ha:', ['help','ami-id='] ) except getopt.error, msg: sys_exit(1, msg) ami_id = '' # Process options for option, arg in opts: if option in ('-a', '--ami-id'): ami_id=(arg) elif option in ('-h', '--help'): sys_exit(0,__doc__) if not ami_id: sys_exit(1,"AMI Id is required.") aws_cmd = ' '.join(['aws ec2 deregister-image --image-id',ami_id]) (status,output) = commands.getstatusoutput(aws_cmd) print output sys.exit(0) # Only execute the code when it's called as a script, not just imported. if __name__ == '__main__': main(*sys.argv[1:])
except StandardError, e: pass return docstring def main(): # Scripts directory for auto-generated help command_dir = paths.scripts try: opts, args = getopt.getopt(sys.argv[1:], '') except getopt.error, msg: sys_exit(1, msg) if not args: sys_exit(0, generate_commands_list(command_dir)) cmd = '' if args[0] == 'help': if args[1:]: cmd = args[1].lower().replace('-', '_').replace('.py', '') # Skip a few python system modules if cmd not in ('user', 'calendar', 'resource'): try: m = __import__(cmd) sys_exit(0, m.__doc__) except StandardError: pass sys_exit(0, generate_commands_list(command_dir, cmd))