美文网首页@DockerDockerDocker容器
搭建 Gluster 模拟环境(Vagrant与Docker)

搭建 Gluster 模拟环境(Vagrant与Docker)

作者: 左蓝 | 来源:发表于2017-03-03 23:53 被阅读267次

最近为了可以让一些内网运行的应用同步到外网,也就是在校内校外都可以访问我自己搭建在宿舍的服务,遂研究起了这些玩意。

Puppet-Gluster + Vagrant

$ sudo service nfs start
$ git clone --recursive https://github.com/purpleidea/puppet-gluster.git
$ cd puppet-gluster/vagrant/gluster/
$ vagrant up puppet && sudo -v && vagrant up

使用 virt-manager 就可以查看本地运行的虚拟机。

查看模拟环境

Docker

官方似乎提供了镜像,但是不怎么好用,自己写一个啦。
基于 Ubuntu 16.04,目录如下:

.
├── client
│   ├── run.sh
│   └── supervisord.conf
├── Dockerfile
├── Dockerfile.client
├── Dockerfile.server
└── server
    ├── prepare-gluster.sh
    ├── run.sh
    └── supervisord.conf

2 directories, 8 files

Server 与 Client 都是基于 Dockerfile 构建的,内容如下:

FROM ubuntu:16.04

RUN apt-get update && \
    apt-get install -y python-software-properties software-properties-common && \
    add-apt-repository -y ppa:gluster/glusterfs-3.10 && \
    apt-get update && \
    apt-get install -y supervisor glusterfs-client glusterfs-server && \
    apt-get autoremove -y python-software-properties software-properties-common && \
    apt-get autoclean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

这个镜像装了 glusterfs 的 client 与 server 两个软件,然后基于这个镜像分别构建客户端和服务端。

其中 Dockerfile.client 如下:

FROM zuolan/glusterfs

ENV GLUSTER_VOL_NAME vol
ENV GLUSTER_VOL_PATH /volume
ENV GLUSTER_PEER **ChangeMe**
ENV DEBUG 0

COPY client/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY client/*.sh /
RUN mkdir -p /var/log/supervisor ${GLUSTER_VOL_PATH} && \
    chmod +x /*.sh
WORKDIR ${GLUSTER_VOL_PATH}
VOLUME ["${GLUSTER_VOL_PATH}"]

CMD ["/run.sh"]

然后是 Dockerfile.server 的内容:

FROM zuolan/glusterfs

ENV GLUSTER_VOL_NAME vol
ENV GLUSTER_REPLICA 2
ENV GLUSTER_BRICK_PATH /volume
ENV GLUSTER_PEER **ChangeMe**
ENV SERVER_IP **ChangeMe**
ENV DEBUG 0

VOLUME ["/volume"]

COPY server/run.sh /run.sh
COPY server/prepare-gluster.sh /prepare-gluster.sh
COPY server/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN mkdir -p /var/log/supervisor && \
    chmod +x /*.sh

CMD ["/run.sh"]

两个容器运行在不同的服务器,然后数据卷会通过 NFS 同步。

完整源代码:https://github.com/izuolan/dockerfiles/tree/master/glusterfs

相关文章

  • 搭建 Gluster 模拟环境(Vagrant与Docker)

    最近为了可以让一些内网运行的应用同步到外网,也就是在校内校外都可以访问我自己搭建在宿舍的服务,遂研究起了这些玩意。...

  • Vagrant

    Vagrant 创建和部署虚拟开发环境,各种集群的测试环境的搭建用多个vagrant虚拟机来模拟。(1)下载工具V...

  • 搭建Vue + Vagrant 开发环境

    1. 搭建Vagrant的Vue环境 1.1 安装 Vagrant 环境 Vagrant 的安装方法这里就不在详...

  • vagrant

    vagrant可以用于本地快速搭建开发环境, 类似于docker. 可以基于virtualbox来运行各种镜像(b...

  • 8-11

    最近和同事pair学习docker和jenkins,任务是模拟AWS上使用docker并搭建jenkins环境,实...

  • 使用vagrant centos安装swoole应用环境

    使用过docker安装环境,蛮顺利的。最近就想着自己编译安装一下整个环境。之前接触过vagrant,搭建操作系统很...

  • vagrant学习笔记

    windows下vagrant使用 vagrant环境搭建 安装virtualbox: https://www.v...

  • Vagrant实战

    介绍 平时工作一直在Linux上做开发,Docker用的比较多,最近要用Vagrant搭建Linux开发环境,所以...

  • 学习Docker的一些工具

    Vagrant + VirtualBox使用Vagrant和VirtualBox可以快速搭建Linux开发环境 d...

  • 使用 vagrant 搭建自己的 Laravel 开发环境 fo

    标签: 工具 homestead PHP 环境搭建 什么是vagrant 网上对vagrant的介绍有很多,对于什...

网友评论

  • 魔哈Moha:可以考虑用glusterfs-kubernetes。利用heketi给k8s做三方api,容器使用卷会更灵活
    左蓝: @Magine1989 好的感谢提醒
  • 魔哈Moha:不错,很有借鉴之处。

本文标题:搭建 Gluster 模拟环境(Vagrant与Docker)

本文链接:https://www.haomeiwen.com/subject/amhdgttx.html