[英]ansible docker postgres volume
我正在使用aws中的docker,ansible和terraform进行一些postgres部署
事情进展得比较顺利,我用terraform启动了实例,使用ansible向docker提供了实例,也用ansible启动了我的postgres容器,并将ebs卷附加到我的实例上,我打算将其用作主要数据存储。
但是我对如何将卷附加到docker感到困惑(因为我能够使用terraform做到这一点而不是实例)
我想象有可能使用ansible或修改dockerfile,但是对我来说,似乎可以解决问题的“ volume ”文档尚不清楚。
因此,如果我有这样一个有趣的剧本:
name: Start postgis
docker_container:
name: postgis
image: "{{ ecr_url }}"
network_mode: bridge
exposed_ports:
5432
published_ports:
5432:5432
state: started
我将如何指定用于Postgres数据存储的ebs卷?
resource "aws_volume_attachment" "ebs-volume-postgis-attach" {
device_name = "/dev/xvdh"
volume_id = "${aws_ebs_volume.ebs-volume-postgis.id}"
instance_id = "${aws_instance.postgis.id}"
}
如果有人感兴趣,这就是用于附加ebs卷的代码
请询问您需要的任何信息,所有帮助都深为感谢
这是一个清单:
将EBS卷(磁盘)附加到EC2实例(例如/dev/xvdh
)
进行分区(可选)(例如/dev/xvdh1
)
在分区/磁盘上创建文件系统
在您的EC2实例中挂载文件系统(例如/opt/ebs_data
)
用卷启动Docker容器(例如/opt/ebs_data:/var/lib/postgresql/data
)
在Ansible的docker_container
模块中, volumes
是一个列表,因此:
- docker_container:
name: postgis
image: "{{ ecr_url }}"
network_mode: bridge
exposed_ports:
- 5432
published_ports:
- 5432:5432
state: started
volumes:
- /opt/ebs_data:/var/lib/postgresql/data
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.