一千萬個為什麽

搜索

通過terraform使用newuser創建實例



我想用“user1”而不是ec2-user(AW​​S)default來創建新實例。我希望通過terraform實現這一點。就像在azure terraform中一樣,它可以通過“os_profile {}”完成,但是如何通過terraform腳本在aws中完成?

轉載註明原文: 通過terraform使用newuser創建實例

一共有 1 個回答:

AWS AMI帶有默認用戶名 - 用戶名取決於啟動的特定AMI。 Amazon Linux AMI使用 ec2-user ,CentOS使用 centos ,還有其他組合。

如果要在實例啟動時創建自己的用戶,可以使用 EC2用戶數據,基本上需要傳遞將在發布時運行的自定義腳本。

user_data 參數 Terraform的 aws_instance 資源支持。您可以指定內聯腳本,但在大多數情況下,您可能希望使用外部文件或模板。

例如:

create-user.sh:

#!/usr/bin/env bash

useradd mytestuser

# Anything else you want to do to set up your user account

main.tf:

resource "aws_instance" "main" {
  ...
  user_data = "${file("create-user.sh")}"
}

或者,有一個關於渲染模板的示例這裏,如果您想要傳遞自定義值而不是僅提供靜態文件,這將非常有用。

或者,作為編寫自己的shell腳本的替代方法,您可以嘗試使用 template_cloudinit_config 。一些可能對此有用的資源包括此博客發布這部分cloudinit文檔