Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: Changing your platform
shortTitle: Changing platform
intro: 'How to change the platform that runs {% data variables.location.product_location %}'
type: how_to
topics:
- Infrastructure
- Migration
- Enterprise
versions:
ghes: '*'
---

In some cases, you may need to change the platform on which {% data variables.location.product_location %} runs, such as moving from VMware to Azure.

## Recommendations

You should carefully plan any out migration procedures and consider first testing on a staging environment. For more information, see [AUTOTITLE](/admin/installing-your-enterprise-server/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance).

Moving platforms using a replica will require the least amount of time for the migration process but will require you to make changes to your live environment in order to setup the replication.

Moving via backup and restore will not require any changes to your live environment, however the migration will take a significant amount of time. The specific amount of time to complete the migration will vary based the performance of your backup host, and the network speeds between your backup host and the new instance. Maintenance mode should also be enabled throughout the process otherwise users may be able to make changes which will not be reflected on your new instance.

> [!WARNING]
> You should not use utilities which convert {% data variables.location.product_location %} from one platform to another. Doing so could cause unintended side effects such as system instability.

## Move platforms using a HA replica

1. Set up a new {% data variables.product.prodname_ghe_server %} instance on your chosen platform. See [AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance).
1. Configure your new {% data variables.product.prodname_ghe_server %} instance as a replica. See [AUTOTITLE](/admin/monitoring-and-managing-your-instance/configuring-high-availability/creating-a-high-availability-replica).
1. Failover to your replica. See [AUTOTITLE](/admin/monitoring-and-managing-your-instance/configuring-high-availability/initiating-a-failover-to-your-replica-appliance).

## Moving platforms using backup and restore

1. Setup backups for your existing {% data variables.product.prodname_ghe_server %} instance. See [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance).
1. Set up a new {% data variables.product.prodname_ghe_server %} instance on your chosen platform. See [AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance).
1. Communicate the upcoming downtime to your users and enable maintenance mode. For more information, see the following articles.

* [AUTOTITLE](/admin/managing-accounts-and-repositories/communicating-information-to-users-in-your-enterprise/customizing-user-messages-for-your-enterprise#creating-a-mandatory-message)
* [AUTOTITLE](/admin/administering-your-instance/configuring-maintenance-mode/enabling-and-scheduling-maintenance-mode)
1. Create a new backup of your existing {% data variables.product.prodname_ghe_server %} instance.
1. Restore the backup to your new {% data variables.product.prodname_ghe_server %} instance. If you are using {% data variables.product.prodname_actions %}, see [AUTOTITLE](/admin/managing-github-actions-for-your-enterprise/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled)
1. Update the DNS to point to the address of your new {% data variables.product.prodname_ghe_server %} instance.
1. Disable maintenance mode and let users know they can continue normal operations.

## Further reading

* [AUTOTITLE](/admin/overview/about-github-enterprise-server)
* [AUTOTITLE](/admin/monitoring-and-managing-your-instance/configuring-high-availability/about-high-availability-configuration)
* [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance#about-github-enterprise-server-backup-utilities)
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@ children:
- /increasing-storage-capacity
- /increasing-cpu-or-memory-resources
- /using-generation-2-virtual-machines
- /changing-your-platform
shortTitle: Update VM & resources
---
1 change: 0 additions & 1 deletion data/features/security-overview-export-data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,3 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.16'
2 changes: 2 additions & 0 deletions data/reusables/repositories/rulesets-commit-regex.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ Rulesets support RE2 syntax. For more information, see Google's [syntax guide](h

By default, regular expressions in metadata restrictions do not consider multiple lines of text. For example, if you have a multiline commit message, the pattern `^ABC` will be a match if the first line of the message starts with `ABC`. To match multiple lines of the message, start your expression with `(?m)`.

When using regular expression metacharacter classes that contain a backslash `\` it must be escaped with an additional backslash. For example `task#\\d{1,4}`

The negative lookahead assertion, denoted `?!`, is not supported. However, for cases where you need to look for a given string that is not followed by another given string, you can use the positive lookahead assertion, denoted `?`, combined with the "Must not match a given regex pattern" requirement.

> [!NOTE]
Expand Down
Loading