From a37aa2f59a01c62111d3689f2695c607dee332af Mon Sep 17 00:00:00 2001
From: hchiramm <hchiramm@redhat.com>
Date: Tue, 7 Jun 2016 13:11:53 +0530
Subject: Updating Dockerfile with setup scripts

Signed-off-by: hchiramm <hchiramm@redhat.com>
---
 CentOS/Dockerfile            | 33 +++++++++++++++++----
 CentOS/gluster-setup.service | 10 +++++++
 CentOS/gluster-setup.sh      | 69 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 107 insertions(+), 5 deletions(-)
 create mode 100644 CentOS/gluster-setup.service
 create mode 100644 CentOS/gluster-setup.sh

(limited to 'CentOS')

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
-- 
cgit v1.2.3