我正在研究Terraform以及如何使用它来设置AWS环境。到目前为止,我已经有了用3个公共子网、3个私有子网、一个互联网网关和3个Nat网关设置VPC的脚本。然而,我对如何在私有子网中部署和重新部署应用程序感到困惑?
在我的场景中,我们使用Spring Boot构建微服务。我们的想法是转移到一种状态,在这种状态下,我们可以将弹性负载平衡器连接到公共子网,并在私有子网中的自动缩放组中承载我们的应用程序。然而,我找不到任何关于Terraform的好教程,这些教程向您展示了如何以一种可以从Jenkins重新部署应用程序的方式来实现这一点。
到目前为止,我已经阅读了关于Opsworks和代码部署的内容,那么我是否需要使用Terraform来设置这些资源,然后触发部署脚本,将人工制品发送到S3,然后重新部署?
如果有人想了解更多信息,那么添加这些信息可能会很有用。
基于Peter的解决方案,我正在从Terraform设置CodeDeploy IAM角色和CodeDeploy应用程序/组。以下是我所拥有的:
resource "aws_iam_role" "codedeploy_role_name" {
name = "codedeploy_role_name"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"codedeploy.amazonaws.com",
"ec2.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
EOF
}
resource "aws_codedeploy_app" "analytics_app" {
name = "analytics_app"
}
resource "aws_codedeploy_deployment_config" "analytics_deployment_config" {
deployment_config_name = "analytics_deployment_config"
minimum_healthy_hosts {
type = "HOST_COUNT"
value = 2
}
}
resource "aws_codedeploy_deployment_group" "analytics_group" {
app_name = "${aws_codedeploy_app.analytics_app.name}"
deployment_group_name = "analytics_group"
service_role_arn = "${aws_iam_role.codedeploy_role_name.arn}"
deployment_config_name = "analytics_deployment_config"
ec2_tag_filter {
key = "CodeDeploy"
type = "KEY_AND_VALUE"
value = "analytics"
}
auto_rollback_configuration {
enabled = true
events = ["DEPLOYMENT_FAILURE"]
}
}
我正在使用Terraform/Chef的CodeDeploy。我使用的设置如下所示:
1)提前手动设置CodeDeploy IAM角色。
2) 提前设置CodeDeploy应用程序/组。
3) 使用Terraform设置实例配置文件,如下所示:
resource "aws_iam_instance_profile" "code_deploy" {
name = "CodeDeploy"
roles = ["${var.codedeploy_instance_role}"]
}
4)创建实例时,使用实例配置文件和正确的标记(与CodeDeploy应用相匹配),如下所示:
iam_instance_profile = "${aws_iam_instance_profile.code_deploy.id}"
tags {
CD = "${var.tag_cd}"
}
5)使用Chef(或任何您的预配器)在实例上设置CodeDeploy。
那么你就可以像平常一样使用CodeDeploy了。
对于部署/重新部署,可以使用Hashicorp的另一个解决方案:Nomad。它使用与Terraform相同的语言来编程可以在集群上运行的任务。任务可以是任何东西,例如:重新部署我的所有Web应用实例。
Requirements 运行一个Spark Streaming应用程序,有下面一些步骤 有管理器的集群-这是任何Spark应用程序都需要的需求,详见部署指南 将应用程序打为jar包-你必须编译你的应用程序为jar包。如果你用spark-submit启动应用程序,你不需要将Spark和Spark Streaming打包进这个jar包。 如果你的应用程序用到了高级源(如kafka,flume),你需
问题内容: JAX-RS 1.1规范在第6页上说: 如果不存在Application子类,则必须将添加的servlet命名为: 添加的servlet是什么?可以是任意servlet吗? 如果存在Application子类,并且已经定义了一个servlet,该servlet的servlet初始化参数为: 同样,这里的“ servlet”是什么? 如果存在不由现有Servlet处理的Applicati
注 这一章可以有时有点难打通。 坚持并完成它 ;部署是在网站开发过程的重要组成部分。 这一章放在本教程的中部,因此你的指导者可以帮助你在使网站上线中的一些小困难。 这意味着如果您花大量的时间,你仍然能独立完成这个教程。 到目前为止您的网站只是在您的计算机上可用,现在您将了解如何部署它 ! 部署是在互联网上发布你的应用程序的一系列过程,因此人们最终可以一起去看看你的应用程序。 正如你所学习的,一个网
为了使用 Electron 部署你的应用,您需要进行打包和重塑。这样做的最简单的方法是使用以下第三方打包工具之一: electron-forge electron-builder electron-packager 这些工具将覆盖发布一个Electron应用所需采取的所有步骤,例如,打包应用程序,重组可执行程序,设置图标和可配置的创建安装程序。 Application Distribution T
程序开发完毕之后,我们现在要部署Web应用程序了,但是我们如何来部署这些应用程序呢?因为Go程序编译之后是一个可执行文件,编写过C程序的读者一定知道采用daemon就可以完美的实现程序后台持续运行,但是目前Go还无法完美的实现daemon,因此,针对Go的应用程序部署,我们可以利用第三方工具来管理,第三方的工具有很多,例如Supervisord、upstart、daemontools等,这小节我介
概览 要使用 Electron 分发你的应用,需要打包并重命名它。 为此,您可以使用专用工具或手动方法。 专用工具 您可以使用以下工具来分发您的应用程序: electron-forge electron-builder electron-packager 这些工具将自动进行所有的步骤,例如,打包您的应用程序,重组可执行文件,并设置正确的图标。 您可以查看 快速上手指南 中如何用 electron-