private static void Main(string[] args)
        {
            var configurationProvider = Configuration.Configure<ElasticBeanstalkDeploymentConfigurationProvider>()
                 .CreateAndBind(args);
            Log.Logger = SerilogColoredConsoleConfiguration
                .InitializeColoredConsoleLogger(configurationProvider)
                .ForContext(SerilogTemplateConfiguration.CorrelationIdName, Guid.NewGuid().ToString("N"));
            var loggerProvider = new LoggerProvider();
            var elasticBeanstalkService = new ElasticBeanstalkService(configurationProvider, loggerProvider);
            var s3Service = new S3Service(configurationProvider, loggerProvider);
            var ec2Service = new Ec2Service(configurationProvider, loggerProvider);
            var iamService = new IdentityManagementService(configurationProvider, loggerProvider);
            var smokeTestService = new SmokeTestService(configurationProvider, loggerProvider);
            var route53Service = new Route53Service(configurationProvider, loggerProvider);
            var configurationOptionSettingsProvider = new ConfigurationOptionSettingsProvider(loggerProvider,
                ec2Service,
                configurationProvider);
            var sslUploaderService = new SslUploaderService(configurationProvider, loggerProvider);
            var cloudfrontService = new CloudFrontService(configurationProvider, loggerProvider);
            var ebDeployer = new ElasticBeanstalkDeployer(configurationProvider,
                elasticBeanstalkService,
                s3Service,
                smokeTestService,
                iamService,
                configurationOptionSettingsProvider,
                route53Service,
                sslUploaderService,
                cloudfrontService,
                loggerProvider);

            ebDeployer.DeployDockerApplicationSingleAzAsync().Wait();
        }
        private static void Main(string[] args)
        {
            var configurationProvider = Configuration.Configure<CNameSwapConfigurationProvider>()
                .CreateAndBind(args);
            Log.Logger = SerilogColoredConsoleConfiguration
                .InitializeColoredConsoleLogger(configurationProvider)
                .ForContext(SerilogTemplateConfiguration.CorrelationIdName, Guid.NewGuid().ToString("N"));
            var loggerProvider = new LoggerProvider();
            try
            {
                var route53Service = new Route53Service(configurationProvider, loggerProvider);
                var elasticBeanstalkService = new ElasticBeanstalkService(configurationProvider, loggerProvider);

                elasticBeanstalkService.SwapEnvironmentCnamesAsync().Wait();

                if (string.IsNullOrWhiteSpace(configurationProvider.Subdomain))
                {
                    loggerProvider.GetLogger().Debug("Subdomain is empty.  No Route53 actions being taken at this time.");
                }
                else
                {
                    loggerProvider.GetLogger().Debug("Updating Route53 DNS Entries due to Cname Swap.");
                    route53Service.SwapEnvironmentCnamesAsync(elasticBeanstalkService.CurrentCNamePrefix, elasticBeanstalkService.NextCNamePrefix).Wait();
                }
            }
            catch (Exception e)
            {
                loggerProvider.GetLogger().Fatal("Could not swap CNames: {message}", e.Message);
                throw;
            }
        }
        private static void Main(string[] args)
        {
            var configurationProvider = Configuration.Configure<ElasticBeanstalkDeploymentConfigurationProvider>()
                .CreateAndBind(args);

            configurationProvider.ValidateConfig();

            Log.Logger = SerilogColoredConsoleConfiguration
                .InitializeColoredConsoleLogger(configurationProvider)
                .ForContext(SerilogTemplateConfiguration.CorrelationIdName, Guid.NewGuid().ToString("N"));
            var loggerProvider = new LoggerProvider();
            var elasticBeanstalkService = new ElasticBeanstalkService(configurationProvider, loggerProvider);
            var s3Service = new S3Service(configurationProvider, loggerProvider);
            var ec2Service = new Ec2Service(configurationProvider, loggerProvider);
            var iamService = new IdentityManagementService(configurationProvider, loggerProvider);
            var smokeTestService = new SmokeTestService(configurationProvider, loggerProvider);
            var route53Service = new Route53Service(configurationProvider, loggerProvider);
            var configurationOptionSettingProvider = new ConfigurationOptionSettingsProvider(loggerProvider, ec2Service,
                configurationProvider);
            var sslUploaderService = new SslUploaderService(configurationProvider, loggerProvider);
            var cloudfrontService = new CloudFrontService(configurationProvider, loggerProvider);
            var ebDeployer = new ElasticBeanstalkDeployer(configurationProvider,
                elasticBeanstalkService,
                s3Service,
                smokeTestService,
                iamService,
                configurationOptionSettingProvider,
                route53Service,
                sslUploaderService,
                cloudfrontService,
                loggerProvider);

            try
            {

                ebDeployer.DeployIisApplicationSingleAzAsync().Wait();
            }
            catch (Exception e)
            {
                loggerProvider.GetLogger().Fatal("Could not deploy IIS Application to Single AZ: {message}", e.Message);
                throw;
            }
        }
Example #4
0
        private static async Task <HttpResponseMessage> NicUpdate(string hostname, string myip)
        {
            try
            {
                var hostAddress = await DnsService.GetHostAddress(hostname);

                var success   = hostAddress.Item1;
                var ipAddress = hostAddress.Item2;
                if (!success)
                {
                    Log.Error($"nohost {hostname}");
                    return(ReturnStatus("nohost"));
                }

                var newIp = IPAddress.Parse(myip);
                if (newIp.AddressFamily != AddressFamily.InterNetwork)
                {
                    Log.Error($"badip {newIp}");
                    return(ReturnStatus("badip"));
                }

                if (Equals(hostAddress.Item2, newIp))
                {
                    Log.Information($"nochg {hostname} {ipAddress} {newIp}");
                    return(ReturnStatus($"nochg {ipAddress}"));
                }

                Route53Service.UpdateRoute53Record(hostname, newIp);

                Log.Information($"good {hostname} {ipAddress} {newIp}");
                return(ReturnStatus($"good {newIp}"));
            }
            catch (Exception ex)
            {
                Log.Fatal($"911 {hostname} {IPAddress.Parse(myip)} {ex.Message} {ex.StackTrace}");
                return(ReturnStatus("911"));
            }
        }