diff options
| -rw-r--r-- | CentOS/Dockerfile | 33 | ||||
| -rw-r--r-- | CentOS/gluster-setup.service | 10 | ||||
| -rw-r--r-- | CentOS/gluster-setup.sh | 69 | 
3 files changed, 107 insertions, 5 deletions
diff --git a/CentOS/Dockerfile b/CentOS/Dockerfile index 2b7f73a..ef5c86a 100644 --- a/CentOS/Dockerfile +++ b/CentOS/Dockerfile @@ -1,4 +1,4 @@ -FROM centos +FROM centos:latest  MAINTAINER Humble Chirammal hchiramm@redhat.com @@ -17,21 +17,44 @@ rm -f /lib/systemd/system/anaconda.target.wants/*;  RUN yum --setopt=tsflags=nodocs -y install wget nfs-utils attr iputils iproute -RUN wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/EPEL.repo/glusterfs-epel.repo -O /etc/yum.repos.d/glusterfs-epel.repo +RUN wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo -O /etc/yum.repos.d/glusterfs-epel.repo  RUN wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm; rpm -ivh epel-release-latest-7.noarch.rpm; rm epel-release-latest-7.noarch.rpm; -RUN yum --setopt=tsflags=nodocs -y install glusterfs glusterfs-server glusterfs-geo-replication openssh-server -RUN yum clean all +RUN yum --setopt=tsflags=nodocs -y install openssh-server openssh-clients ntp rsync tar cronie sudo xfsprogs glusterfs glusterfs-server glusterfs-geo-replication;yum clean all;  RUN echo 'root:password' | chpasswd  VOLUME [ "/sys/fs/cgroup" ] +RUN sed -i '/Defaults    requiretty/c\#Defaults    requiretty' /etc/sudoers -EXPOSE 22 111 245 443 24007 2049 8080 6010 6011 6012 38465 38466 38468 38469 49152 49153 49154 49156 49157 49158 49159 49160 49161 49162 49163 +# Changing the port of sshd to avoid conflicting with host sshd +RUN sed -i '/Port 22/c\Port 2222' /etc/ssh/sshd_config + +# Backing up gluster config as it overlaps when bind mounting. +RUN mkdir -p /etc/glusterfs_bkp /var/lib/glusterd_bkp /var/log/glusterfs_bkp;\ +cp -r /etc/glusterfs/* /etc/glusterfs_bkp;\ +cp -r /var/lib/glusterd/* /var/lib/glusterd_bkp;\ +cp -r /var/log/glusterfs/* /var/log/glusterfs_bkp; + +# Adding script to move the glusterfs config file to location +ADD gluster-setup.service /etc/systemd/system/gluster-setup.service +RUN chmod 644 /etc/systemd/system/gluster-setup.service + +# Adding script to move the glusterfs config file to location +ADD gluster-setup.sh /usr/sbin/gluster-setup.sh +RUN chmod 500 /usr/sbin/gluster-setup.sh + +RUN echo 'root:password' | chpasswd +VOLUME [ “/sys/fs/cgroup” ]  RUN systemctl disable nfs-server.service +RUN systemctl enable ntpd.service  RUN systemctl enable rpcbind.service  RUN systemctl enable glusterd.service +RUN systemctl enable gluster-setup.service + +EXPOSE 2222 111 245 443 24007 2049 8080 6010 6011 6012 38465 38466 38468 38469 49152 49153 49154 49156 49157 49158 49159 49160 49161 49162  CMD ["/usr/sbin/init"] + diff --git a/CentOS/gluster-setup.service b/CentOS/gluster-setup.service new file mode 100644 index 0000000..4cccd57 --- /dev/null +++ b/CentOS/gluster-setup.service @@ -0,0 +1,10 @@ +[Unit] +Description=Configuring GlusterFS in container +Before=rpcbind.service + +[Service] +Type=oneshot +ExecStart=/usr/sbin/gluster-setup.sh + +[Install] +WantedBy=multi-user.target diff --git a/CentOS/gluster-setup.sh b/CentOS/gluster-setup.sh new file mode 100644 index 0000000..98570f5 --- /dev/null +++ b/CentOS/gluster-setup.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +### +# Description: Script to move the glusterfs initial setup to bind mounted directories of Atomic Host. +# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com> +# +# This file is part of GlusterFS. +# +# This file is licensed to you under your choice of the GNU Lesser +# General Public License, version 3 or any later version (LGPLv3 or +# later), or the GNU General Public License, version 2 (GPLv2), in all +# cases as published by the Free Software Foundation. +### + +main () { +  if test "$(ls /var/lib/heketi/fstab)" +  then +        mount -a --fstab /var/lib/heketi/fstab +        if [ $? -eq 1 ] +        then +              echo "mount failed" +              exit 1 +        fi +        echo "Mount Successful" +  else +        echo "heketi-fstab not found" +  fi +  DIR_1="/etc/glusterfs" +  DIR_2="/var/log/glusterfs" +  DIR_3="/var/lib/glusterd" +  var=0 +  for i in $DIR_1 $DIR_2 $DIR_3 +  do +    if test "$(ls $i)" +    then +      echo "$i is not empty" +      var=$((var+1)) +    fi +  done + +  if [ $var -eq 3 ] +  then +        exit 1 +  fi +   +  cp -r /etc/glusterfs_bkp/* /etc/glusterfs +  if [ $? -eq 1 ] +  then +	echo "Failed to copy $DIR_1"  +        exit 1 +  fi + +  cp -r /var/log/glusterfs_bkp/* /var/log/glusterfs +  if [ $? -eq 1 ] +  then +	echo "Failed to copy $DIR_2" +        exit 1 +  fi + +  cp -r /var/lib/glusterd_bkp/* /var/lib/glusterd +  if [ $? -eq 1 ] +  then +	echo "Failed to copy $DIR_3" +	exit 1 +  fi +  +  echo "Script Ran Successfully" +} +main  | 
