diff options
-rw-r--r-- | CHANGELOG.txt | 11 | ||||
-rw-r--r-- | VERSION.txt | 2 | ||||
-rwxr-xr-x | bin/ceph-dns | 272 | ||||
-rwxr-xr-x | bin/ceph-info | 2 | ||||
l--------- | share/ceph-info/web/ceph-version.txt | 1 | ||||
l--------- | share/ceph-info/web/ceph-versions.txt | 1 | ||||
-rw-r--r-- | share/ceph-info/web/index.html | 8 | ||||
-rw-r--r-- | share/logrotate/ceph-log | 2 | ||||
-rw-r--r-- | share/logrotate/cephfs-snap | 2 |
9 files changed, 292 insertions, 9 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 21cd523..62e817c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,14 @@ +2017-10-17 Daniel Baumann <daniel.baumann@open-infrastructure.net> + + * Releasing version 20171017. + + [ Daniel Baumann ] + * Harmonizing titles in ceph-info index page. + * Setting rotate interval to 9999 in order to keep old logs by default for a very long time. + * Using new 'ceph versions' command (for luminous and newer) instead of 'ceph version' (up to kraken release) in ceph-info. + * Enlarging iframe for 'ceph status' in ceph-info. + * Adding ceph-dns. + 2017-04-10 Daniel Baumann <daniel.baumann@open-infrastructure.net> * Releasing version 20170410. diff --git a/VERSION.txt b/VERSION.txt index 13e4391..47e14c9 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -20170410 +20171017 diff --git a/bin/ceph-dns b/bin/ceph-dns new file mode 100755 index 0000000..4bf7a8f --- /dev/null +++ b/bin/ceph-dns @@ -0,0 +1,272 @@ +#!/bin/sh + +# storage-tools - Additional utilities to manage storage related tasks +# Copyright (C) 2014-2017 Daniel Baumann <daniel.baumann@open-infrastructure.net> +# +# 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 this program. If not, see <http://www.gnu.org/licenses/>. + +set -e + +PROGRAM="$(basename ${0})" + +Parameters () +{ + GETOPT_LONGOPTIONS="number:,release:,zone:,with-reverse,with-round-robin,master:,mds:,mgr:,mon:,osd:,rgw:," + GETOPT_OPTIONS="n:,r:,z:,f:," + + PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${PROGRAM} --options ${GETOPT_OPTIONS} --shell sh -- ${@})" + + if [ "${?}" != "0" ] + then + echo "'${PROGRAM}': getopt exit" >&2 + exit 1 + fi + + eval set -- "${PARAMETERS}" + + while true + do + case "${1}" in + -n|--number) + NUMBER="${2}" + shift 2 + ;; + + -r|--release) + RELEASE="${2}" + shift 2 + ;; + + -z|--zone) + ZONE="${2}" + shift 2 + ;; + + --with-reverse) + WITH_REVERSE="true" + shift 1 + ;; + + --with-round-robin) + WITH_ROUND_ROBIN="true" + shift 1 + ;; + + --master) + MASTER="${2}" + shift 2 + ;; + + --mds) + MDS="${2}" + shift 2 + ;; + + --mgr) + MGR="${2}" + shift 2 + ;; + + --mon) + MON="${2}" + shift 2 + ;; + + --osd) + OSD="${2}" + shift 2 + ;; + + --rgw) + RGW="${2}" + shift 2 + ;; + + --) + shift 1 + break + ;; + + *) + echo "'${PROGRAM}': getopt error" >&2 + exit 1 + ;; + esac + done +} + +Usage () +{ + echo "Usage: ${PROGRAM} {create|check} [-n|--number NUMBER] [-r|--release RELEASE] [-z|--zone ZONE] [--with-reverse] [--with-round-robin] [--master MASTER_NUMBER] [--mds MDS_NUMBER] [--mgr MGR_NUMBER] [--mon MON_NUMBER] [--osd OSD_NUMBER] [--rgw RGW_NUMBER]" >&2 + exit 1 +} + +case "${1}" in + check) + ACTION="check" + ;; + + create) + ACTION="create" + ;; + + *) + Usage + ;; +esac + +shift 1 + +Parameters "${@}" + +NUMBER="${NUMBER:-3}" +RELEASE="${RELEASE:-luminous}" +ZONE="${ZONE:-ceph.example.net}" + +MASTER="${MASTER:-1}" +MDS="${MDS:-${NUMBER}}" +MGR="${MGR:-${NUMBER}}" +MON="${MON:-${NUMBER}}" +OSD="${OSD:-${NUMBER}}" +RGW="${RGW:-${NUMBER}}" + +RED="$(tput setaf 1)$(tput bold)" +GREEN="$(tput setaf 2)$(tput bold)" +WHITE="$(tput setaf 7)$(tput bold)" +NORMAL="$(tput sgr0)" + +STATUS_GOOD="${GREEN}✔${NORMAL}" +STATUS_BAD="${RED}✘${NORMAL}" +STATUS_UGLY="${WHITE}○${NORMAL}" + +cat << EOF +; Ceph DNS: Forward Entries for ${ZONE} +EOF + +# Run forward zone +for SERVICE in master mds mgr mon osd rgw +do + NUMBERS="$(eval "echo \$$(echo "${SERVICE}" | tr [a-z] [A-Z])")" + + for NUMBER in $(seq 1 ${NUMBERS}) + do + case "${SERVICE}" in + master) + CONTAINER="master" + ;; + + *) + CONTAINER="${SERVICE}${NUMBER}" + ;; + esac + + case "${CHECK}" in + true) + IP_ADDRESS="$(dig +short ${CONTAINER}.${RELEASE}.${ZONE} | tail -n1)" + + if [ -n "${IP_ADDRESS}" ] + then + IP_ADDRESS="${IP_ADDRESS} ${STATUS_GOOD}" + else + IP_ADDRESS="${STATUS_BAD}" + fi + ;; + + *) + IP_ADDRESS="FIXME" + ;; + esac + +cat << EOF + +${CONTAINER}.${RELEASE}.${ZONE} IN A ${IP_ADDRESS} +${CONTAINER}.${ZONE} IN CNAME ${CONTAINER}.${RELEASE}.${ZONE}. +EOF + + case "${SERVICE}" in + master) + ;; + + *) + if [ "${WITH_ROUND_ROBIN}" = "true" ] + then + +cat << EOF +${SERVICE}.${RELEASE}.${ZONE} IN A ${IP_ADDRESS} +${SERVICE}.${ZONE} IN A ${IP_ADDRESS} +EOF + + fi + ;; + esac + done +done + +case "${WITH_REVERSE}" in + true) + +cat << EOF + +; Ceph DNS: Reverse Entries for ${ZONE} + +EOF + + # Run reverse zone + for SERVICE in master mds mgr mon osd rgw + do + NUMBERS="$(eval "echo \$$(echo "${SERVICE}" | tr [a-z] [A-Z])")" + + for NUMBER in $(seq 1 ${NUMBERS}) + do + case "${SERVICE}" in + master) + CONTAINER="master" + ;; + + *) + CONTAINER="${SERVICE}${NUMBER}" + ;; + esac + + case "${CHECK}" in + true) + IP_ADDRESS="$(dig +short ${CONTAINER}.${RELEASE}.${ZONE} | tail -n1)" + + if [ -n "${IP_ADDRESS}" ] + then + HOST="$(dig +short -x ${IP_ADDRESS} | tail -n1)" + if [ -n "${HOST}" ] + then + STATUS="${STATUS_GOOD}" + else + STATUS="${STATUS_BAD}" + fi + else + STATUS="${STATUS_BAD}" + IP_ADDRESS="Nil" + fi + ;; + *) + IP_ADDRESS="FIXME" + ;; + esac + +cat << EOF +${IP_ADDRESS} IN PTR ${CONTAINER}.${RELEASE}.${ZONE}. ${STATUS} +EOF + + done + done + ;; +esac diff --git a/bin/ceph-info b/bin/ceph-info index 4a504b2..782772a 100755 --- a/bin/ceph-info +++ b/bin/ceph-info @@ -40,7 +40,7 @@ HOST="$(hostname -f)" mkdir -p "/var/log/${SOFTWARE}/${PROGRAM}" -for INFORMATION in ceph-status ceph-df ceph-osd-df ceph-osd-tree ceph-version +for INFORMATION in ceph-status ceph-df ceph-osd-df ceph-osd-tree ceph-versions do COMMAND="$(echo ${INFORMATION} | sed -e 's|-| |g')" diff --git a/share/ceph-info/web/ceph-version.txt b/share/ceph-info/web/ceph-version.txt deleted file mode 120000 index f440f1b..0000000 --- a/share/ceph-info/web/ceph-version.txt +++ /dev/null @@ -1 +0,0 @@ -/var/log/storage-tools/ceph-info/ceph-version.txt
\ No newline at end of file diff --git a/share/ceph-info/web/ceph-versions.txt b/share/ceph-info/web/ceph-versions.txt new file mode 120000 index 0000000..cc77481 --- /dev/null +++ b/share/ceph-info/web/ceph-versions.txt @@ -0,0 +1 @@ +/var/log/storage-tools/ceph-log/ceph-versions.txt
\ No newline at end of file diff --git a/share/ceph-info/web/index.html b/share/ceph-info/web/index.html index 95b059d..eeea131 100644 --- a/share/ceph-info/web/index.html +++ b/share/ceph-info/web/index.html @@ -45,7 +45,7 @@ <pre id="data">Loading...</pre> <h2>$ ceph status</h2> - <p><iframe src="ceph-status.txt" frameborder="0" height="250" width="95%"></iframe></p> + <p><iframe src="ceph-status.txt" frameborder="0" height="400" width="95%"></iframe></p> <h2>$ ceph df</h2> <p><iframe src="ceph-df.txt" frameborder="0" height="250" width="95%"></iframe></p> @@ -56,10 +56,10 @@ <h2>$ ceph osd tree</h2> <p><iframe src="ceph-osd-tree.txt" frameborder="0" height="250" width="95%"></iframe></p> - <h2>$ ceph version</h2> - <p><iframe src="ceph-version.txt" frameborder="0" height="25" width="95%"></iframe></p> + <h2>$ ceph versions</h2> + <p><iframe src="ceph-versions.txt" frameborder="0" height="325" width="95%"></iframe></p> - <h3>Last Updated:</h3> + <h3>Last Updated</h3> <p><iframe src="date.txt" frameborder="0" height="25" width="95%"></iframe></p> <!-- /Content --> diff --git a/share/logrotate/ceph-log b/share/logrotate/ceph-log index cdf8bc7..7bcaf3f 100644 --- a/share/logrotate/ceph-log +++ b/share/logrotate/ceph-log @@ -7,7 +7,7 @@ missingok daily notifempty - rotate 365 + rotate 9999 prerotate service ceph-log stop > /dev/null 2>&1 endscript diff --git a/share/logrotate/cephfs-snap b/share/logrotate/cephfs-snap index e948edf..21aae15 100644 --- a/share/logrotate/cephfs-snap +++ b/share/logrotate/cephfs-snap @@ -7,5 +7,5 @@ missingok monthly notifempty - rotate 12 + rotate 9999 } |