Co-authored-by: Rachael Sewell <rachmari@github.com> Co-authored-by: Rachael Rose Renk <91027132+rachaelrenk@users.noreply.github.com> Co-authored-by: David Jarzebowski <davidjarzebowski@github.com> Co-authored-by: Anne-Marie <102995847+am-stead@users.noreply.github.com> Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com> Co-authored-by: Steve Guntrip <stevecat@github.com> Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Co-authored-by: Sam Browning <106113886+sabrowning1@users.noreply.github.com> Co-authored-by: Torsten Walter <torstenwalter@github.com> Co-authored-by: Henry Mercer <henrymercer@github.com> Co-authored-by: Sarah Edwards <skedwards88@github.com>
6.5 KiB
6.5 KiB
title, intro, product, redirect_from, versions, type, topics
| title | intro | product | redirect_from | versions | type | topics | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Upgrading a cluster | To upgrade a {% data variables.product.prodname_ghe_server %} cluster to the latest release, use the administrative shell (SSH). | {% data reusables.gated-features.cluster %} |
|
|
how_to |
|
About upgrades to a {% data variables.product.product_name %} cluster
{% data reusables.enterprise.about-upgrades %}
Upgrading with a hotpatch
{% data reusables.enterprise_installation.hotpatching-explanation %} The hotpatch installation script installs the hotpatch on every node in the cluster and restarts the services in their proper sequence to avoid downtime.
- Back up your data with {% data variables.product.prodname_enterprise_backup_utilities %}.
- From the administrative shell of any node, use the
ghe-cluster-hotpatchcommand to install the latest hotpatch. You can provide a URL for a hotpatch, or manually download the hotpatch and specify a local filename.$ ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg
Upgrading with an upgrade package
Use an upgrade package to upgrade a {% data variables.product.prodname_ghe_server %} cluster to the latest feature release. For example, you can upgrade from 2.11 to 2.13.
Preparing to upgrade
- Review Cluster network configuration for the version you are upgrading to, and update your configuration as needed.
- Back up your data with {% data variables.product.prodname_enterprise_backup_utilities %}.
- Schedule a maintenance window for end users of your {% data variables.product.prodname_ghe_server %} cluster, as it will be unavailable for normal use during the upgrade. Maintenance mode blocks user access and prevents data changes while the cluster upgrade is in progress.
- On the {% data variables.product.prodname_ghe_server %} Download Page, copy the URL for the upgrade .pkg file to the clipboard.
- From the administrative shell of any node, use the
ghe-cluster-eachcommand combined withcurlto download the release package to each node in a single step. Use the URL you copied in the previous step as an argument.$ ghe-cluster-each -- "cd /home/admin && curl -L -O https://PACKAGE-URL.pkg" > ghe-app-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 24.2M 0 0:00:20 0:00:20 --:--:-- 27.4M > ghe-data-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 21.3M 0 0:00:23 0:00:23 --:--:-- 25.8M > ghe-data-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.6M > ghe-app-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.8M 0 0:00:25 0:00:25 --:--:-- 17.6M > ghe-data-node-3: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-3: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.5M - Identify the primary MySQL node, which is defined as
mysql-master = <hostname>incluster.conf. This node will be upgraded last.
Upgrading the cluster nodes
- Enable maintenance mode according to your scheduled window by connecting to the administrative shell of any cluster node and running
ghe-cluster-maintenance -s. - With the exception of the primary MySQL node, connect to the administrative shell of each of the {% data variables.product.prodname_ghe_server %} nodes.
Run the
ghe-upgradecommand, providing the package file name you downloaded in Step 4 of Preparing to upgrade:$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) > <enterprise@github.com>" - The upgrade process will reboot the node once it completes. Verify that you can
pingeach node after it reboots. - Connect to the administrative shell of the primary MySQL node. Run the
ghe-upgradecommand, providing the package file name you downloaded in Step 4 of Preparing to upgrade:$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) > <enterprise@github.com>" - The upgrade process will reboot the primary MySQL node once it completes. Verify that you can
pingeach node after it reboots.{% ifversion ghes %} - Connect to the administrative shell of the primary MySQL node and run the
ghe-cluster-config-applycommand. - When
ghe-cluster-config-applyis complete, check that the services are in a healthy state by runningghe-cluster-status.{% endif %} - Exit maintenance mode from the administrative shell of any node by running
ghe-cluster-maintenance -u.