Cài đặt Discourse đã phức tạp, muốn dọn nhà Discourse từ máy chủ hiện tại sang máy chủ mới còn rắc rối hơn. Bài viết này mình sẽ hướng dẫn cách di chuyển Discourse sang máy chủ mới.
Mục Lục
1. Update Discourse lên phiên bản mới nhất
Đầu tiên bạn cần cập nhật Discourse lên phiên bản mới nhất trên máy chủ hiện tại. Thao tác này giúp hạn chế lỗi không tương thích khi di chuyển file và cơ sở dữ liệu sang máy chủ mới (sẽ được cài đặt Discourse mới nhất).
2. Backup Discourse trên máy chủ hiện tại
Kế tiếp, cần phải backup (sao lưu) lại toàn bô dữ liệu trên máy chủ hiện tại. Chúng ta sẽ dùng file này để phục hồi nguyên trạng Discourse trên máy chủ ở bước sau.
Đợi vài phút để hệ thống zip toàn bộ dữ liệu thành một file tar.gz
3. Cài đặt Discourse trên máy chủ mới
Bên máy chủ mới, chúng ta cần chuẩn bị sẵn hệ điều hành Ubuntu 14.04 với Docker đã được cài sẵn.
sudo apt-get update sudo apt-get -y install linux-image-extra-$(uname -r) sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -" sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list" sudo apt-get update sudo apt-get -y install lxc-docker
Tiếp theo, tải Discourse về máy chủ
sudo -s mkdir /var/discourse git clone https://github.com/discourse/discourse_docker.git /var/discourse cd /var/discourse
Trước khi cài đặt Discourse, chúng ta cần copy file cấu hình app.yml từ máy chủ cũ để bảo đảm thông tin chính xác bằng cách sử dụng lệnh rsync
cd /var/discourse/containers rsync -avz root@xxx.xxx.xxx.xxx:/var/discourse/containers/app.yml
Nhớ thay thế xxx.xxx.xxx.xxx bằng địa chỉ IP của máy chủ hiện tại đang chạy Discourse. Sau đó bắt đầu tiến hành cài đặt Discourse
./launcher rebuild app
4. Copy file backup qua máy chủ mới
Sau khi máy chủ mới hoàn thành việc cài đặt, chúng ta sẽ tiến hành copy file backup từ máy chủ hiện tại sang. File backup được lưu trong thư mục /var/discourse/shared/standalone/backups/default/
.
root@vps344586:/var/discourse/shared/standalone/backups/default# ls club-c-ng-d-ng-chia-s-kinh-nghi-m-ch-y-b-2017-06-16-033652-v20170526125321.tar.gz club-c-ng-d-ng-chia-s-kinh-nghi-m-ch-y-b-2017-06-18-033243-v20170526125321.tar.gz club-c-ng-d-ng-chia-s-kinh-nghi-m-ch-y-b-2017-06-20-033123-v20170526125321.tar.gz club-c-ng-d-ng-chia-s-kinh-nghi-m-ch-y-b-2017-06-21-112847-v20170526125321.tar.gz tmp
Chúng ta cần copy file backup vừa mới tạo ở bước 2 nằm trong thư mục này từ máy chủ hiện tại sang máy chủ mới. Ở đây, file mình cần chép là club-c-ng-d-ng-chia-s-kinh-nghi-m-ch-y-b-2017-06-21-112847-v20170526125321.tar.gz
Sử dụng lệnh rsync để copy file giữa hai máy chủ, khỏi mất thời gian tải về máy tính cá nhân rồi tải lên máy chủ khác. Hãy chuyển qua màn hình terminal của máy chủ mới và bắt đầu copy file
cd /var/discourse/shared/standalone/backups/default rsync -avz root@xxx.xxx.xxx.xxx:/var/discourse/shared/standalone/backups/default/club-c-ng-d-ng-chia-s-kinh-nghi-m-ch-y-b-2017-06-21-112847-v20170526125321.tar.gz .
Nhớ thay thế xxx.xxx.xxx.xxx bằng địa chỉ IP của máy chủ hiện tại đang chạy Discourse và tên club…tar.gz bằng tên file trên hệ thống của bạn.
5. Restore file backup trên máy chủ mới
Để restore file backup vừa mới copy, cách nhanh nhất là dùng dòng lệnh ngay trong terminal.
cd /var/discourse ./launcher enter app discourse enable_restore discourse restore <ten.file.backup.ban.vua.copy.tar.gz> discourse disable_restore
Nếu suôn sẻ, hệ thống sẽ có thông báo như dưới đây
Reconnecting to the database... Reloading site settings... Clearing emoji cache... Disabling readonly mode... Extracting uploads... Notifying 'system' of the end of the restore... Cleaning stuff up... Removing tmp '/var/www/discourse/tmp/restores/default/2017-06-21-131347' directory... Unpausing sidekiq... Marking restore as finished... Finished! [SUCCESS] Restore done.
Nếu gặp lỗi, các bạn xem kỹ báo lỗi là gì, sau đó tìm trên Google để biết cách khắc phục hoặc có thể comment dưới đây, mình sẽ hướng dẫn (nếu có thể).
6. Thay đổi DNS trỏ về IP của máy chủ mới
Việc cuối cùng bạn cần làm là thay đổi DNS trỏ về IP của máy chủ mới. Công việc dọn nhà cho Discourse xem như hoàn tất.
Chúc các bạn thành công.
[convertkit form=7087807]
Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!