相关疑难解决方法(0)

带有Packer的AWS user_data

所以我正在尝试使用Packer创建AWS映像并通过user_data_file指定一些用户数据.实例启动时需要运行此文件的内容,因为每次实例都是唯一的.我不能把它加入AMI.

使用打包器我有以下内容:

{
  "variables": {
  "ami_name": ""
  },
  "builders": [
  {
    "type": "amazon-ebs",
    "region": "us-east-1",
    "source_ami": "ami-c8580bdf",
    "instance_type": "t2.micro",
    "ssh_username": "ubuntu",
    "ami_name": "{{ user `ami_name` }}-{{ isotime | clean_ami_name }}",
    "user_data_file": "user_data.sh",
    "tags": {
      "os_version": "ubuntu",
      "built_by": "packer",
      "build_on": "{{ isotime | clean_ami_name }}",
      "Name": "{{ user `ami_name` }}"
    }
  }],
  "provisioners": [
  {
    "type": "ansible",
    "playbook_file": "playbook.yml",
    "user": "ubuntu"
  }]
}
Run Code Online (Sandbox Code Playgroud)

我的user_data shell脚本的内容只是通过在供应商步骤中运行的ansible脚本安装的软件包的几个基本配置行.观察Packer的输出我可以确认ansible脚本全部运行.

Packer完成并创建AMI,但永远不会执行用户数据.结果图像中不存在任何记录.没有/userdata.log文件并且/var/lib/cloud/instance/user-data.txt是空的我觉得我错过了一些基本的东西,因为这应该是一个非常简单的事情与Packer.

amazon-ec2 packer amazon-web-services user-data

9
推荐指数
2
解决办法
4361
查看次数