]> gitweb.fluxo.info Git - hydra.git/commitdiff
Renames system-upgrade to dist-upgrade, keep alias
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 20 Mar 2016 18:05:44 +0000 (15:05 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 20 Mar 2016 18:05:44 +0000 (15:05 -0300)
share/hydractl/dist-upgrade [new file with mode: 0755]
share/hydractl/system-upgrade [changed from file to symlink]

diff --git a/share/hydractl/dist-upgrade b/share/hydractl/dist-upgrade
new file mode 100755 (executable)
index 0000000..f0c42b1
--- /dev/null
@@ -0,0 +1,190 @@
+#!/bin/bash
+#
+# Do a system upgrade, from a version to the next.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public
+# License along with this program.  If not, see
+# <http://www.gnu.org/licenses/>.
+
+# Load
+source $APP_BASE/lib/hydra/functions || exit 1
+hydra_config_load
+
+# Parameters
+TMP="/tmp"
+STATE="$TMP/system-upgrade"
+ENV="$TMP/system-upgrade-env"
+
+# Command line arguments
+BASENAME="`basename $0`"
+NEXTRELEASE="$1"
+
+# Proceed to the next upgrade stage
+function hydra_system_upgrade_stage {
+  STAGE="$1"
+  echo $STAGE > $STATE
+  hydra_system_upgrade_$STAGE
+}
+
+# Set and check upgrade environment
+function hydra_system_upgrade_env {
+  # Set initial state
+  hydra_system_upgrade_stage env
+
+  # Available releases
+  #release="`facter lsbdistcodename`" # this doesn't work on squeeze
+  release="`facter 2> /dev/null | grep lsbdistcodename | sed -e 's/lsbdistcodename => //'`"
+  nextrelease="`hydra_next_debian_release $release`"
+
+  # Is a virtual machine?
+  virtual="`facter 2> /dev/null | grep virtual | grep -v '^is_virtual' | sed -e 's/virtual => //'`"
+
+  # Save environment
+  echo "release=$release"          > $ENV
+  echo "nextrelease=$nextrelease" >> $ENV
+  echo "nextrelease=$nextrelease" >> $ENV
+  echo "virtual=$virtual"         >> $ENV
+
+  # Check release
+  if [ "$?" != "0" ]; then
+    echo "Unsupported release"
+    exit 1
+  fi
+
+  # Check optional parameter
+  if [ ! -z "$NEXTRELEASE" ]; then
+    if [ "$NEXTRELEASE" == "$release" ]; then
+      echo "System is already upgraded to $NEXTRELEASE"
+      exit 1
+    fi
+
+    if [ "$NEXTRELEASE" != "$nextrelease" ]; then
+      echo "Cannot upgrade: next release for this system is $nextrelease"
+      exit 1
+    fi
+  fi
+
+  # Set next  state
+  hydra_system_upgrade_stage prepare
+}
+
+# Prepare the environment for a system upgrade
+function hydra_system_upgrade_prepare {
+  # Ensure puppet is stopped during the process
+  if [ -e "/etc/default/puppet" ]; then
+    echo "Disabling puppet agent..."
+    sed -i -e 's/START=yes/START=no/' /etc/default/puppet
+    service puppet stop
+  fi
+
+  # Configure apt for the next debian release
+  echo ""
+  echo "Updating apt configuration..."
+  sed -i -e "s/$release/$nextrelease/g" /etc/apt/sources.list
+  sed -i -e "s/$release/$nextrelease/g" /etc/apt/preferences
+  sed -i -e 's|^deb http://backports.debian.org/debian-backports|#deb http://backports.debian.org/debian-backports|' /etc/apt/sources.list
+
+  # These will be generated by puppet and can be safely removed
+  rm -f /etc/apt/sources.list.d/*
+  rm -f /etc/apt/preferences.d/*
+
+  # These might lead in upgrade errors
+  if [ "$virtual" == "vserver" ] && [ "$nextrelease" == "wheezy" ]; then
+    apt-get remove makedev -y
+    apt-get remove colord  -y
+  fi
+
+  # Set next  state
+  hydra_system_upgrade_stage download
+}
+
+# Update package listing and download new packages
+function hydra_system_upgrade_download {
+  echo ""
+  echo "Updating package listing..."
+  apt-get update
+  echo ""
+  echo "Downloading packages..."
+  apt-get dist-upgrade -d -y
+  hydra_system_upgrade_stage upgrade
+}
+
+# Proceed with the actual upgrade
+function hydra_system_upgrade_upgrade {
+  echo ""
+  echo "Upgrading the system..."
+  DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade
+
+  if [ "$?" != "0" ]; then
+    echo "Upgrade failed. Please fix it manually and run this command again."
+    exit 1
+  fi
+
+  hydra_system_upgrade_stage custom
+}
+
+# Custom upgrade procedures
+function hydra_system_upgrade_custom {
+  if [ "$nextrelease" == "wheezy" ]; then
+    # Old suhosin config
+    rm -f /etc/php5/conf.d/suhosin.ini
+
+    # This has to be manually installed again
+    if [ -f "/etc/php5/cli/conf.d/uploadprogress.ini" ]; then
+      pecl uninstall uploadprogress
+      pecl install   uploadprogress
+    fi
+  fi
+
+  if [ "$nextrelease" == "jessie" ]; then
+    # We're using a masterless puppet setup, so no agent
+    apt-get install puppet-common
+    apt-get purge puppet
+
+    # Purge old monitoring infrastructure
+    apt-get purge 'munin*' 'nagios*'
+    rm -rf /etc/nagios* /etc/munin* /etc/munin* /usr/share/munin*
+
+    # Cleanup old scripts
+    rm -f /usr/local/sbin/check-puppetd.sh
+    rm -f remove /etc/cron.d/puppetd
+  fi
+
+  hydractl trac-upgrade
+  hydra_system_upgrade_stage cleanup
+}
+
+# Cleanup procedures
+function hydra_system_upgrade_cleanup {
+  apt-get autoremove --purge -y
+  apt-get clean
+}
+
+# Initialize
+if [ ! -e "$STATE" ]; then
+  hydra_system_upgrade_env
+else
+  # Resume from the previous state
+  STAGE="`cat $STATE`"
+
+  # Restore environment
+  if [ -e "$ENV" ]; then
+    source $ENV
+  fi
+
+  hydra_system_upgrade_$STAGE
+fi
+
+# Teardown
+rm -f $STATE
+rm -f $ENV
deleted file mode 100755 (executable)
index f0c42b14ee257c6bc995923d4012962252fb406e..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/bin/bash
-#
-# Do a system upgrade, from a version to the next.
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero 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 Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public
-# License along with this program.  If not, see
-# <http://www.gnu.org/licenses/>.
-
-# Load
-source $APP_BASE/lib/hydra/functions || exit 1
-hydra_config_load
-
-# Parameters
-TMP="/tmp"
-STATE="$TMP/system-upgrade"
-ENV="$TMP/system-upgrade-env"
-
-# Command line arguments
-BASENAME="`basename $0`"
-NEXTRELEASE="$1"
-
-# Proceed to the next upgrade stage
-function hydra_system_upgrade_stage {
-  STAGE="$1"
-  echo $STAGE > $STATE
-  hydra_system_upgrade_$STAGE
-}
-
-# Set and check upgrade environment
-function hydra_system_upgrade_env {
-  # Set initial state
-  hydra_system_upgrade_stage env
-
-  # Available releases
-  #release="`facter lsbdistcodename`" # this doesn't work on squeeze
-  release="`facter 2> /dev/null | grep lsbdistcodename | sed -e 's/lsbdistcodename => //'`"
-  nextrelease="`hydra_next_debian_release $release`"
-
-  # Is a virtual machine?
-  virtual="`facter 2> /dev/null | grep virtual | grep -v '^is_virtual' | sed -e 's/virtual => //'`"
-
-  # Save environment
-  echo "release=$release"          > $ENV
-  echo "nextrelease=$nextrelease" >> $ENV
-  echo "nextrelease=$nextrelease" >> $ENV
-  echo "virtual=$virtual"         >> $ENV
-
-  # Check release
-  if [ "$?" != "0" ]; then
-    echo "Unsupported release"
-    exit 1
-  fi
-
-  # Check optional parameter
-  if [ ! -z "$NEXTRELEASE" ]; then
-    if [ "$NEXTRELEASE" == "$release" ]; then
-      echo "System is already upgraded to $NEXTRELEASE"
-      exit 1
-    fi
-
-    if [ "$NEXTRELEASE" != "$nextrelease" ]; then
-      echo "Cannot upgrade: next release for this system is $nextrelease"
-      exit 1
-    fi
-  fi
-
-  # Set next  state
-  hydra_system_upgrade_stage prepare
-}
-
-# Prepare the environment for a system upgrade
-function hydra_system_upgrade_prepare {
-  # Ensure puppet is stopped during the process
-  if [ -e "/etc/default/puppet" ]; then
-    echo "Disabling puppet agent..."
-    sed -i -e 's/START=yes/START=no/' /etc/default/puppet
-    service puppet stop
-  fi
-
-  # Configure apt for the next debian release
-  echo ""
-  echo "Updating apt configuration..."
-  sed -i -e "s/$release/$nextrelease/g" /etc/apt/sources.list
-  sed -i -e "s/$release/$nextrelease/g" /etc/apt/preferences
-  sed -i -e 's|^deb http://backports.debian.org/debian-backports|#deb http://backports.debian.org/debian-backports|' /etc/apt/sources.list
-
-  # These will be generated by puppet and can be safely removed
-  rm -f /etc/apt/sources.list.d/*
-  rm -f /etc/apt/preferences.d/*
-
-  # These might lead in upgrade errors
-  if [ "$virtual" == "vserver" ] && [ "$nextrelease" == "wheezy" ]; then
-    apt-get remove makedev -y
-    apt-get remove colord  -y
-  fi
-
-  # Set next  state
-  hydra_system_upgrade_stage download
-}
-
-# Update package listing and download new packages
-function hydra_system_upgrade_download {
-  echo ""
-  echo "Updating package listing..."
-  apt-get update
-  echo ""
-  echo "Downloading packages..."
-  apt-get dist-upgrade -d -y
-  hydra_system_upgrade_stage upgrade
-}
-
-# Proceed with the actual upgrade
-function hydra_system_upgrade_upgrade {
-  echo ""
-  echo "Upgrading the system..."
-  DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade
-
-  if [ "$?" != "0" ]; then
-    echo "Upgrade failed. Please fix it manually and run this command again."
-    exit 1
-  fi
-
-  hydra_system_upgrade_stage custom
-}
-
-# Custom upgrade procedures
-function hydra_system_upgrade_custom {
-  if [ "$nextrelease" == "wheezy" ]; then
-    # Old suhosin config
-    rm -f /etc/php5/conf.d/suhosin.ini
-
-    # This has to be manually installed again
-    if [ -f "/etc/php5/cli/conf.d/uploadprogress.ini" ]; then
-      pecl uninstall uploadprogress
-      pecl install   uploadprogress
-    fi
-  fi
-
-  if [ "$nextrelease" == "jessie" ]; then
-    # We're using a masterless puppet setup, so no agent
-    apt-get install puppet-common
-    apt-get purge puppet
-
-    # Purge old monitoring infrastructure
-    apt-get purge 'munin*' 'nagios*'
-    rm -rf /etc/nagios* /etc/munin* /etc/munin* /usr/share/munin*
-
-    # Cleanup old scripts
-    rm -f /usr/local/sbin/check-puppetd.sh
-    rm -f remove /etc/cron.d/puppetd
-  fi
-
-  hydractl trac-upgrade
-  hydra_system_upgrade_stage cleanup
-}
-
-# Cleanup procedures
-function hydra_system_upgrade_cleanup {
-  apt-get autoremove --purge -y
-  apt-get clean
-}
-
-# Initialize
-if [ ! -e "$STATE" ]; then
-  hydra_system_upgrade_env
-else
-  # Resume from the previous state
-  STAGE="`cat $STATE`"
-
-  # Restore environment
-  if [ -e "$ENV" ]; then
-    source $ENV
-  fi
-
-  hydra_system_upgrade_$STAGE
-fi
-
-# Teardown
-rm -f $STATE
-rm -f $ENV
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..bb7a06e6e3cf94e78e61b8875ef1f02a8d7975ad
--- /dev/null
@@ -0,0 +1 @@
+dist-upgrade
\ No newline at end of file