diff --git a/cdist/conf/explorer/hostname b/cdist/conf/explorer/hostname index dca004d1..7715c6b0 100755 --- a/cdist/conf/explorer/hostname +++ b/cdist/conf/explorer/hostname @@ -1,6 +1,7 @@ #!/bin/sh # -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) +# 2010-2014 Nico Schottelius (nico-cdist at schottelius.org) +# 2012 Steven Armstrong (steven-cdist at armstrong.cc) # # This file is part of cdist. # @@ -18,12 +19,7 @@ # along with cdist. If not, see . # # -# Retrieve the running hostname -# -if command -v hostname >/dev/null -then - hostname -else - uname -n +if command -v uname >/dev/null; then + uname -n fi diff --git a/cdist/conf/type/__apt_key/gencode-remote b/cdist/conf/type/__apt_key/gencode-remote index 0c96ff67..e9daa524 100755 --- a/cdist/conf/type/__apt_key/gencode-remote +++ b/cdist/conf/type/__apt_key/gencode-remote @@ -61,29 +61,31 @@ EOF echo "curl -s -L '$uri' | apt-key add -" fi elif [ -d "$keydir" ]; then + tmp='/tmp/cdist_apt_key_tmp' + # we need to kill gpg after 30 seconds, because gpg # can get stuck if keyserver is not responding. # exporting env var and not exit 1, # because we need to clean up and kill dirmngr. cat << EOF -gpgtmphome="\$( mktemp -d )" +mkdir -m 700 -p "$tmp" if timeout 30s \\ - gpg --homedir "\$gpgtmphome" \\ + gpg --homedir "$tmp" \\ --keyserver "$keyserver" \\ --recv-keys "$keyid" then - gpg --homedir "\$gpgtmphome" \\ + gpg --homedir "$tmp" \\ --export "$keyid" \\ > "$keyfile" else export GPG_GOT_STUCK=1 fi -GNUPGHOME="\$gpgtmphome" gpgconf --kill dirmngr +GNUPGHOME="$tmp" gpgconf --kill dirmngr -rm -rf "\$gpgtmphome" +rm -rf "$tmp" if [ -n "\$GPG_GOT_STUCK" ] then diff --git a/cdist/conf/type/__hostname/explorer/has_hostnamectl b/cdist/conf/type/__hostname/explorer/has_hostnamectl index 2f531f30..9040023d 100755 --- a/cdist/conf/type/__hostname/explorer/has_hostnamectl +++ b/cdist/conf/type/__hostname/explorer/has_hostnamectl @@ -21,4 +21,4 @@ # Check whether system has hostnamectl # -command -v hostnamectl 2>/dev/null || true +command -v hostnamectl || true diff --git a/cdist/conf/type/__hostname/explorer/hostname_file b/cdist/conf/type/__hostname/explorer/hostname_file new file mode 100755 index 00000000..6a00aa9f --- /dev/null +++ b/cdist/conf/type/__hostname/explorer/hostname_file @@ -0,0 +1,30 @@ +#!/bin/sh +# +# 2014 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist 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. +# +# cdist 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 cdist. If not, see . +# +# +# Retrieve the contents of /etc/hostname +# + +# Almost any distribution +if [ -f /etc/hostname ]; then + cat /etc/hostname +# SuSE +elif [ -f /etc/HOSTNAME ]; then + cat /etc/HOSTNAME +fi diff --git a/cdist/conf/type/__podman_compose/gencode-remote b/cdist/conf/type/__hostname/explorer/hostname_sysconfig old mode 100644 new mode 100755 similarity index 75% rename from cdist/conf/type/__podman_compose/gencode-remote rename to cdist/conf/type/__hostname/explorer/hostname_sysconfig index 0f5cf9db..d0d7b4e7 --- a/cdist/conf/type/__podman_compose/gencode-remote +++ b/cdist/conf/type/__hostname/explorer/hostname_sysconfig @@ -1,6 +1,6 @@ -#!/bin/sh -e +#!/bin/sh # -# 2019 Daniel Tschada +# 2014 Nico Schottelius (nico-cdist at schottelius.org) # # This file is part of cdist. # @@ -17,8 +17,10 @@ # You should have received a copy of the GNU General Public License # along with cdist. If not, see . # +# +# Retrieve the contents of /etc/hostname +# -install="$(cat "$__object/parameter/install")" -state="$(cat "$__object/parameter/state")" -user="$(cat "$__object/parameter/user")" -version="$(cat "$__object/parameter/version")" \ No newline at end of file +if [ -f /etc/sysconfig/network ]; then + awk -F= '/^HOSTNAME=/ { print $2 }' /etc/sysconfig/network +fi diff --git a/cdist/conf/type/__hostname/explorer/max_len b/cdist/conf/type/__hostname/explorer/max_len deleted file mode 100644 index fb863949..00000000 --- a/cdist/conf/type/__hostname/explorer/max_len +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -e - -command -v getconf >/dev/null || exit 0 - -val=$(getconf HOST_NAME_MAX 2>/dev/null) || exit 0 - -if test -n "${val}" -a "${val}" != 'undefined' -then - echo "${val}" -fi diff --git a/cdist/conf/type/__hostname/gencode-remote b/cdist/conf/type/__hostname/gencode-remote index ae224611..8b5797dd 100755 --- a/cdist/conf/type/__hostname/gencode-remote +++ b/cdist/conf/type/__hostname/gencode-remote @@ -2,7 +2,6 @@ # # 2014-2017 Steven Armstrong (steven-cdist at armstrong.cc) # 2014 Nico Schottelius (nico-cdist at schottelius.org) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) # # This file is part of cdist. # @@ -20,81 +19,60 @@ # along with cdist. If not, see . # -os=$(cat "$__global/explorer/os") -name_running=$(cat "$__global/explorer/hostname") -has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl") - - -if test -s "$__object/parameter/name" -then - name_should=$(cat "$__object/parameter/name") +if [ -f "$__object/parameter/name" ]; then + name_should="$(cat "$__object/parameter/name")" else - case $os - in - # RedHat-derivatives and BSDs - centos|fedora|redhat|scientific|freebsd|macosx|netbsd|openbsd) - # Hostname is FQDN - name_should="${__target_host}" - ;; - *) - # Hostname is only first component of FQDN - name_should="${__target_host%%.*}" - ;; - esac + name_should="${__target_host%%.*}" fi +os=$(cat "$__global/explorer/os") +name_running=$(cat "$__global/explorer/hostname") +name_config=$(cat "$__object/explorer/hostname_file") +name_sysconfig=$(cat "$__object/explorer/hostname_sysconfig") +has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl") ################################################################################ -# Check if the (running) hostname is already correct +# If everything is ok -> exit # -test "$name_running" != "$name_should" || exit 0 - +case "$os" in + archlinux|debian|suse|ubuntu|devuan|coreos|alpine) + if [ "$name_config" = "$name_should" ] && [ "$name_running" = "$name_should" ]; then + exit 0 + fi + ;; + scientific|centos|freebsd|openbsd) + if [ "$name_sysconfig" = "$name_should" ] && [ "$name_running" = "$name_should" ]; then + exit 0 + fi + ;; + *) + echo "Unsupported os: $os" >&2 + exit 1 + ;; +esac ################################################################################ # Setup hostname # -echo 'changed' >>"$__messages_out" +echo changed >> "$__messages_out" -# Use the good old way to set the hostname. -case $os -in - alpine|debian|devuan|ubuntu) - echo 'hostname -F /etc/hostname' +# Use the good old way to set the hostname even on machines running systemd. +case "$os" in + archlinux|debian|ubuntu|devuan|centos|coreos|alpine) + printf "printf '%%s\\\\n' '$name_should' > /etc/hostname\\n" + echo "hostname -F /etc/hostname" ;; - archlinux) - echo 'command -v hostnamectl >/dev/null 2>&1' \ - "&& hostnamectl set-hostname '$name_should'" \ - "|| hostname '$name_should'" - ;; - centos|fedora|redhat|scientific|freebsd|netbsd|openbsd|gentoo|void) + freebsd|openbsd) echo "hostname '$name_should'" ;; - macosx) - echo "scutil --set HostName '$name_should'" - ;; - solaris) - echo "uname -S '$name_should'" - ;; - slackware|suse|opensuse-leap) - # We do not read from /etc/HOSTNAME, because the running - # hostname is the first component only while the file contains - # the FQDN. + suse) echo "hostname '$name_should'" - ;; - *) - # Fall back to set the hostname using hostnamectl, if available. - if test -n "$has_hostnamectl" - then - # Don't use hostnamectl as the primary means to set the hostname for - # systemd systems, because it cannot be trusted to work reliably and - # exit with non-zero when it fails (e.g. hostname too long, - # D-Bus failure, etc.). - - echo "hostnamectl set-hostname \"\$(cat /etc/hostname)\"" - echo "test \"\$(hostname)\" = \"\$(cat /etc/hostname)\"" \ - " || hostname -F /etc/hostname" - else - printf "echo 'Unsupported OS: %s' >&2\nexit 1\n" "$os" - fi + printf "printf '%%s\\\\n' '$name_should' > /etc/HOSTNAME\\n" ;; esac + +if [ "$has_hostnamectl" ]; then + # Allow hostnamectl set-hostname to fail silently. + # Who the fuck invented a tool that needs dbus to set the hostname anyway ... + echo "hostnamectl set-hostname '$name_should' || true" +fi diff --git a/cdist/conf/type/__hostname/man.rst b/cdist/conf/type/__hostname/man.rst index 72aefbab..d23a3b8a 100644 --- a/cdist/conf/type/__hostname/man.rst +++ b/cdist/conf/type/__hostname/man.rst @@ -8,10 +8,7 @@ cdist-type__hostname - Set the hostname DESCRIPTION ----------- -Sets the hostname on various operating systems. - -**Tip:** For advice on choosing a hostname, see -`RFC 1178 `_. +Set's the hostname on various operating systems. REQUIRED PARAMETERS @@ -21,7 +18,7 @@ None. OPTIONAL PARAMETERS ------------------- name - The hostname to set. Defaults to the first segment of __target_host + The hostname to set. Defaults to the first segment of __target_host (${__target_host%%.*}) diff --git a/cdist/conf/type/__hostname/manifest b/cdist/conf/type/__hostname/manifest index 75a90027..8f1adf12 100755 --- a/cdist/conf/type/__hostname/manifest +++ b/cdist/conf/type/__hostname/manifest @@ -2,7 +2,6 @@ # # 2012 Steven Armstrong (steven-cdist at armstrong.cc) # 2014 Nico Schottelius (nico-cdist at schottelius.org) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) # # This file is part of cdist. # @@ -20,170 +19,50 @@ # along with cdist. If not, see . # -not_supported() { - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 -} - -set_hostname_systemd() { - echo "$1" | __file /etc/hostname --source - -} - os=$(cat "$__global/explorer/os") -os_version=$(cat "$__global/explorer/os_version") -os_major=$(echo "$os_version" | grep -o '^[0-9][0-9]*') - -max_len=$(cat "$__object/explorer/max_len") -has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl") - -if test -s "$__object/parameter/name" -then - name_should=$(cat "$__object/parameter/name") +if [ -f "$__object/parameter/name" ]; then + name_should="$(cat "$__object/parameter/name")" else - case $os - in - # RedHat-derivatives and BSDs - centos|fedora|redhat|scientific|freebsd|netbsd|openbsd|slackware) - # Hostname is FQDN - name_should="${__target_host}" - ;; - suse|opensuse-leap) - # Classic SuSE stores the FQDN in /etc/HOSTNAME, while - # systemd does not. The running hostname is the first - # component in both cases. - # In versions before 15.x, the FQDN is stored in /etc/hostname. - if test -n "$has_hostnamectl" && test "$os_major" -ge 15 \ - && test "$os_major" -ne 42 - then - name_should="${__target_host%%.*}" - else - name_should="${__target_host}" - fi - ;; - *) - # Hostname is only first component of FQDN on all other systems. - name_should="${__target_host%%.*}" - ;; + case "$os" in + openbsd) + name_should="${__target_host}" + ;; + *) + name_should="${__target_host%%.*}" + ;; esac fi -if test -n "$max_len" && test "$(printf '%s' "$name_should" | wc -c)" -gt "$max_len" -then - printf "Host name too long. Up to %u characters allowed.\n" "${max_len}" >&2 - exit 1 -fi -case $os -in - alpine|debian|devuan|ubuntu|void) - echo "$name_should" | __file /etc/hostname --source - - ;; - archlinux) - if test -n "$has_hostnamectl" - then - set_hostname_systemd "$name_should" - else - echo 'Ancient ArchLinux variants without hostnamectl are not supported.' >&2 - exit 1 - # Only for ancient ArchLinux, write to /etc/rc.conf on pre-systemd - # versions. There are some versions which use /etc/hostname but not - # systemd. It is unclear which ones these are. +not_supported() { + echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 + echo "Please contribute an implementation for it if you can." >&2 + exit 1 +} - # __key_value '/etc/rc.conf:HOSTNAME' \ - # --file /etc/rc.conf \ - # --delimiter '=' --exact_delimiter \ - # --key 'HOSTNAME' \ - # --value "\"$name_should\"" - fi - ;; - centos|fedora|redhat|scientific) - if test -z "$has_hostnamectl" - then - # Only write to /etc/sysconfig/network on non-systemd versions. - # On systemd-based versions this entry is ignored. - __key_value '/etc/sysconfig/network:HOSTNAME' \ - --file /etc/sysconfig/network \ - --delimiter '=' --exact_delimiter \ - --key HOSTNAME \ - --value "\"$name_should\"" - else - set_hostname_systemd "$name_should" - fi - ;; - gentoo) - # Only write to /etc/conf.d/hostname on OpenRC-based installations. - # On systemd use hostnamectl(1) in gencode-remote. - if test -z "$has_hostnamectl" - then - __key_value '/etc/conf.d/hostname:hostname' \ - --file /etc/conf.d/hostname \ - --delimiter '=' --exact_delimiter \ - --key 'hostname' \ - --value "\"$name_should\"" - else - set_hostname_systemd "$name_should" - fi - ;; - freebsd) - __key_value '/etc/rc.conf:hostname' \ - --file /etc/rc.conf \ - --delimiter '=' --exact_delimiter \ - --key 'hostname' \ - --value "\"$name_should\"" - ;; - macosx) +case "$os" in + archlinux|debian|suse|ubuntu|devuan|coreos|alpine) # handled in gencode-remote : ;; - netbsd) - __key_value '/etc/rc.conf:hostname' \ + scientific|centos) + __key_value sysconfig-hostname \ + --file /etc/sysconfig/network \ + --delimiter '=' \ + --key HOSTNAME \ + --value "$name_should" --exact_delimiter + ;; + freebsd) + __key_value rcconf-hostname \ --file /etc/rc.conf \ - --delimiter '=' --exact_delimiter \ + --delimiter '=' \ --key 'hostname' \ - --value "\"$name_should\"" - - # To avoid confusion, ensure that the hostname is only stored once. - __file /etc/myname --state absent + --value "$name_should" ;; openbsd) echo "$name_should" | __file /etc/myname --source - ;; - slackware) - # We write the FQDN into /etc/HOSTNAME. But /etc/rc.d/rc.M will only - # read the first component from this file and set it as the running - # hostname on boot. - echo "$name_should" | __file /etc/HOSTNAME --source - - ;; - solaris) - echo "$name_should" | __file /etc/nodename --source - - ;; - suse|opensuse-leap) - # Modern SuSE provides /etc/HOSTNAME as a symlink for - # backwards-compatibility. Unfortunately it cannot be used - # here as __file does not follow the symlink. - # Therefore, we use the presence of the hostnamectl binary as - # an indication of which file to use. This unfortunately does - # not work correctly on openSUSE 12.x which provides - # hostnamectl but not /etc/hostname. - - if test -n "$has_hostnamectl" -a "$os_major" -gt 12 - then - hostname_file='/etc/hostname' - else - hostname_file='/etc/HOSTNAME' - fi - - echo "$name_should" | __file "$hostname_file" --source - - ;; *) - # On other operating systems we fall back to systemd's - # hostnamectl if available… - if test -n "$has_hostnamectl" - then - set_hostname_systemd "$name_should" - else - not_supported - fi + not_supported ;; esac diff --git a/cdist/conf/type/__letsencrypt_cert/manifest b/cdist/conf/type/__letsencrypt_cert/manifest index 68ecf9d4..bc039e44 100755 --- a/cdist/conf/type/__letsencrypt_cert/manifest +++ b/cdist/conf/type/__letsencrypt_cert/manifest @@ -8,9 +8,6 @@ if [ -z "${certbot_fullpath}" ]; then case "$os" in archlinux) - __package certbot - ;; - alpine) __package certbot ;; debian) diff --git a/cdist/conf/type/__package_update_index/explorer/currage b/cdist/conf/type/__package_update_index/explorer/currage index cfb778d5..3539b8e1 100644 --- a/cdist/conf/type/__package_update_index/explorer/currage +++ b/cdist/conf/type/__package_update_index/explorer/currage @@ -34,9 +34,6 @@ case "$type" in echo 0 fi ;; - alpine) - echo 0 - ;; *) echo "Your specified type ($type) is currently not supported." >&2 echo "Please contribute an implementation for it if you can." >&2 ;; diff --git a/cdist/conf/type/__package_update_index/explorer/type b/cdist/conf/type/__package_update_index/explorer/type index c98e1e67..35254c5f 100644 --- a/cdist/conf/type/__package_update_index/explorer/type +++ b/cdist/conf/type/__package_update_index/explorer/type @@ -26,7 +26,6 @@ else amazon|scientific|centos|fedora|redhat) echo "yum" ;; debian|ubuntu|devuan) echo "apt" ;; archlinux) echo "pacman" ;; - alpine) echo "apk" ;; *) echo "Don't know how to manage packages on: $os" >&2 exit 1 diff --git a/cdist/conf/type/__package_update_index/gencode-remote b/cdist/conf/type/__package_update_index/gencode-remote index 9b2ecba2..738d38eb 100755 --- a/cdist/conf/type/__package_update_index/gencode-remote +++ b/cdist/conf/type/__package_update_index/gencode-remote @@ -47,10 +47,6 @@ case "$type" in echo "pacman --noprogressbar --sync --refresh" echo "pacman package database synced (age was: $currage)" >> "$__messages_out" ;; - alpine) - echo "apk update" - echo "apk package database updated." - ;; *) echo "Don't know how to manage packages for type: $type" >&2 exit 1 diff --git a/cdist/conf/type/__podman_compose/man.rst b/cdist/conf/type/__podman_compose/man.rst deleted file mode 100644 index fa98f443..00000000 --- a/cdist/conf/type/__podman_compose/man.rst +++ /dev/null @@ -1,61 +0,0 @@ -cdist-type__podman_compose(7) -============================= - -NAME ----- -cdist-type__podman_compose - install podman-compose - - -DESCRIPTION ------------ -Installs podman-compose package. -State 'absent' will not remove podman binary itself, -only podman-compose binary will be removed - - -REQUIRED PARAMETERS -------------------- -install - defaults to 'pip' - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' -user - the user who owns the file, defaults to 'root' - - -BOOLEAN PARAMETERS ------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - # Install podman-compose - __podman_compose - - # Install latest version via pip - __podman_compose --state present --install pip - - # Install latest version via pip and change user - __podman_compose --state present --install pip --user root - - # Remove podman-compose - __podman_compose --state absent - - -AUTHORS -------- -Daniel Tschada - - -COPYING -------- -Copyright \(C) 2019 Daniel Tschada. Free use of this software is -granted under the terms of the GNU General Public License version 3 or later (GPLv3+). diff --git a/cdist/conf/type/__podman_compose/manifest b/cdist/conf/type/__podman_compose/manifest deleted file mode 100755 index 2b06068d..00000000 --- a/cdist/conf/type/__podman_compose/manifest +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -e -# -# 2019 Daniel Tschada -# -# This file is part of cdist. -# -# cdist 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. -# -# cdist 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 cdist. If not, see . -# - -# shellcheck disable=SC2154 -# shellcheck disable=SC2034 -install="$(cat "$__object/parameter/install")" -state="$(cat "$__object/parameter/state")" -user="$(cat "$__object/parameter/user")" -version="$(cat "$__object/parameter/version")" - -# install it with pip -if [ "${install}" = "pip" ]; then - - if [ "${state}" = "present" ]; then - __package_pip podman-compose --state present --pip /usr/local/bin/podman-compose --runas "${user}" - elif [ "${state}" = "absent" ]; then - __package_pip podman-compose --state absent - else - if [ "${state}" != "present" ] -a [ "${state}" != "absent" ]; then - echo "Unknown state: ${state}" >&2 - exit 1 - else - echo "Unknown user: ${user}" >&2 - exit 1 - fi - fi - -else - - echo "Unknown user: ${install}" >&2 - exit 1 - -fi \ No newline at end of file diff --git a/cdist/conf/type/__podman_compose/parameter/default/install b/cdist/conf/type/__podman_compose/parameter/default/install deleted file mode 100644 index a1b589e3..00000000 --- a/cdist/conf/type/__podman_compose/parameter/default/install +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/cdist/conf/type/__podman_compose/parameter/default/state b/cdist/conf/type/__podman_compose/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__podman_compose/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__podman_compose/parameter/default/user b/cdist/conf/type/__podman_compose/parameter/default/user deleted file mode 100644 index d8649da3..00000000 --- a/cdist/conf/type/__podman_compose/parameter/default/user +++ /dev/null @@ -1 +0,0 @@ -root diff --git a/cdist/conf/type/__podman_compose/parameter/optional b/cdist/conf/type/__podman_compose/parameter/optional deleted file mode 100644 index 92913e56..00000000 --- a/cdist/conf/type/__podman_compose/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -install -state -user -version diff --git a/cdist/conf/type/__podman_compose/parameter/required b/cdist/conf/type/__podman_compose/parameter/required deleted file mode 100644 index 7c32f559..00000000 --- a/cdist/conf/type/__podman_compose/parameter/required +++ /dev/null @@ -1 +0,0 @@ -install diff --git a/cdist/conf/type/__podman_compose/singleton b/cdist/conf/type/__podman_compose/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__xymon_client/man.rst b/cdist/conf/type/__xymon_client/man.rst index 05d085dc..6f90c15b 100644 --- a/cdist/conf/type/__xymon_client/man.rst +++ b/cdist/conf/type/__xymon_client/man.rst @@ -23,34 +23,25 @@ state 'present', 'absent', defaults to 'present'. servers - One or more IP addresses (space separated) of the Xymon server(s) to report + One or more IP adresses (space separated) of the Xymon server(s) to report to. While DNS-names are ok it is discouraged, defaults to 127.0.0.1. -BOOLEAN PARAMETERS ------------------- -msgcache - Enable xymon `msgcache`. Note: XYMONSERVER has to be `127.0.0.1` for using - `msgcache` (see `msgcache (8)` of the xymon documentation for details). - EXAMPLES -------- .. code-block:: sh - # minimal, report to 127.0.0.1 + # minmal, report to 127.0.0.1 __xymon_client # specify server: __xymon_client --servers "192.168.1.1" - # activate `msgcache` for passive client: - __xymon_client --msgcache - SEE ALSO -------- -:strong:`cdist__xymon_server`\ (7), :strong:`xymon`\ (7), :strong:`msgcache`\ (8) +:strong:`cdist__xymon_server`\ (7), :strong:`xymon`\ (7) AUTHORS diff --git a/cdist/conf/type/__xymon_client/manifest b/cdist/conf/type/__xymon_client/manifest index 88293a12..92ad079e 100755 --- a/cdist/conf/type/__xymon_client/manifest +++ b/cdist/conf/type/__xymon_client/manifest @@ -34,18 +34,13 @@ esac __package xymon-client --state "$state" -if [ -f "$__object/parameter/msgcache" ]; then - require="__package/xymon-client" __line /etc/xymon/clientlaunch.cfg \ - --regex DISABLED --state absent -fi - require="__package/xymon-client" __key_value CLIENTHOSTNAME \ - --file /etc/default/xymon-client \ + --file /etc/default/xymon-client \ --value "'$__target_hostname'" \ --delimiter '=' \ --state "$state" require="__package/xymon-client" __key_value XYMONSERVERS \ - --file /etc/default/xymon-client \ + --file /etc/default/xymon-client \ --value "'$servers'" \ --delimiter '=' \ --state "$state" diff --git a/cdist/conf/type/__xymon_client/parameter/boolean b/cdist/conf/type/__xymon_client/parameter/boolean deleted file mode 100644 index 0dd7839d..00000000 --- a/cdist/conf/type/__xymon_client/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -msgcache diff --git a/cdist/conf/type/__xymon_config/man.rst b/cdist/conf/type/__xymon_config/man.rst index 8adfbe1f..8b427ca0 100644 --- a/cdist/conf/type/__xymon_config/man.rst +++ b/cdist/conf/type/__xymon_config/man.rst @@ -23,21 +23,6 @@ confdir deployed. -OPTIONAL PARAMETERS -------------------- -owner - passed as-is as `--owner` to `__rsync` - -group - passed as-is as `--group` to `__rsync` - - -OPTIONAL MULTIPLE PARAMETERS ----------------------------- -rsync-opts - identical to __rsync type, only `--`-options are supported - - REQUIRED FILES -------------- The directory specified by `confdir` has to contain a valid xymon-configuration @@ -54,16 +39,10 @@ EXAMPLES # this will replace /etc/xymon/ on the target host with # the contents from __xymon_config/files/xymon.example.com/ - ## the same but set ownership to `xymon:xymon` and exclude - ## the `netrc`-file: - __xymon_config --confdir=xymon.example.com \ - --owner xymon --group xymon \ - --rsync-opts "exclude=netrc" - SEE ALSO -------- -:strong:`cdist__xymon_server`\ (7), :strong:`cdist__rsync`\ (7), :strong:`xymon`\ (7) +:strong:`cdist__xymon_server`\ (7), :strong:`xymon`\ (7) AUTHORS ------- diff --git a/cdist/conf/type/__xymon_config/manifest b/cdist/conf/type/__xymon_config/manifest index 4a5fb6c9..fb1bce54 100644 --- a/cdist/conf/type/__xymon_config/manifest +++ b/cdist/conf/type/__xymon_config/manifest @@ -18,26 +18,7 @@ # along with cdist. If not, see . confdir=$(cat "$__object/parameter/confdir") -set -- -if [ -f "$__object/parameter/owner" ]; then - owner=$(cat "$__object/parameter/owner") - set -- "$@" "--owner $owner" -fi -if [ -f "$__object/parameter/group" ]; then - group=$(cat "$__object/parameter/group") - set -- "$@" "--group $group" -fi -## pass `--rsync-opts` as-is to `__rsync`: -if [ -f "$__object/parameter/rsync-opts" ]; then - while read -r opts; do - # shellcheck disable=SC2089 - set -- "$@" "--rsync-opts '$opts'" - done < "$__object/parameter/rsync-opts" -fi - -# shellcheck disable=SC2068,SC2090 __rsync /etc/xymon/ \ --source "$__type/files/$confdir/" \ - --rsync-opts "delete" \ - $@ + --rsync-opts "delete" diff --git a/cdist/conf/type/__xymon_config/parameter/optional b/cdist/conf/type/__xymon_config/parameter/optional deleted file mode 100644 index 866b4bde..00000000 --- a/cdist/conf/type/__xymon_config/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -owner -group diff --git a/cdist/conf/type/__xymon_config/parameter/optional_multiple b/cdist/conf/type/__xymon_config/parameter/optional_multiple deleted file mode 100644 index fdb7cd88..00000000 --- a/cdist/conf/type/__xymon_config/parameter/optional_multiple +++ /dev/null @@ -1 +0,0 @@ -rsync-opts diff --git a/docs/changelog b/docs/changelog index 71509004..8e6e56ca 100644 --- a/docs/changelog +++ b/docs/changelog @@ -1,23 +1,6 @@ Changelog --------- -next: - * Type __xymon_config: Add parameters for ownership and generic rsync options (Thomas Eckert) - * Type __xymon_client: Add msgcache parameter to support passive clients (Thomas Eckert) - * Type __apt_key: Use mktemp for unique temporary gpg home (Ander Punnar) - -6.1.0: 2019-11-19 - * Explorer hostname, type __hostname: Support more operating systems, rewrite type and hostname explorer (Dennis Camera) - -6.0.4: 2019-11-19 - * Doc: Fix typos (Kirill Miazine) - -6.0.3: 2019-10-31 - * Type __letsencrypt_cert: Add Alpine support (Nico Schottelius) - * Type __xymon_client: Fix spelling error in manpage (Dmitry Bogatov) - * Build: Support pip from git (Darko Poljak, Ľubomír Kučera) - * Type __package_update_index: Add Alpine support (Ahmed Bilal Khalid) - 6.0.2: 2019-10-17 * New types: __xymon_server, __xymon_apache, __xymon_config, __xymon_client (Thomas Eckert) * Type __letsencrypt_cert: Add Arch Linux support (Nico Schottelius) diff --git a/docs/src/cdist-real-world.rst b/docs/src/cdist-real-world.rst index ba118d63..8ccb0fc9 100644 --- a/docs/src/cdist-real-world.rst +++ b/docs/src/cdist-real-world.rst @@ -27,7 +27,7 @@ for that. This type will: - configure nginx. Our type will not create the actual python application. Its intention is only -to configure hosting for specified user and project. It is up to the user to +to configure hosing for specified user and project. It is up to the user to create his/her applications. So let's start. @@ -480,7 +480,7 @@ Creating python bottle application We now need to create Bottle application. As you remember from the beginning of this walkthrough our type does not create the actual python application, -its intention is only to configure hosting for specified user and project. +its intention is only to configure hosing for specified user and project. It is up to the user to create his/her applications. Become app user:: diff --git a/docs/src/cdist-upgrade.rst b/docs/src/cdist-upgrade.rst index 67fd4934..e57ed63c 100644 --- a/docs/src/cdist-upgrade.rst +++ b/docs/src/cdist-upgrade.rst @@ -11,7 +11,7 @@ To upgrade cdist in the current branch use git pull # Also update the manpages - make man + ./build man export MANPATH=$MANPATH:$(pwd -P)/doc/man If you stay on a version branche (i.e. 1.0, 1.1., ...), nothing should break. diff --git a/hacking/timing-tests/benchmark-files.sh b/hacking/timing-tests/benchmark-files.sh deleted file mode 100644 index c71d1c7e..00000000 --- a/hacking/timing-tests/benchmark-files.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -num=50000 -dsthost=localhost - -tmp=$(mktemp -d) -remote_tmp=${tmp}-remote - -cd "$tmp" - -create_files() { - i=0 - while [ $i -lt $num ]; do - echo $i > file-${i} - i=$((i+1)) - done -} - -delete_remote() { - ssh "${dsthost}" "rm -rf ${remote_tmp}" -} - - -tar_remote() { - cd "${tmp}" - tar c . | ssh "${dsthost}" "mkdir ${remote_tmp}; cd ${remote_tmp}; tar x" -} - -cdist_remote() -{ - ( - while [ $i -lt $num ]; do - echo __file ${remote_tmp}/file-${i} --source "${tmp}/file-${i}" - i=$((i+1)) - done - ) | cdist config -i - -vv "${dsthost}" - -} - -cdist_remote_parallel() -{ - ( - while [ $i -lt $num ]; do - echo __file ${remote_tmp}/file-${i} --source "${tmp}/file-${i}" - i=$((i+1)) - done - ) | cdist config -j10 -i - -vv "${dsthost}" - -} - -echo "Creating ${num} files" -time create_files - -echo "scping files" -time scp -r "${tmp}" "${dsthost}:$remote_tmp" >/dev/null - -echo "delete remote" -time delete_remote - -echo "taring files" -time tar_remote - -echo "delete remote" -time delete_remote - -echo "cdisting files" -time cdist_remote - -echo "delete remote" -time delete_remote - -echo "cdisting files (parallel)!" -time cdist_remote - -echo "delete remote" -time delete_remote - -echo "delete local" -rm -rf "$tmp"