繁体   English   中英

Ansible docker postgres卷

[英]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卷的代码

请询问您需要的任何信息,所有帮助都深为感谢

这是一个清单:

  1. 将EBS卷(磁盘)附加到EC2实例(例如/dev/xvdh

  2. 进行分区(可选)(例如/dev/xvdh1

  3. 在分区/磁盘上创建文件系统

  4. 在您的EC2实例中挂载文件系统(例如/opt/ebs_data

  5. 用卷启动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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM