From 4066dceedf3d2a1e2172b8d165fd7f4406d23360 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Mon, 10 Jul 2017 15:17:47 +0200 Subject: [PATCH 01/14] Base setup for ALICE --- eos-tag.repo | 13 +++++++++++++ projects/alice/Dockerfile.alice | 20 ++++++++++++++++++++ projects/alice/Dockerfile.base | 30 ++++++++++++++++++++++++++++++ projects/alice/README.md | 13 +++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 eos-tag.repo create mode 100644 projects/alice/Dockerfile.alice create mode 100644 projects/alice/Dockerfile.base create mode 100644 projects/alice/README.md diff --git a/eos-tag.repo b/eos-tag.repo new file mode 100644 index 0000000..e75731f --- /dev/null +++ b/eos-tag.repo @@ -0,0 +1,13 @@ +[eos] +name=EOS 4 Version +baseurl=http://storage-ci.web.cern.ch/storage-ci/eos/citrine/tag/el-7/x86_64/ +gpgcheck=0 +enabled=1 +npriority=4 + +[eos-depend] +name=EOS 4 Dependencies +baseurl=http://storage-ci.web.cern.ch/storage-ci/eos/citrine-depend/el-7/x86_64/ +gpgcheck=0 +enabled=1 +npriority=4 diff --git a/projects/alice/Dockerfile.alice b/projects/alice/Dockerfile.alice new file mode 100644 index 0000000..b7136a3 --- /dev/null +++ b/projects/alice/Dockerfile.alice @@ -0,0 +1,20 @@ +# +# BASE EOS Docker file (installation only) +# +# BUILD : docker build -t eos/eos-alice -f projects/alice/Dockerfile.alice . +# +# Version 0.1 + +FROM eos/eos-base +MAINTAINER Martin Vala, mvala@cern.ch, CERN 2017 + +RUN yum install -y --nogpg xrootd-alicetokenacc + +#RUN xrdsssadmin -k eos -u daemon -g daemon add /etc/eos.keytab >& /dev/null; \ +# chown daemon:daemon /etc/eos.keytab >& /dev/null ; \ +# chmod 400 /etc/eos.keytab; + +# Clean yum cache +RUN yum clean all + +ENTRYPOINT ["/bin/bash"] diff --git a/projects/alice/Dockerfile.base b/projects/alice/Dockerfile.base new file mode 100644 index 0000000..19b0db7 --- /dev/null +++ b/projects/alice/Dockerfile.base @@ -0,0 +1,30 @@ +# +# BASE EOS Docker file (installation only) +# +# BUILD : docker build -t eos/eos-base -f projects/alice/Dockerfile.base . +# +# Version 0.1 + +FROM centos:7 +MAINTAINER Elvin Sindrilaru, esindril@cern.ch, CERN 2017 +MAINTAINER Martin Vala, mvala@cern.ch, CERN 2017 + +RUN yum install -y epel-release + +# Add required repositories +ADD eos-tag.repo /etc/yum.repos.d/eos.repo + +# Instal XRootD +RUN yum -y --nogpg update; \ + yum -y --nogpg install \ + initscripts krb5-workstation \ + xrootd \ + xrootd-client \ + xrootd-client-libs \ + xrootd-libs \ + xrootd-server-devel \ + xrootd-server-libs \ + eos-server quarkdb; \ + yum clean all + +ENTRYPOINT ["/bin/bash"] diff --git a/projects/alice/README.md b/projects/alice/README.md new file mode 100644 index 0000000..0987b68 --- /dev/null +++ b/projects/alice/README.md @@ -0,0 +1,13 @@ +# ALICE EOS SE + +## Building EOS/ALICE docker images + +### Base EOS image +``` +docker build -t eos/eos-base -f projects/alice/Dockerfile.base . +``` + +### ALICE EOS image +``` +docker build -t eos/eos-alice -f projects/alice/Dockerfile.alice . +``` -- GitLab From e3926a4816856c3ec4b3dce09869361f4336c291 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 21 Jul 2017 13:07:53 +0200 Subject: [PATCH 02/14] Added eos-docker-utils and added systemd support --- eos-docker-utils.repo | 10 ++++++++++ projects/alice/Dockerfile.alice | 11 ++++++----- projects/alice/Dockerfile.base | 22 +++++++++++++++++++--- 3 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 eos-docker-utils.repo diff --git a/eos-docker-utils.repo b/eos-docker-utils.repo new file mode 100644 index 0000000..2fe1bd7 --- /dev/null +++ b/eos-docker-utils.repo @@ -0,0 +1,10 @@ +[mvala-eos-docker-utils] +name=Copr repo for eos-docker-utils owned by mvala +baseurl=https://copr-be.cloud.fedoraproject.org/results/mvala/eos-docker-utils/epel-7-$basearch/ +type=rpm-md +skip_if_unavailable=True +gpgcheck=1 +gpgkey=https://copr-be.cloud.fedoraproject.org/results/mvala/eos-docker-utils/pubkey.gpg +repo_gpgcheck=0 +enabled=1 +enabled_metadata=1 \ No newline at end of file diff --git a/projects/alice/Dockerfile.alice b/projects/alice/Dockerfile.alice index b7136a3..a70484d 100644 --- a/projects/alice/Dockerfile.alice +++ b/projects/alice/Dockerfile.alice @@ -3,18 +3,19 @@ # # BUILD : docker build -t eos/eos-alice -f projects/alice/Dockerfile.alice . # +# RUN : docker run --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 1094:1094 eos/eos-alice +# # Version 0.1 FROM eos/eos-base MAINTAINER Martin Vala, mvala@cern.ch, CERN 2017 -RUN yum install -y --nogpg xrootd-alicetokenacc +RUN yum install -y --nogpg xrootd-alicetokenacc eos-apmon -#RUN xrdsssadmin -k eos -u daemon -g daemon add /etc/eos.keytab >& /dev/null; \ -# chown daemon:daemon /etc/eos.keytab >& /dev/null ; \ -# chmod 400 /etc/eos.keytab; +# Some utils +RUN yum install -y mc nmap # Clean yum cache RUN yum clean all -ENTRYPOINT ["/bin/bash"] +CMD ["/usr/sbin/init"] \ No newline at end of file diff --git a/projects/alice/Dockerfile.base b/projects/alice/Dockerfile.base index 19b0db7..0beefe9 100644 --- a/projects/alice/Dockerfile.base +++ b/projects/alice/Dockerfile.base @@ -9,10 +9,24 @@ FROM centos:7 MAINTAINER Elvin Sindrilaru, esindril@cern.ch, CERN 2017 MAINTAINER Martin Vala, mvala@cern.ch, CERN 2017 +# from https://hub.docker.com/_/centos/ +ENV container docker +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ +systemd-tmpfiles-setup.service ] || rm -f $i; done); \ +rm -f /lib/systemd/system/multi-user.target.wants/*;\ +rm -f /etc/systemd/system/*.wants/*;\ +rm -f /lib/systemd/system/local-fs.target.wants/*; \ +rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ +rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ +rm -f /lib/systemd/system/basic.target.wants/*;\ +rm -f /lib/systemd/system/anaconda.target.wants/*; +VOLUME [ "/sys/fs/cgroup" ] + RUN yum install -y epel-release # Add required repositories ADD eos-tag.repo /etc/yum.repos.d/eos.repo +ADD eos-docker-utils.repo /etc/yum.repos.d/eos-docker-utils.repo # Instal XRootD RUN yum -y --nogpg update; \ @@ -24,7 +38,9 @@ RUN yum -y --nogpg update; \ xrootd-libs \ xrootd-server-devel \ xrootd-server-libs \ - eos-server quarkdb; \ + eos-server quarkdb \ + eos-docker-utils; \ + systemctl enable eos; \ yum clean all - -ENTRYPOINT ["/bin/bash"] + +CMD ["/usr/sbin/init"] -- GitLab From 96d9fc7f3a0dd64d9d7ce5eebadc3431165b5dbb Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 21 Jul 2017 13:09:41 +0200 Subject: [PATCH 03/14] Added --nogpg to be consistent --- projects/alice/Dockerfile.alice | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/alice/Dockerfile.alice b/projects/alice/Dockerfile.alice index a70484d..a8cd434 100644 --- a/projects/alice/Dockerfile.alice +++ b/projects/alice/Dockerfile.alice @@ -13,7 +13,7 @@ MAINTAINER Martin Vala, mvala@cern.ch, CERN 2017 RUN yum install -y --nogpg xrootd-alicetokenacc eos-apmon # Some utils -RUN yum install -y mc nmap +RUN yum install -y --nogpg mc nmap # Clean yum cache RUN yum clean all -- GitLab From e23aecd97591c43ebf0d1cda3eeed096e3fea1ca Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 21 Jul 2017 13:53:14 +0200 Subject: [PATCH 04/14] Added build script --- projects/alice/Dockerfile.alice | 2 +- projects/alice/scripts/build.sh | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100755 projects/alice/scripts/build.sh diff --git a/projects/alice/Dockerfile.alice b/projects/alice/Dockerfile.alice index a8cd434..0eb2c89 100644 --- a/projects/alice/Dockerfile.alice +++ b/projects/alice/Dockerfile.alice @@ -7,7 +7,7 @@ # # Version 0.1 -FROM eos/eos-base +FROM mvala/eos-base MAINTAINER Martin Vala, mvala@cern.ch, CERN 2017 RUN yum install -y --nogpg xrootd-alicetokenacc eos-apmon diff --git a/projects/alice/scripts/build.sh b/projects/alice/scripts/build.sh new file mode 100755 index 0000000..16e17a8 --- /dev/null +++ b/projects/alice/scripts/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# $ cd <eos-docker root dir> +# $ projects/alice/scripts/build.sh + +DOCKER_CMD="sudo docker" + +$DOCKER_CMD build --no-cache=true -t mvala/eos-base -f projects/alice/Dockerfile.base . +$DOCKER_CMD tag mvala/eos-base docker.io/mvala/eos-base +$DOCKER_CMD push docker.io/mvala/eos-base + +$DOCKER_CMD build --no-cache=true -t mvala/eos-alice -f projects/alice/Dockerfile.alice . +$DOCKER_CMD tag mvala/eos-alice docker.io/mvala/eos-alice +$DOCKER_CMD push docker.io/mvala/eos-alice -- GitLab From 24e046d028d240dae632ce1b6164df135c6e51bf Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 21 Jul 2017 14:00:16 +0200 Subject: [PATCH 05/14] Updated readme --- projects/alice/README.md | 54 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/projects/alice/README.md b/projects/alice/README.md index 0987b68..eeaffe9 100644 --- a/projects/alice/README.md +++ b/projects/alice/README.md @@ -1,13 +1,57 @@ # ALICE EOS SE -## Building EOS/ALICE docker images +# Installation -### Base EOS image +## Install docker and start service + +``` +yum install -y docker +systemctl start docker +systemctl enable docker +``` + +## Install eos-docker utils + +Centos 7 +``` +curl https://copr.fedorainfracloud.org/coprs/mvala/eos-docker-utils/repo/epel-7/mvala-eos-docker-utils-epel-7.repo -o /etc/yum.repos.d/mvala-eos-docker-utils-epel-7.repo +yum install eos-docker-utils ``` -docker build -t eos/eos-base -f projects/alice/Dockerfile.base . + +Fedora +``` +dnf copr enable mvala/eos-docker-utils +dnf install eos-docker-utils ``` -### ALICE EOS image +# Setup MGM + +## Generate config file + +For simple EOS storage +``` +eos-docker config ``` -docker build -t eos/eos-alice -f projects/alice/Dockerfile.alice . + +For ALICE EOS storage +``` +eos-docker config alice + +``` + +Now there should be ```/root/eos``` directory which contains all config files ```/root/eos/etc``` and all ```/var/eos``` and ```/var/log``` directory in ```/root/var``` + +## Starting EOS docker image (mgm|fst|mgmfst) +``` +eos-docker mgm start +``` + +## Stoping EOS docker image (mgm|fst|mgmfst) +``` +eos-docker mgm stop +``` + +## Entering EOS docker image (mgm|fst|mgmfst) ``` +docker exec -it eos-mgm /bin/bash +``` \ No newline at end of file -- GitLab From 1efe2028f435ace6e428729e7d9897597ac36613 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 21 Jul 2017 14:03:35 +0200 Subject: [PATCH 06/14] Updated doc --- projects/alice/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/alice/README.md b/projects/alice/README.md index eeaffe9..a078391 100644 --- a/projects/alice/README.md +++ b/projects/alice/README.md @@ -39,7 +39,7 @@ eos-docker config alice ``` -Now there should be ```/root/eos``` directory which contains all config files ```/root/eos/etc``` and all ```/var/eos``` and ```/var/log``` directory in ```/root/var``` +Now there should be ```/root/eos``` directory which contains all config files ```/root/eos/etc``` and all ```/var/eos``` and ```/var/log``` directory in ```/root/var```. One can backup ```/root/eos``` directory and move it to another machine end start eos docker without ```eos-docker config```. ## Starting EOS docker image (mgm|fst|mgmfst) ``` -- GitLab From 27a0783fbcf58ad7e9e47ebc894fd24e70adc1d0 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 21 Jul 2017 14:59:42 +0200 Subject: [PATCH 07/14] Added lcg-ca --- projects/alice/Dockerfile.alice | 7 ++++++- projects/alice/scripts/build.sh | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/projects/alice/Dockerfile.alice b/projects/alice/Dockerfile.alice index 0eb2c89..0bd3dd7 100644 --- a/projects/alice/Dockerfile.alice +++ b/projects/alice/Dockerfile.alice @@ -10,11 +10,16 @@ FROM mvala/eos-base MAINTAINER Martin Vala, mvala@cern.ch, CERN 2017 -RUN yum install -y --nogpg xrootd-alicetokenacc eos-apmon +RUN curl http://repository.egi.eu/sw/production/cas/1/current/repo-files/EGI-trustanchors.repo -o /etc/yum.repos.d/lcg-CA.repo + +RUN yum install -y --nogpg xrootd-alicetokenacc eos-apmon lcg-CA # Some utils RUN yum install -y --nogpg mc nmap +RUN rm -rf /etc/grid-security/certificates/nginx-bundle.pem >& /dev/null; \ + cat /etc/grid-security/certificates/*.pem > /etc/grid-security/certificates/nginx-bundle.pem + # Clean yum cache RUN yum clean all diff --git a/projects/alice/scripts/build.sh b/projects/alice/scripts/build.sh index 16e17a8..1a8805b 100755 --- a/projects/alice/scripts/build.sh +++ b/projects/alice/scripts/build.sh @@ -4,11 +4,13 @@ # $ projects/alice/scripts/build.sh DOCKER_CMD="sudo docker" +DOCKER_CLEAN_OPT="" +[ "$1" == "clean" ] && DOCKER_CLEAN_OPT="--no-cache=true" -$DOCKER_CMD build --no-cache=true -t mvala/eos-base -f projects/alice/Dockerfile.base . +$DOCKER_CMD build $DOCKER_CLEAN_OPT -t mvala/eos-base -f projects/alice/Dockerfile.base . $DOCKER_CMD tag mvala/eos-base docker.io/mvala/eos-base $DOCKER_CMD push docker.io/mvala/eos-base -$DOCKER_CMD build --no-cache=true -t mvala/eos-alice -f projects/alice/Dockerfile.alice . +$DOCKER_CMD build $DOCKER_CLEAN_OPT -t mvala/eos-alice -f projects/alice/Dockerfile.alice . $DOCKER_CMD tag mvala/eos-alice docker.io/mvala/eos-alice $DOCKER_CMD push docker.io/mvala/eos-alice -- GitLab From d0f30584ff438ae2954cfe7ccae306145aa8521f Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 21 Jul 2017 15:48:54 +0200 Subject: [PATCH 08/14] Disabling eos by default --- projects/alice/Dockerfile.alice | 2 ++ projects/alice/README.md | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/projects/alice/Dockerfile.alice b/projects/alice/Dockerfile.alice index 0bd3dd7..858c87b 100644 --- a/projects/alice/Dockerfile.alice +++ b/projects/alice/Dockerfile.alice @@ -23,4 +23,6 @@ RUN rm -rf /etc/grid-security/certificates/nginx-bundle.pem >& /dev/null; \ # Clean yum cache RUN yum clean all +RUN systemctl disable eos + CMD ["/usr/sbin/init"] \ No newline at end of file diff --git a/projects/alice/README.md b/projects/alice/README.md index a078391..f96c58a 100644 --- a/projects/alice/README.md +++ b/projects/alice/README.md @@ -26,6 +26,23 @@ dnf install eos-docker-utils # Setup MGM +## Setup certificate +``` +mkdir -p /etc/grid-security/daemon/ +cp hostkey.pem /etc/grid-security/ +cp hostkey.pem /etc/grid-security/daemon/ +cp hostcert.pem /etc/grid-security/ +cp hostcert.pem /etc/grid-security/daemon/ + +chmod 400 /etc/grid-security/hostkey.pem +chmod 600 /etc/grid-security/hostcert.pem + +chmod 400 /etc/grid-security/daemon/hostkey.pem +chmod 600 /etc/grid-security/daemon/hostcert.pem +chown -R daemon:daemon /etc/grid-security/daemon +``` + + ## Generate config file For simple EOS storage -- GitLab From ec49a49c31b17cf93522f6da15a8c1d012910287 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Mon, 24 Jul 2017 10:50:08 +0200 Subject: [PATCH 09/14] Added pssh --- projects/alice/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/alice/Dockerfile.base b/projects/alice/Dockerfile.base index 0beefe9..8e8d44e 100644 --- a/projects/alice/Dockerfile.base +++ b/projects/alice/Dockerfile.base @@ -39,7 +39,7 @@ RUN yum -y --nogpg update; \ xrootd-server-devel \ xrootd-server-libs \ eos-server quarkdb \ - eos-docker-utils; \ + eos-docker-utils pssh; \ systemctl enable eos; \ yum clean all -- GitLab From c9ff65f386459b85432c6f4f8823b048b788d2dc Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Tue, 25 Jul 2017 09:48:51 +0200 Subject: [PATCH 10/14] Disabling eos service by default and move it to base docker image --- projects/alice/Dockerfile.alice | 2 -- projects/alice/Dockerfile.base | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/alice/Dockerfile.alice b/projects/alice/Dockerfile.alice index 858c87b..0bd3dd7 100644 --- a/projects/alice/Dockerfile.alice +++ b/projects/alice/Dockerfile.alice @@ -23,6 +23,4 @@ RUN rm -rf /etc/grid-security/certificates/nginx-bundle.pem >& /dev/null; \ # Clean yum cache RUN yum clean all -RUN systemctl disable eos - CMD ["/usr/sbin/init"] \ No newline at end of file diff --git a/projects/alice/Dockerfile.base b/projects/alice/Dockerfile.base index 8e8d44e..dfb4769 100644 --- a/projects/alice/Dockerfile.base +++ b/projects/alice/Dockerfile.base @@ -42,5 +42,7 @@ RUN yum -y --nogpg update; \ eos-docker-utils pssh; \ systemctl enable eos; \ yum clean all + +RUN systemctl disable eos CMD ["/usr/sbin/init"] -- GitLab From 9084a530ea4a10585e57dfd0ccb2dfd19ae67711 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 28 Jul 2017 13:14:19 +0200 Subject: [PATCH 11/14] Added net-tools for alice case --- projects/alice/Dockerfile.alice | 2 +- projects/alice/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/alice/Dockerfile.alice b/projects/alice/Dockerfile.alice index 0bd3dd7..491f0dc 100644 --- a/projects/alice/Dockerfile.alice +++ b/projects/alice/Dockerfile.alice @@ -12,7 +12,7 @@ MAINTAINER Martin Vala, mvala@cern.ch, CERN 2017 RUN curl http://repository.egi.eu/sw/production/cas/1/current/repo-files/EGI-trustanchors.repo -o /etc/yum.repos.d/lcg-CA.repo -RUN yum install -y --nogpg xrootd-alicetokenacc eos-apmon lcg-CA +RUN yum install -y --nogpg xrootd-alicetokenacc net-tools eos-apmon lcg-CA # Some utils RUN yum install -y --nogpg mc nmap diff --git a/projects/alice/README.md b/projects/alice/README.md index f96c58a..b4b5995 100644 --- a/projects/alice/README.md +++ b/projects/alice/README.md @@ -36,9 +36,9 @@ cp hostcert.pem /etc/grid-security/daemon/ chmod 400 /etc/grid-security/hostkey.pem chmod 600 /etc/grid-security/hostcert.pem - chmod 400 /etc/grid-security/daemon/hostkey.pem chmod 600 /etc/grid-security/daemon/hostcert.pem + chown -R daemon:daemon /etc/grid-security/daemon ``` -- GitLab From 91dbc30fdb2ce7efdbaa903c02ecb0b6898445f0 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Wed, 2 Aug 2017 10:52:11 +0200 Subject: [PATCH 12/14] Improved documentation --- projects/alice/README.md | 157 ++++++++++++++++++++-------------- projects/alice/doc/eos-fst.md | 33 +++++++ projects/alice/doc/eos-mgm.md | 65 ++++++++++++++ 3 files changed, 193 insertions(+), 62 deletions(-) create mode 100644 projects/alice/doc/eos-fst.md create mode 100644 projects/alice/doc/eos-mgm.md diff --git a/projects/alice/README.md b/projects/alice/README.md index b4b5995..26a8d94 100644 --- a/projects/alice/README.md +++ b/projects/alice/README.md @@ -3,72 +3,105 @@ # Installation ## Install docker and start service - +> Note that MGM and all FSTs has to have docker installed and it should be running ``` yum install -y docker systemctl start docker systemctl enable docker ``` -## Install eos-docker utils - -Centos 7 -``` -curl https://copr.fedorainfracloud.org/coprs/mvala/eos-docker-utils/repo/epel-7/mvala-eos-docker-utils-epel-7.repo -o /etc/yum.repos.d/mvala-eos-docker-utils-epel-7.repo -yum install eos-docker-utils -``` - -Fedora -``` -dnf copr enable mvala/eos-docker-utils -dnf install eos-docker-utils -``` - -# Setup MGM - -## Setup certificate -``` -mkdir -p /etc/grid-security/daemon/ -cp hostkey.pem /etc/grid-security/ -cp hostkey.pem /etc/grid-security/daemon/ -cp hostcert.pem /etc/grid-security/ -cp hostcert.pem /etc/grid-security/daemon/ - -chmod 400 /etc/grid-security/hostkey.pem -chmod 600 /etc/grid-security/hostcert.pem -chmod 400 /etc/grid-security/daemon/hostkey.pem -chmod 600 /etc/grid-security/daemon/hostcert.pem - -chown -R daemon:daemon /etc/grid-security/daemon -``` - - -## Generate config file - -For simple EOS storage -``` -eos-docker config -``` - -For ALICE EOS storage -``` -eos-docker config alice - -``` - -Now there should be ```/root/eos``` directory which contains all config files ```/root/eos/etc``` and all ```/var/eos``` and ```/var/log``` directory in ```/root/var```. One can backup ```/root/eos``` directory and move it to another machine end start eos docker without ```eos-docker config```. - -## Starting EOS docker image (mgm|fst|mgmfst) -``` -eos-docker mgm start -``` - -## Stoping EOS docker image (mgm|fst|mgmfst) -``` -eos-docker mgm stop -``` - -## Entering EOS docker image (mgm|fst|mgmfst) +# MGM and FST setup + +* [EOS MGM](doc/eos-mgm.md) +* [EOS FST](doc/eos-fst.md) + + +# Final check of EOS storage + +``` +[root@eosm01-iep-grid ~]# eos-mgm +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b space set default on +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b node ls +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b fs ls +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b space ls +``` +And try to copy testing file to our ALICE EOS storage +``` +echo "123" > test.eos.alice +[mvala@vala ~]$ aliensh + [ aliensh 1.0.140x (C) ARDA/Alice: Andreas.Joachim.Peters@cern.ch/Derek.Feichtinger@cern.ch] +aliensh:[alice] [1] /alice/cern.ch/user/m/mvala/ >cp file:test.eos.alice test.eos.alice@ALICE::Kosice::EOS +=> Creating replica 1/1 ... +[xrootd] Total 0.00 MB |====================| 100.00 % [inf MB/s] +aliensh:[alice] [2] /alice/cern.ch/user/m/mvala/ >rm test.eos.alice +Aug 1 09:54:07 info Updating file quotas of user mvala +Aug 1 09:54:07 info /alice/cern.ch/user/m/mvala/test.eos.alice was moved to booking table +aliensh:[alice] [3] /alice/cern.ch/user/m/mvala/ > +``` + +# Updating EOS docker images +> Note: This command will stop storage and clean current eos docker image and install latest one and start EOS storage. This update is done on MGM and all FSTs +``` +[root@eosm01-iep-grid ~]# eos-docker update +``` + + +# Final check of EOS storage example +``` +[root@eosm01-iep-grid ~]# eos-mgm +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b space set default on +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b node ls +170801 09:28:34 1114 secgsi_InitProxy: cannot access private key file: /root/.globus/userkey.pem +┌──────────┬────────────────────────────────┬────────────────┬──────────┬────────────┬──────┬──────────┬────────┬────────┬────────────────┬─────┠+│type │ hostport│ geotag│ status│ status│ txgw│ gw-queued│ gw-ntx│ gw-rate│ heartbeatdelta│ nofs│ +└──────────┴────────────────────────────────┴────────────────┴──────────┴────────────┴──────┴──────────┴────────┴────────┴────────────────┴─────┘ + nodesview eosf01-iep-grid.saske.sk:1095 test online off 0 10 120 1 36 + +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b fs ls +170801 09:28:38 1123 secgsi_InitProxy: cannot access private key file: /root/.globus/userkey.pem +┌────────────────────────┬────┬──────┬────────────────────────────────┬────────────────┬────────────────┬────────────┬──────────────┬────────────┬────────┬────────────────┠+│host │port│ id│ path│ schedgroup│ geotag│ boot│ configstatus│ drain│ active│ health│ +└────────────────────────┴────┴──────┴────────────────────────────────┴────────────────┴────────────────┴────────────┴──────────────┴────────────┴────────┴────────────────┘ + eosf01-iep-grid.saske.sk 1095 1 /var/eos/fs/0 default.0 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 2 /var/eos/fs/1 default.1 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 3 /var/eos/fs/10 default.2 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 4 /var/eos/fs/11 default.3 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 5 /var/eos/fs/12 default.4 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 6 /var/eos/fs/13 default.5 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 7 /var/eos/fs/14 default.6 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 8 /var/eos/fs/15 default.7 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 9 /var/eos/fs/16 default.8 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 10 /var/eos/fs/17 default.9 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 11 /var/eos/fs/18 default.10 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 12 /var/eos/fs/19 default.11 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 13 /var/eos/fs/2 default.12 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 14 /var/eos/fs/20 default.13 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 15 /var/eos/fs/21 default.14 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 16 /var/eos/fs/22 default.15 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 17 /var/eos/fs/23 default.16 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 18 /var/eos/fs/24 default.17 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 19 /var/eos/fs/25 default.18 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 20 /var/eos/fs/26 default.19 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 21 /var/eos/fs/27 default.20 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 22 /var/eos/fs/28 default.21 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 23 /var/eos/fs/29 default.22 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 24 /var/eos/fs/3 default.23 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 25 /var/eos/fs/30 default.24 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 26 /var/eos/fs/31 default.25 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 27 /var/eos/fs/32 default.26 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 28 /var/eos/fs/33 default.27 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 29 /var/eos/fs/34 default.28 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 30 /var/eos/fs/35 default.29 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 31 /var/eos/fs/4 default.30 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 32 /var/eos/fs/5 default.31 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 33 /var/eos/fs/6 default.32 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 34 /var/eos/fs/7 default.33 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 35 /var/eos/fs/8 default.34 test booted rw nodrain N/A + eosf01-iep-grid.saske.sk 1095 36 /var/eos/fs/9 default.35 test booted rw nodrain N/A +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b space ls +170801 09:29:06 1171 secgsi_InitProxy: cannot access private key file: /root/.globus/userkey.pem +┌──────────┬────────────────┬────────────┬────────────┬──────┬─────────┬───────────────┬──────────────┬─────────────┬─────────────┬──────┬──────────┬───────────┬───────────┬──────┬────────┬───────────┬──────┬────────┬───────────┠+│type │ name│ groupsize│ groupmod│ N(fs)│ N(fs-rw)│ sum(usedbytes)│ sum(capacity)│ capacity(rw)│ nom.capacity│ quota│ balancing│ threshold│ converter│ ntx│ active│ wfe│ ntx│ active│ intergroup│ +└──────────┴────────────────┴────────────┴────────────┴──────┴─────────┴───────────────┴──────────────┴─────────────┴─────────────┴──────┴──────────┴───────────┴───────────┴──────┴────────┴───────────┴──────┴────────┴───────────┘ + spaceview default 0 24 36 36 1.26 G 215.94 T 215.94 T 0 off off 20 off 2 0 0 0 off ``` -docker exec -it eos-mgm /bin/bash -``` \ No newline at end of file diff --git a/projects/alice/doc/eos-fst.md b/projects/alice/doc/eos-fst.md new file mode 100644 index 0000000..772d380 --- /dev/null +++ b/projects/alice/doc/eos-fst.md @@ -0,0 +1,33 @@ + +# Setup and and FSTs server(s) on MGM +> Note: All FSTs are controlled from MGM pysical machine (root@eosm01-iep-grid) and not from MGM container + +Add FST hostnames to /root/eos/eos-docker-fst-hosts.cf +``` +[root@eosm01-iep-grid ~]# echo "eosf01-iep-grid.saske.sk" >> /root/eos/eos-docker-fst-hosts.cf +``` +> Note : We assume that you have without password ssh to fsts + +To setup and start fst run following command +``` +[root@eosm01-iep-grid ~]# eos-docker-ssh start +``` + +When process finishes, one can look via eos-mgm container that new node showed up +``` +[root@eosm01-iep-grid ~]# eos-mgm +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b node ls +170728 12:12:21 1744 secgsi_InitProxy: cannot access private key file: /root/.globus/userkey.pem +┌──────────┬────────────────────────────────┬────────────────┬──────────┬────────────┬──────┬──────────┬────────┬────────┬────────────────┬─────┠+│type │ hostport│ geotag│ status│ status│ txgw│ gw-queued│ gw-ntx│ gw-rate│ heartbeatdelta│ nofs│ +└──────────┴────────────────────────────────┴────────────────┴──────────┴────────────┴──────┴──────────┴────────┴────────┴────────────────┴─────┘ + nodesview eosf01-iep-grid.saske.sk:1095 sav online on off 0 10 120 2 36 +[root@eosm01-iep-grid (eos-docker mgm) /]# exit +[root@eosm01-iep-grid ~]# +``` + +## Adding disks to file server +Run from mgm machine (not from docker container) +``` +[root@eosm01-iep-grid ~]# eos-docker-ssh disk-sync +``` \ No newline at end of file diff --git a/projects/alice/doc/eos-mgm.md b/projects/alice/doc/eos-mgm.md new file mode 100644 index 0000000..73c9437 --- /dev/null +++ b/projects/alice/doc/eos-mgm.md @@ -0,0 +1,65 @@ +# Setup MGM + +## Install eos-docker utils + +Centos 7 +``` +curl https://copr.fedorainfracloud.org/coprs/mvala/eos-docker-utils/repo/epel-7/mvala-eos-docker-utils-epel-7.repo -o /etc/yum.repos.d/mvala-eos-docker-utils-epel-7.repo +yum install eos-docker-utils +``` + +## Generate EOS docker config file + +Generate template EOS docker config file +``` +[root@eosm01-iep-grid ~]# eos-docker +``` + +Edit config eos-docker-config.cf and run init + + +For simple EOS storage +``` +[root@eosm01-iep-grid ~]# eos-docker init default +``` + +For ALICE EOS storage +``` +[root@eosm01-iep-grid ~]# eos-docker init alice + +``` + +Now there should be ```/root/eos``` directory which contains all config files ```/root/eos/etc``` and all ```/var/eos``` and ```/var/log``` directory in ```/root/eos/var```. + +## Setup certificate (For ALICE only) +``` +[root@eosm01-iep-grid ~]# eos-docker mgm cert-update +``` + +## Starting EOS MGM docker image +``` +[root@eosm01-iep-grid ~]# eos-docker mgm start +``` + +## Stoping EOS MGM docker image +``` +[root@eosm01-iep-grid ~]# eos-docker mgm stop +``` + +## Entering EOS MGM docker image +``` +[root@eosm01-iep-grid ~]# eos-mgm +``` +```eos-mgm``` is just alias to ```docker exec -it eos-mgm /bin/bash``` + +Check if eos default space is defined (run it in container) + +``` +[root@eosm01-iep-grid (eos-docker mgm) /]# eos -b space ls +``` +Now exit eos mgm container +``` +[root@eosm01-iep-grid (eos-docker mgm) /]# exit +[root@eosm01-iep-grid ~]# +``` +> Note '(eos-docker mgm)' is missing -- GitLab From 019a308e80f6b25cafbc83a3e7cbd0a73d4b9c10 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 4 Aug 2017 09:02:39 +0200 Subject: [PATCH 13/14] Firewall setting added --- projects/alice/doc/eos-fst.md | 14 +++++++++++++- projects/alice/doc/eos-mgm.md | 8 ++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/projects/alice/doc/eos-fst.md b/projects/alice/doc/eos-fst.md index 772d380..00b5235 100644 --- a/projects/alice/doc/eos-fst.md +++ b/projects/alice/doc/eos-fst.md @@ -1,7 +1,19 @@ # Setup and and FSTs server(s) on MGM + > Note: All FSTs are controlled from MGM pysical machine (root@eosm01-iep-grid) and not from MGM container +## FST prerequisites + +1. Mount all data disks to /var/eos/fs/XXX where XXX is 0,1,...,N disks/mounting points +2. Open ports 1095/tcp +``` +firewall-cmd --add-port=1095/tcp +firewall-cmd --add-port=1095/tcp --permanent +``` + +## FST installation + Add FST hostnames to /root/eos/eos-docker-fst-hosts.cf ``` [root@eosm01-iep-grid ~]# echo "eosf01-iep-grid.saske.sk" >> /root/eos/eos-docker-fst-hosts.cf @@ -26,7 +38,7 @@ When process finishes, one can look via eos-mgm container that new node showed u [root@eosm01-iep-grid ~]# ``` -## Adding disks to file server +## Adding or synchronizing disks disks to file server Run from mgm machine (not from docker container) ``` [root@eosm01-iep-grid ~]# eos-docker-ssh disk-sync diff --git a/projects/alice/doc/eos-mgm.md b/projects/alice/doc/eos-mgm.md index 73c9437..61b7e1b 100644 --- a/projects/alice/doc/eos-mgm.md +++ b/projects/alice/doc/eos-mgm.md @@ -8,6 +8,14 @@ curl https://copr.fedorainfracloud.org/coprs/mvala/eos-docker-utils/repo/epel-7/ yum install eos-docker-utils ``` +## Firewall setting +``` +firewall-cmd --add-port=1094/tcp +firewall-cmd --add-port=1094/tcp --permanent +firewall-cmd --add-port=1097/tcp +firewall-cmd --add-port=1097/tcp --permanent +``` + ## Generate EOS docker config file Generate template EOS docker config file -- GitLab From edeee67d1d1e784a46d03ec91a2be61ef8e98446 Mon Sep 17 00:00:00 2001 From: Martin Vala <mvala@saske.sk> Date: Fri, 4 Aug 2017 09:07:30 +0200 Subject: [PATCH 14/14] Stoping eos by default in docker image --- projects/alice/Dockerfile.base | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/alice/Dockerfile.base b/projects/alice/Dockerfile.base index dfb4769..5a7b6a5 100644 --- a/projects/alice/Dockerfile.base +++ b/projects/alice/Dockerfile.base @@ -43,6 +43,7 @@ RUN yum -y --nogpg update; \ systemctl enable eos; \ yum clean all -RUN systemctl disable eos +RUN systemctl stop eos ;\ + systemctl disable eos CMD ["/usr/sbin/init"] -- GitLab