Amazon web services EC2用户数据脚本未将`user data.log`输出重定向到控制台 描述
考虑到这一点,应该可以将Amazon web services EC2用户数据脚本未将`user data.log`输出重定向到控制台 描述,amazon-web-services,amazon-ec2,user-data,Amazon Web Services,Amazon Ec2,User Data,考虑到这一点,应该可以将exec>>(tee/var/log/user data.log | logger-t user data-s2>/dev/console)2>&1添加到EC2初始化时运行的用户数据脚本中 运行aws ec2——region eu-west-1 get console output——实例id i-| grep“user data”(或搜索应存在的其他模式)时,在ec2初始化后找不到任何模式 目标 从这个初始化脚本读取结果和调试信息,而不需要SSH到ec2实例中,并轮询日
exec>>(tee/var/log/user data.log | logger-t user data-s2>/dev/console)2>&1
添加到EC2初始化时运行的用户数据脚本中
运行aws ec2——region eu-west-1 get console output——实例id i-| grep“user data”
(或搜索应存在的其他模式)时,在ec2初始化后找不到任何模式
目标
从这个初始化脚本读取结果和调试信息,而不需要SSH到ec2实例中,并轮询日志以获取shutdown语句。使用实例关闭作为“完成”状态可以大大简化此存储库的部署过程
问题:
这个特殊的设置不正确,因此我们无法从aws ec2 get console output
命令中获取日志
备选答案:从EC2实例检索日志的更好方法是什么
用户数据脚本
这里的核心问题是,我们对实例的初始化产生了太多的控制台输出
74295 # > 64 KBs
这是在打一个电话
默认情况下,控制台输出返回在实例转换状态(启动、停止、重新启动或终止)后不久发布的缓冲信息。此信息在最近发布后至少一小时内可用。只有最新的64 KB控制台输出可用
我们将使用的解决方案解决这个问题,以启用SSM并登录到解析日志输出中
resource "aws_instance" "ec2_provisioner" {
count = var.enabled ? 1 : 0
ami = data.aws_ami.ec2_provisioner.id
iam_instance_profile = var.iam_instance_profile
instance_initiated_shutdown_behavior = "terminate"
instance_type = var.instance_type
root_block_device {
volume_type = "gp2"
volume_size = "16"
delete_on_termination = "true"
}
subnet_id = var.subnet_id
tags = merge(
{
"es:global:component-name" = "${var.component_name}-ec2-provisioner",
"Name" = var.name
},
jsondecode(var.additional_tags)
)
user_data = templatefile(
"${path.module}/user_data.tpl",
{
BASH_SCRIPT = var.bash_script,
PACKAGES = join(",", var.packages)
}
)
volume_tags = {
"Name" = var.name
}
vpc_security_group_ids = [var.security_group_id]
}
74295 # > 64 KBs