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; } }
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")); } }