1 Antwort
- Neueste
- Die meisten Stimmen
- Die meisten Kommentare
0
【以下的回答经过翻译处理】 你描述的可以使用user-data实现,但是需要写一些复杂脚本而且并不优雅,但是确实可以实现。
然而,如果你不介意的话,我想推荐使用Packer https://www.packer.io/
为什么呢?因为使用packer,你可以构建常称为Golden AMI的黄金镜像,可以在部署实例时推送和使用这样的AMI。现在,配置管理的设置可以使用Packer所谓的“Provisioners”来实现,下面是你可能会感兴趣的Provisioner的示例,并且如果你真的想要一个简洁的方式来配置AMI中的各种配置的话,可以使用Ansible作为Provisioner,并利用Ansible的Playbooks或Roles来定义你的任务。
"variables": {
"aws_access_key": "{{env `AWS_ACCESS_KEY_ID`}}",
"aws_secret_key": "{{env `AWS_SECRET_ACCESS_KEY`}}",
"region": "us-east-1"
},
"builders": [
{
"access_key": "{{user `aws_access_key`}}",
"secret_key": "{{user `aws_secret_key`}}",
"type": "amazon-ebs",
"profile": "default",
"region": "{{user `region`}}",
"instance_type": "t2.micro",
"ssh_username": "centos",
"source_ami" : "ami-0affd4508a5d2481b",
"ami_name": "centos-aws-demo-{{timestamp}}",
"ami_description":"CentOS Linux 7 x86_64 HVM EBS ENA 2002_01 with docker",
"run_tags" : {
"Name" : "packer-builder-docker",
"Tool" : "Packer",
"Author" : "DavidCaballero"
},
"tags": {
"Name": "centos-aws-demo"
}
}
],
"provisioners": [
{
"type": "file",
"source": "./welcome.txt",
"destination": "/home/centos/"
},
{
"type": "shell",
"inline": ["ls -al /home/centos", "cat /home/centos/welcome.txt"]
},
{
"type": "shell",
"script": "./docker_install.sh"
},
{
"type": "ansible",
"playbook_file": "./playbooks/hostname.yml"
}
]
}```
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 9 Monaten