diff options
Diffstat (limited to 'doc/update/8.2-to-8.3.md')
-rw-r--r-- | doc/update/8.2-to-8.3.md | 226 |
1 files changed, 2 insertions, 224 deletions
diff --git a/doc/update/8.2-to-8.3.md b/doc/update/8.2-to-8.3.md index 3a0d647cbfe..8514aa13f48 100644 --- a/doc/update/8.2-to-8.3.md +++ b/doc/update/8.2-to-8.3.md @@ -1,227 +1,5 @@ --- -comments: false +redirect_to: upgrading_from_source.md --- -# From 8.2 to 8.3 - -Make sure you view this update guide from the tag (version) of GitLab you would -like to install. In most cases this should be the highest numbered production -tag (without rc in it). You can select the tag in the version dropdown at the -top left corner of GitLab (below the menu bar). - -If the highest number stable branch is unclear please check the -[GitLab Blog](https://about.gitlab.com/blog/archives.html) for installation -guide links by version. - -**NOTE:** GitLab 8.0 introduced several significant changes related to -installation and configuration which *are not duplicated here*. Be sure you're -already running a working version of at least 8.0 before proceeding with this -guide. - -### 0. Double-check your Git version - -**This notice applies only to /usr/local/bin/git** - -If you compiled Git from source on your GitLab server then please double-check -that you are using a version that protects against CVE-2014-9390. For six -months after this vulnerability became known the GitLab installation guide -still contained instructions that would install the outdated, 'vulnerable' Git -version 2.1.2. - -Run the following command to get your current Git version: - -```sh -/usr/local/bin/git --version -``` - -If you see 'No such file or directory' then you did not install Git according -to the outdated instructions from the GitLab installation guide and you can go -to the next step 'Stop server' below. - -If you see a version string then it should be v1.8.5.6, v1.9.5, v2.0.5, v2.1.4, -v2.2.1 or newer. You can use the [instructions in the GitLab source installation -guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md#1-packages-dependencies) -to install a newer version of Git. - -### 1. Stop server - - sudo service gitlab stop - -### 2. Backup - -```bash -cd /home/git/gitlab -sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production -``` - -### 3. Get latest code - -```bash -sudo -u git -H git fetch --all -sudo -u git -H git checkout -- db/schema.rb # local changes will be restored automatically -``` - -For GitLab Community Edition: - -```bash -sudo -u git -H git checkout 8-3-stable -``` - -OR - -For GitLab Enterprise Edition: - -```bash -sudo -u git -H git checkout 8-3-stable-ee -``` - -### 4. Update gitlab-shell - -```bash -cd /home/git/gitlab-shell -sudo -u git -H git fetch --all -sudo -u git -H git checkout v2.6.9 -``` - -### 5. Update gitlab-workhorse - -Install and compile gitlab-workhorse. This requires [Go 1.5](https://golang.org/dl) -which should already be on your system from GitLab 8.1. - -```bash -cd /home/git/gitlab-workhorse -sudo -u git -H git fetch --all -sudo -u git -H git checkout 0.5.4 -sudo -u git -H make -``` - -### 6. Install libs, migrations, etc. - -```bash -cd /home/git/gitlab - -# MySQL installations (note: the line below states '--without postgres') -sudo -u git -H bundle install --without postgres development test --deployment - -# PostgreSQL installations (note: the line below states '--without mysql') -sudo -u git -H bundle install --without mysql development test --deployment - -# Run database migrations -sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production - -# Clean up assets and cache -sudo -u git -H bundle exec rake assets:clean assets:precompile cache:clear RAILS_ENV=production - -``` - -### 7. Update configuration files - -#### New configuration options for `gitlab.yml` - -There are new configuration options available for [`gitlab.yml`][yaml]. View them with the command below and apply them manually to your current `gitlab.yml`: - -```sh -git diff origin/8-2-stable:config/gitlab.yml.example origin/8-3-stable:config/gitlab.yml.example -``` - -#### GitLab default file - -The value of the `gitlab_workhorse_options` variable should be updated within the default gitlab file (`/etc/default/gitlab`) according to the following diff: - -```sh -git diff origin/8-2-stable:lib/support/init.d/gitlab.default.example origin/8-3-stable:lib/support/init.d/gitlab.default.example -``` - -#### Nginx configuration - -GitLab 8.3 introduces major changes in the NGINX configuration. -Because all HTTP requests pass through gitlab-workhorse now a lot of -directives need to be removed from NGINX. During future upgrades there -should be much less changes in the NGINX configuration because of -this. - -View changes between the previous recommended Nginx configuration and the -current one: - -```sh -# For HTTPS configurations -git diff origin/8-2-stable:lib/support/nginx/gitlab-ssl origin/8-3-stable:lib/support/nginx/gitlab-ssl - -# For HTTP configurations -git diff origin/8-2-stable:lib/support/nginx/gitlab origin/8-3-stable:lib/support/nginx/gitlab -``` - -If you are using Apache instead of NGINX please see the updated [Apache templates]. -Also note that because Apache does not support upstreams behind Unix sockets you -will need to let gitlab-workhorse listen on a TCP port. You can do this -via [/etc/default/gitlab]. - -[Apache templates]: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/apache -[/etc/default/gitlab]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-3-stable/lib/support/init.d/gitlab.default.example#L34 - -#### Init script - -We updated the init script for GitLab in order to pass new -configuration options to gitlab-workhorse. We let gitlab-workhorse -connect to the Rails application via a Unix domain socket and we tell -it where the 'public' directory of GitLab is. - -``` -cd /home/git/gitlab -sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab -``` - -For Ubuntu 16.04.1 LTS: - - sudo systemctl daemon-reload - -### 8. Use Redis v2.8.0+ - -Previous versions of GitLab allowed Redis versions >= 2.0 to be used, but -GitLab 8.3 uses Sidekiq 4.0, which requires Redis 2.8. You can check your Redis version -with the following command: - - redis-cli info | grep redis_version - -If you need to upgrade, see the [installation guide for Redis](https://gitlab.com/gitlab-org/gitlab-ce/blob/8-3-stable/doc/install/installation.md#6-redis). - -### 9. Start application - - sudo service gitlab start - sudo service nginx restart - -### 10. Check application status - -Check if GitLab and its environment are configured correctly: - - sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production - -To make sure you didn't miss anything run a more thorough check: - - sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production - -If all items are green, then congratulations, the upgrade is complete! - -## Things went south? Revert to previous version (8.2) - -### 1. Revert the code to the previous version - -Follow the [upgrade guide from 8.1 to 8.2](8.1-to-8.2.md), except for the -database migration (the backup is already migrated to the previous version). - -### 2. Restore from the backup - -```bash -cd /home/git/gitlab -sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=production -``` - -If you have more than one backup `*.tar` file(s) please add `BACKUP=timestamp_of_backup` to the command above. - -## Troubleshooting - -### "You appear to have cloned an empty repository." - -See the [7.14 to 8.0 update guide](7.14-to-8.0.md#troubleshooting). - -[yaml]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-3-stable/config/gitlab.yml.example +This document was moved to [another location](upgrading_from_source.md). |