Packer piplines and workflow
2024-10-06 06:01:29
packer对docker和aws AMI的支持都很好,来上个图:
配套的模版长这样:
{ "variables": { "name": "webimage", "namespace": "jamtur01", "fqdn": "webapp.example.com", "osName": "ubuntu", "osVersion": "17.04", "ami": "ami-a025aeb6", "aws_region": "us-east-1", "aws_access_key": "", "aws_secret_key": "" }, "builders": [{ "type": "docker", "image": "{{user `osName`}}:{{user `osVersion`}}", "commit": true }, { "type": "amazon-ebs", "access_key": "{{user `aws_access_key`}}", "secret_key": "{{user `aws_secret_key`}}", "region": "{{user `aws_region`}}", "source_ami": "{{user `ami`}}", "instance_type": "t2.micro", "ssh_username": "ubuntu", "ami_name": "{{user `fqdn`}}-{{timestamp | clean_ami_name}}", "ami_description": "Web Application Image", "tags": { "name": "{{user `name`}}", "namespace": "{{user `namespace`}}", "fqn": "{{user `fqdn`}}", "os": "{{user `osName`}} {{user `osVersion`}}", "built": "{{isotime}}" } } ], "provisioners": [ { "type": "file", "source": "Gemfile", "destination": "/tmp/Gemfile" }, { "type": "shell", "script": "provision.sh", "override": { "amazon-ebs": { "execute_command": "sudo {{.Path}}" } } } ], "post-processors": [ [ { "type": "docker-tag", "repository": "{{user `namespace`}}/{{user `name`}}", "tag": "{{user `fqdn`}}", "only": ["docker"] }, { "type": "docker-push", "only": ["docker"] } ] ] }
再来一张在CI中使用packer的图:
最新文章
- linQ学习笔记之三高级语句
- RPM方式安装MySQL5.6
- URL 路径长度限制(错误:指定的文件或文件夹名称太长)
- 当kfreebsd 用户遇见openSUSE系统
- 简明Vim练级攻略(转载)
- [MySQL] 常用SQL的优化--18.4
- CAF(C++ actor framework)使用随笔(同步发送 异步与同步等待)(三)
- .NET 操作PDF文档以及PDF文件打印摸索总结
- CodeForces 591B
- Unix/Linux环境C编程入门教程(33) 命令和鼠标管理用户和组
- Swift语言iOS8的蓝牙Bluetooth解析
- Activity详细解释(生命周期、以各种方式启动Activity、状态保存,等完全退出)
- HDU1548:A strange lift(Dijkstra或BFS)
- SOFA 源码分析 —— 过滤器设计
- Laravel框架中打印sql
- 初识redux走向redux-react
- python 3 字符编码解码问题
- 用智能TFT液晶模块这种串口屏做产品界面设计太简单了,大大的节省了开发时间
- 萌新接触前端的第一课——HTML
- Android开发——官方推荐使用DialogFragment替换AlertDialog