user data argument in aws instance
Jump to navigation
Jump to search
user_data (optional) user data argument in aws_instance resource to provide when launching the instance, such as shell scripts.
user_data = templatefile("${path.module}/assets/your_instance_data.tftpl", {})
user_data = templatefile("${path.module}/path/yourfile.tftpl", { ecs_cluster = aws_ecs_cluster.your_cluster.name ecs_instance_attribute = var.ecs_instance_attribute })
Important notes:
- Updates to this field will trigger a stop/start of the EC2 instance by default.
- Do not pass gzip-compressed data via this argument; see
user_data_base64instead. - If the
user_data_replace_on_changeis set then updates to this field will trigger a destroy and recreate
lifecycle { ignore_changes = [user_data] }
Claude exmaple
resource "aws_instance" "your_test_machine" {
# ...
user_data = <<-EOF
#!/bin/bash
echo "ubuntu:tupassword" | chpasswd
passwd -u ubuntu
EOF
}
Related
templatefile, *.tftplhttp://169.254.169.254/latest/user-data- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-add-user-data.html
/var/lib/cloud/instance/user-data.txtroot_block_deviceuser_data_replace_on_change- Cloud-init:
/var/log/cloud-init.log,/var/log/cloud-init-output.log - aws_volume_attachment
- Terraform lifecycle meta-argument
- aws ec2 enable-serial-console-access
See also
user_data, .tftpl, templatefile- Terraform AWS:
aws_instance:ami,availability_zone,instance_type,key_name,aws_key_pair,monitoring,associate_public_ip_address,tenancy,subnet_id, user_data, iam_instance_profile, vpc_security_group_ids, root_block_device, ebs_block_device, volume_size,disable_api_termination, disable_api_stop
Advertising: