From da3e74fdcd79241d7e6966776f512a8b93e97647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Krup=C4=8D=C3=ADk?= <lukas.krupcik@vsb.cz> Date: Mon, 23 Jul 2018 08:20:05 +0200 Subject: [PATCH] new file: CentOS/7.5/CentOS-7.5-Bootstrap modified: Ubuntu/16.04-OpenFOAM/Ubuntu-16.04-Bootstrap new file: Ubuntu/16.04-OpenFOAM/openfoam6-linux modified: install/CENTOS7 modified: install/CONFIG modified: install/modulefile_template/create_modulefile.sh --- CentOS/7.5/CentOS-7.5-Bootstrap | 58 +++++++ Ubuntu/16.04-OpenFOAM/Ubuntu-16.04-Bootstrap | 10 +- Ubuntu/16.04-OpenFOAM/openfoam6-linux | 144 ++++++++++++++++++ install/CENTOS7 | 2 +- install/CONFIG | 2 +- .../modulefile_template/create_modulefile.sh | 4 +- 6 files changed, 211 insertions(+), 9 deletions(-) create mode 100644 CentOS/7.5/CentOS-7.5-Bootstrap create mode 100644 Ubuntu/16.04-OpenFOAM/openfoam6-linux diff --git a/CentOS/7.5/CentOS-7.5-Bootstrap b/CentOS/7.5/CentOS-7.5-Bootstrap new file mode 100644 index 0000000..d5fe1df --- /dev/null +++ b/CentOS/7.5/CentOS-7.5-Bootstrap @@ -0,0 +1,58 @@ +Bootstrap: docker +From: centos:latest + +%post +yum -y update && yum -y upgrade + +# CentOS repo +yum -y install python gcc make wget vim mc procps tcl gcc-c++ gcc-gfortran pkg-config acl acpid alsa-lib alsa-lib-devel amtu apr aspell at atk atk-devel attr audit audit-libs audit-libs-python authconfig autoconf autofs automake avahi-glib avahi-libs basesystem bash bc bind-libs bind-utils binutils binutils-devel bison bison-devel bluez-libs bridge-utils busybox bzip2 bzip2-devel bzip2-libs ca-certificates cairo cairo-devel c-ares ccid cdparanoia-libs centos-indexhtml centos-release checkpolicy chkconfig cloog-ppl compat-libcap1 compat-libstdc++-33 compat-readline5 ConsoleKit ConsoleKit-libs coolkey coreutils coreutils-libs cpio cpp cppunit cpupowerutils cpuspeed cracklib cracklib-dicts crash crda cronie cronie-anacron crontabs cryptsetup-luks cryptsetup-luks-libs cups cups-libs curl cvs cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-lib cyrus-sasl-plain dash db4 db4-cxx db4-devel db4-utils dbus dbus-devel dbus-glib dbus-glib-devel dbus-libs dbus-python dejavu-fonts-common dejavu-lgc-sans-mono-fonts dejavu-sans-mono-fonts desktop-file-utils device-mapper device-mapper-event device-mapper-event-libs device-mapper-libs device-mapper-multipath device-mapper-multipath-libs device-mapper-persistent-data diffutils dmidecode dmraid dmraid-events dmz-cursor-themes docbook-dtds docbook-style-dsssl docbook-style-xsl docbook-utils dos2unix dosfstools dracut dracut-kernel dracut-network dump e2fsprogs e2fsprogs-devel e2fsprogs-libs ed eggdbus eject elfutils-libelf elfutils-libelf-devel elfutils-libs emacs emacs-common environment-modules ethtool expat expat-devel expect file file-devel file-libs filesystem findutils finger fipscheck fipscheck-lib flac fontconfig fontconfig-devel fontpackages-filesystem foomatic foomatic-db foomatic-db-filesystem foomatic-db-ppds freeglut freeglut-devel freetype freetype-devel ftp fuse fuse-libs gamin gamin-python gawk gcc gcc-c++ gcc-gfortran GConf2 GConf2-devel gd gdb gdbm gdbm-devel gdk-pixbuf2 gdk-pixbuf2-devel genisoimage gettext gettext-devel gettext-libs ghostscript ghostscript-fonts giflib git glib2 glib2-devel glibc glibc-common glibc-debuginfo glibc-debuginfo-common glibc-devel glibc-headers glx-utils gmp gmp-devel gnome-icon-theme gnome-keyring gnome-keyring-devel gnome-themes gnome-vfs2 gnome-vfs2-devel gnupg2 gnuplot gnuplot-common gnutls gnutls-devel gperf gpgme gpm gpm-libs grep groff grub grubby gstreamer gstreamer-plugins-base gstreamer-tools gtk2 gtk2-devel gtk2-engines gtk-doc gzip hal hal-devel hal-info hal-libs hdparm hesiod hicolor-icon-theme hunspell hwdata hwloc hwloc-devel ilmbase ImageMagick indent info initscripts iproute iptables iptables-ipv6 iptstate iputils irqbalance iscsi-initiator-utils iso-codes iw jasper-libs jwhois kbd kbd-misc kernel kernel kernel-devel kernel-firmware kernel-headers keyutils keyutils-libs keyutils-libs-devel kpartx krb5-devel krb5-libs krb5-workstation ksh lcms-libs less lftp libacl libacl-devel libaio libart_lgpl libart_lgpl-devel libasyncns libattr libattr-devel libbasicobjects libblkid libbonobo libbonobo-devel libbonoboui libbonoboui-devel libcanberra libcanberra-gtk2 libcap libcap-devel libcap-ng libcgroup libcollection libcom_err libcom_err-devel libcroco libcroco-devel libcxgb3 libcxgb4 libdaemon libdhash libdrm libdrm-devel libedit libedit-devel libevent libexif libffi libfontenc libgcc libgcj libgcrypt libgcrypt-devel libgfortran libglade2 libglade2-devel libgnome libgnomecanvas libgnomecanvas-devel libgnome-devel libgomp libgpg-error libgpg-error-devel libgsf libgsf-devel libgssglue libgudev1 libhugetlbfs libibcm libibcm-devel libibverbs libibverbs-devel libibverbs-devel-static libibverbs-utils libICE libICE-devel libicu libIDL libIDL-devel libidn libidn-devel libini_config libipa_hbac libjpeg-turbo libjpeg-turbo-devel libldb libmcpp libmlx4 libmlx5 libmng libmng-devel libmthca libmthca-static libnetfilter_conntrack libnfnetlink libnih libnl libnl-devel libnotify libogg liboil libotf libpath_utils libpcap libpciaccess libpciaccess-devel libpng libpng-devel libproxy libproxy-bin libproxy-python libref_array librsvg2 librsvg2-devel libselinux libselinux-devel libselinux-python libselinux-utils libsemanage libsepol libsepol-devel libSM libSM-devel libsndfile libss libssh2 libsss_idmap libstdc++ libstdc++-devel libsysfs libsysfs-devel libtalloc libtasn1 libtasn1-devel libtdb libtevent libthai libtheora libtiff libtiff-devel libtirpc libtool-ltdl libudev libudev-devel libunistring libusb libusb1 libusb-devel libuser libutempter libuuid libvisual libvorbis libwmf libwmf-lite libwnck libX11 libX11-common libX11-devel libXau libXau-devel libXaw libXaw-devel libxcb libxcb-devel libXcomposite libXcomposite-devel libXcursor libXcursor-devel libXdamage libXdamage-devel libXdmcp libXdmcp-devel libXext libXext-devel libXfixes libXfixes-devel libXfont libXft libXft-devel libXi libXi-devel libXinerama libXinerama-devel libxkbfile libxml2 libxml2-devel libxml2-python libXmu libXmu-devel libXp libXpm libXpm-devel libXrandr libXrandr-devel libXrender libXrender-devel libXres libXScrnSaver libXScrnSaver-devel libxslt libxslt-devel libXt libXt-devel libXtst libXtst-devel libXv libXv-devel libXxf86misc libXxf86misc-devel libXxf86vm libXxf86vm-devel lm_sensors-libs lockdev logrotate lsof lvm2 lvm2-libs lynx lzo m17n-db m17n-db-datafiles m17n-lib m2crypto m4 mailcap mailx make MAKEDEV man man-pages mc mcpp mcstrans mdadm mesa-dri1-drivers mesa-dri-drivers mesa-dri-filesystem mesa-libGL mesa-libGL-devel mesa-libGLU mesa-libGLU-devel mesa-private-llvm mgetty microcode_ctl mingetty mkbootdisk mlocate module-init-tools mpfr mtools mtr mysql-libs nano nc ncurses ncurses-base ncurses-devel ncurses-libs net-snmp net-snmp-libs net-tools newt newt-python nfs-utils nfs-utils-lib nmap notification-daemon nscd nspr nspr-devel nss nss_db nss-devel nss-softokn nss-softokn-debuginfo nss-softokn-devel nss-softokn-freebl nss-softokn-freebl-devel nss-sysinit nss-tools nss-util nss-util-devel ntp ntpdate ntsysv OpenEXR-libs OpenIPMI OpenIPMI-libs openjade openjpeg-libs openldap openldap-devel openmotif openmotif22 opensp openssh openssh-clients openssh-server ORBit2 ORBit2-devel p11-kit p11-kit-trust pam pam-devel pam_krb5 pam_passwdqc pam_pkcs11 pango pango-devel paps paps-libs parted passwd patch pax pciutils pciutils-devel pciutils-libs pcmciautils pcp pcp-conf pcp-libs pcre pcsc-lite pcsc-lite-libs perf perl perl-AppConfig perl-Authen-SASL perl-Bit-Vector perl-Carp-Clan perl-CGI perl-Class-Singleton perl-Compress-Raw-Zlib perl-Compress-Zlib perl-Convert-ASN1 perl-Crypt-PasswdMD5 perl-Date-Calc perl-Date-Manip perl-DateTime perl-DBD-Pg perl-DBI perl-devel perl-Digest-HMAC perl-Digest-SHA1 perl-Error perl-ExtUtils-MakeMaker perl-ExtUtils-ParseXS perl-File-Which perl-Git perl-GSSAPI perl-HTML-Parser perl-HTML-Tagset perl-IO-Compress-Base perl-IO-Compress-Zlib perl-IO-Socket-SSL perl-JSON perl-LDAP perl-libs perl-libwww-perl perl-List-MoreUtils perl-Module-Pluggable perl-Net-LibIDN perl-Net-SSLeay perl-Net-Telnet perl-Params-Validate perl-PCP-PMDA perl-Pod-Escapes perl-Pod-Simple perl-SGMLSpm perl-Socket6 perl-String-CRC32 perl-TermReadKey perl-Test-Harness perl-Test-Simple perl-Text-Iconv perl-Time-HiRes perl-URI perl-version perl-WWW-Curl perl-XML-Filter-BufferText perl-XML-LibXML perl-XML-NamespaceSupport perl-XML-Parser perl-XML-SAX perl-XML-SAX-Writer perl-XML-Simple perl-YAML-Syck pinentry pinfo pixman pixman-devel pkgconfig plymouth plymouth-core-libs plymouth-scripts pm-utils policycoreutils polkit poppler poppler-data poppler-utils popt popt-devel portreserve postfix postgresql postgresql-devel postgresql-libs postgresql-odbc ppl ppp prelink procmail procps psacct psmisc pth pulseaudio-libs pycairo pycairo-devel pygobject2 pygobject2-codegen pygobject2-devel pygobject2-doc pygpgme pygtk2 pygtk2-codegen pygtk2-devel pygtk2-doc pyOpenSSL pytalloc python python-argparse python-devel python-iniparse python-libs python-pcp python-pycurl python-setuptools python-sssdconfig python-urlgrabber qt qt3 qt-sqlite qt-x11 quota rarian rarian-compat rdate rdma readahead readline readline-devel redhat-logos redhat-lsb redhat-lsb-compat redhat-lsb-core redhat-lsb-graphics redhat-lsb-printing redhat-menus redhat-rpm-config rmt rootfiles rpcbind rpm rpm-devel rpm-libs rpm-python rp-pppoe rrdtool rsh rsync ruby ruby-libs samba samba4-libs samba-common samba-winbind samba-winbind-clients screen SDL SDL-devel sed selinux-policy setserial setup setuptool sgml-common sgpio shadow-utils shared-mime-info slang smartmontools snappy sos sound-theme-freedesktop sqlite sqlite-devel sssd sssd-ad sssd-client sssd-common sssd-common-pac sssd-ipa sssd-krb5 sssd-krb5-common sssd-ldap sssd-proxy startup-notification startup-notification-devel strace stunnel sudo swig symlinks sysfsutils syslinux syslinux-nonlinux sysstat system-gnome-theme system-icon-theme systemtap-devel sysvinit-tools t1lib talk tar tcl tcl-devel tcpdump tcp_wrappers tcp_wrappers-libs tcsh telnet time tk tmpwatch traceroute tree tunctl tzdata udev udftools unix2dos unixODBC unixODBC-devel unzip upstart urw-fonts usbutils usermode ustr util-linux-ng vconfig vim-common vim-enhanced vim-filesystem vim-minimal virt-what wget which wireless-tools words wpa_supplicant xcb-util xdg-utils xerces-c xerces-c-devel xinetd xkeyboard-config xml-common xmlrpc-c xmlrpc-c-client xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-font-utils xorg-x11-proto-devel xorg-x11-server-common xorg-x11-server-utils xorg-x11-xauth xorg-x11-xkb-utils xterm xz xz-libs xz-lzma-compat ypbind yp-tools yum yum-metadata-parser yum-plugin-auto-update-debug-info yum-plugin-fastestmirror yum-plugin-priorities yum-plugin-security yum-plugin-versionlock yum-utils zip zlib zlib-devel + +# Fedora repo +yum -y install bash-completion pigz tmux + +yum -y groupinstall "Development Tools" + +cd /tmp + +# OpenMPI +wget https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-2.1.1.tar.gz +tar xvf openmpi-2.1.1.tar.gz && cd openmpi-2.1.1 +./configure --prefix=/usr/local +make -j 16 +make install + +# pip +curl -s -O https://bootstrap.pypa.io/get-pip.py +python get-pip.py + +pip install setuptools numpy scipy pandas wheel --upgrade + +# lua +wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/lua-posix-32-2.el7.x86_64.rpm +wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/lua-filesystem-1.6.2-2.el7.x86_64.rpm +wget http://mirror.centos.org/centos/7/os/x86_64/Packages/lua-devel-5.1.4-15.el7.x86_64.rpm +wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/lua-bitop-1.0.2-3.el7.x86_64.rpm + +rpm -ihv lua-devel-5.1.4-15.el7.x86_64.rpm +rpm -ihv lua-filesystem-1.6.2-2.el7.x86_64.rpm +rpm -ihv lua-bitop-1.0.2-3.el7.x86_64.rpm +rpm -ihv lua-posix-32-2.el7.x86_64.rpm + +# Lmod +wget https://github.com/TACC/Lmod/archive/7.7.7.tar.gz +tar xvf 7.7.7.tar.gz +cd Lmod-7.7.7 +./configure --prefix=/opt/apps +make install + +# APPS and SCRATCH +mkdir /apps +mkdir /scratch + +%environment +source /opt/apps/lmod/7.7.7/init/profile +clearMT +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib +export -f ml +export -f module +export -f clearMT diff --git a/Ubuntu/16.04-OpenFOAM/Ubuntu-16.04-Bootstrap b/Ubuntu/16.04-OpenFOAM/Ubuntu-16.04-Bootstrap index de4aad3..bee317e 100644 --- a/Ubuntu/16.04-OpenFOAM/Ubuntu-16.04-Bootstrap +++ b/Ubuntu/16.04-OpenFOAM/Ubuntu-16.04-Bootstrap @@ -67,14 +67,14 @@ apt install -y software-properties-common wget add-apt-repository "http://dl.openfoam.org/ubuntu" sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -" apt update -apt install -y openfoam5 -echo '. /opt/openfoam5/etc/bashrc' >>$SINGULARITY_ENVIRONMENT +apt install -y openfoam6 +echo '. /opt/openfoam6/etc/bashrc' >>$SINGULARITY_ENVIRONMENT ### openfoam hacks ### -mv -f /opt/bashrc /opt/openfoam5/etc -mv -f /opt/aliases /opt/openfoam5/etc/config.sh -mv -f /opt/exec /.singularity.d/actions +#mv -f /opt/bashrc /opt/openfoam6/etc +#mv -f /opt/aliases /opt/openfoam6/etc/config.sh +#mv -f /opt/exec /.singularity.d/actions %environment source /opt/apps/lmod/7.7.7/init/profile diff --git a/Ubuntu/16.04-OpenFOAM/openfoam6-linux b/Ubuntu/16.04-OpenFOAM/openfoam6-linux new file mode 100644 index 0000000..619a88c --- /dev/null +++ b/Ubuntu/16.04-OpenFOAM/openfoam6-linux @@ -0,0 +1,144 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2017 OpenFOAM Foundation +# \\/ M anipulation | +#------------------------------------------------------------------------------- +# License +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. +# +# Script +# openfoam6-linux +# +# Description +# Run script for an OpenFOAM 6 Docker image at: +# https://hub.docker.com/r/openfoam +# +#------------------------------------------------------------------------------ +Script=${0##*/} +VER=6 + +usage () { + exec 1>&2 + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat <<USAGE + +Usage: ${0##*/} [OPTIONS] +options: + -d | -dir host directory mounted (defaults to current directory) + -x | -xhost use custom X authority and give container host network + -h | -help help + +Launches the OpenFOAM ${VER} Docker image. +- Requires installation of docker-engine. +- Runs a "containerized" bash shell environment where the user can run OpenFOAM + and, optionally, ParaView (see below). +- The container mounts the user's file system so that case files are stored + permanently. The container mounts the current directory by default, but the + user can also specify a particular directory using the "-d" option. +- Mounting the user's HOME directory is disallowed. +- The '-xhost' option is useful when accessing the host via 'ssh -X'. + This option should only be used when strictly necessary, as it relies on the + option '--net=host' when launching the container in Docker, which will + give to the container full access to the Docker host network stack and + potentially the host's system services that rely on network communication, + making it potentially insecure. + +Example: +To store data in ${HOME}/OpenFOAM/${USER}-${VER}, the user can launch +${Script} either by: + cd ${HOME}/OpenFOAM/${USER}-${VER} && ${Script} +or + ${Script} -d ${HOME}/OpenFOAM/${USER}-${VER} + +Further Information: +http://openfoam.org/download/6-linux + +Note: +The container user name appears as "openfoam" but it is just an alias. + +USAGE + exit 1 +} + +DOCKER_IMAGE='openfoam/openfoam6-paraview54' +MOUNT_DIR=$(pwd) +CUSTOM_XAUTH="" +DOCKER_OPTIONS="" + +while [ "$#" -gt 0 ] +do + case "$1" in + -d | -dir) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + MOUNT_DIR=$2 + shift 2 + ;; + -x | -xhost) + CUSTOM_XAUTH=yes + shift + ;; + -h | -help) + usage + ;; + *) + usage "Invalid option '$1'" + ;; + esac +done + +[ -d "$MOUNT_DIR" ] || usage "No directory exists: $MOUNT_DIR" +MOUNT_DIR=$(cd "$MOUNT_DIR" && pwd -P) + +[ "$MOUNT_DIR" = "$(cd "$HOME" && pwd -P)" ] && \ + usage "Mount directory cannot be the user's home directory" \ + "Make a subdirectory and run from there, e.g." \ + " mkdir -p ${HOME}/OpenFOAM/$(whoami)-${VER}" \ + " ${Script} -d ${HOME}/OpenFOAM/$(whoami)-${VER}" + +if [ -n "$CUSTOM_XAUTH" ] +then + XAUTH_PATH="${MOUNT_DIR}/.docker.xauth.$$" + touch "${XAUTH_PATH}" + + # Generate a custom X-authority file that allows any hostname + xauth nlist "$DISPLAY" | sed -e 's/^..../ffff/' | \ + xauth -f "$XAUTH_PATH" nmerge - + + DOCKER_OPTIONS="-e XAUTHORITY=$XAUTH_PATH + -v $XAUTH_PATH:$XAUTH_PATH + --net=host" +fi + +USER_ID=$(id -u 2> /dev/null) +[ -n "$USER_ID" ] || usage "Cannot determine current user ID" +GROUP_ID=$(id -g) + +HOME_DIR='/home/openfoam' + +echo "Launching $0" +echo "User: \"$(id -un)\" (ID $USER_ID, group ID $GROUP_ID)" + +docker run -it \ + --rm \ + -e DISPLAY=$DISPLAY \ + -u $USER_ID:$GROUP_ID \ + -v /tmp/.X11-unix:/tmp/.X11-unix \ + -v $MOUNT_DIR:$HOME_DIR \ + $DOCKER_OPTIONS \ + $DOCKER_IMAGE + +[ -n "$CUSTOM_XAUTH" -a -e "${XAUTH_PATH}" ] && rm "${XAUTH_PATH}" diff --git a/install/CENTOS7 b/install/CENTOS7 index 8638f54..d5fe1df 100644 --- a/install/CENTOS7 +++ b/install/CENTOS7 @@ -25,7 +25,7 @@ make install curl -s -O https://bootstrap.pypa.io/get-pip.py python get-pip.py -pip install setuptools python-graph-core python-graph-dot tabulate numpy scipy pandas wheel --upgrade +pip install setuptools numpy scipy pandas wheel --upgrade # lua wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/lua-posix-32-2.el7.x86_64.rpm diff --git a/install/CONFIG b/install/CONFIG index 8c5e292..ebe1873 100644 --- a/install/CONFIG +++ b/install/CONFIG @@ -2,7 +2,7 @@ GPU_DRIVER_VERSION=390.30 GPU_DRIVER_PATH=/apps/easybuild/sources/n/NVIDIA/NVIDIA-Linux-x86_64-390.30.run MPSS_PATH=/opt/mpss MIC_PATH=./rpm.tar.gz -SINGULARITY_BIN_PATH=/apps/all/Singularity/2.4.4/bin +SINGULARITY_BIN_PATH=/apps/all/Singularity/2.5.1/bin IMAGE_PATH=/apps/all/OS MODULEFILE_PATH=/apps/modules USER_IMAGE=easybuild diff --git a/install/modulefile_template/create_modulefile.sh b/install/modulefile_template/create_modulefile.sh index b75edb6..2d8b584 100755 --- a/install/modulefile_template/create_modulefile.sh +++ b/install/modulefile_template/create_modulefile.sh @@ -26,8 +26,8 @@ fi if [ "$IMAGE" == "CentOS" ]; then if [ "$VERSION" == "6.9" ]; then PATH="./centos/6.9" - elif [ "$VERSION" == "7.4" ]; then - PATH="./centos/7.4" + elif [ "$VERSION" == "7.5" ]; then + PATH="./centos/7.5" else echo "Unsupported OS Version" exit 1 -- GitLab