From a37aa2f59a01c62111d3689f2695c607dee332af Mon Sep 17 00:00:00 2001 From: hchiramm Date: Tue, 7 Jun 2016 13:11:53 +0530 Subject: Updating Dockerfile with setup scripts Signed-off-by: hchiramm --- 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 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. +# +# 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.1