en
지원하는 언어
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI 번역
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

간편한 가상 머신(VM)

개요

이 문서는 서버 솔루션을 구매한 Easy Software에서 제공하는 가상머신(VM)을 위한 것입니다. 1년 2022월 XNUMX일 이후에 생성된 VM에 유효합니다.

또한 자신의 서버 환경에 영감을 줄 수도 있지만 이러한 경우 사용 중인 구성 요소와 기술이 다양하기 때문에 보장할 수 없습니다.

VM은 소규모 사이트(동시 작업 사용자 10명)만을 위해 구성됩니다. VM은 거의 프로덕션 준비가 되어 있지만 환경에 VM을 설치하고 백업, 모니터링, 네트워킹, 보안 정책 등을 설정하려면 숙련된 관리자가 필요합니다. Easy Software는 전용 환경에서 이 VM을 실행할 책임이 없습니다. VM은 애플리케이션이 어떻게 할 수 있는지에 대한 예입니다. 호스팅됩니다.
이 README는 "Easy Project" 또는 "Easy Redmine"으로 대체될 수 있는 "응용 프로그램"을 다룹니다.

첫 번째 단계

VM이 특정 시점에 생성되었기 때문에 배포할 때 일부 구성 요소에서 이미 일부 패치 또는 보안 수정 사항을 릴리스했을 수 있습니다.
그렇기 때문에 항상 백업으로 시작한 다음 OS 업데이트. 최신 보안 수정 사항을 설치하고 오래된 구성 요소를 업데이트합니다.

VM 설명

OS는 64비트 에디션의 데비안입니다.

중요한 기본값은 다음과 같습니다.

  • OS는 포트 22를 통해 SSH로 사용할 수 있습니다.
  • 방화벽이 설정되지 않았습니다(시스템 관리자에게 달려 있음).
  • 디스크는 ~100GB입니다.
    • /부팅 512M
    • / 30G
    • /집 60G
    • 4G 교환
    • 디스크를 늘리려면 사용 가능한 LVM을 사용하십시오.
  • 애플리케이션은 HTTPS에서 수신하지만 자체 서명된 인증서를 사용하므로 최대한 빨리 교체해야 합니다(자세한 내용은 아래 참조).
  • 애플리케이션이 /home/easy/[application_name]/current에서 실행 중입니다.

리눅스 로그인:

  • 사용자 이름 : easy
  • 비밀번호: e4syPwd-

빨리 바꿔주세요. 이렇게하려면 명령을 실행하십시오. passwd 터미널에

MySQL 로그인:
단순히 명령을 사용 mysql your_app_name (응용 프로그램 이름의 모든 점 또는 대시는 밑줄로 대체해야 합니다. 예: your-app-name은 your_app_name이어야 함)

애플리케이션 로그인:
기본 로그인("깨끗한" 데이터베이스의 경우)은 다음과 같습니다.

  • 사용자 이름 : 관리자
  • 비밀번호 : admin

VM에 대한 기본 로그인은 다음과 같습니다. 데모 데이터 입니다

  • 사용자 이름: 관리자
  • 비밀번호: easy848


클라우드 애플리케이션의 데이터베이스의 경우 비밀번호는 이전과 동일하게 유지됩니다.

애플리케이션의 홈 구조

.
├── 백업 # 백업 스크립트가 데이터를 저장합니다.
└── $APP_NAME
    ├── 애플리케이션.pid           
    ├── application.sock # nginx는 이 소켓을 사용합니다.
    ├── 구성
    │ ├── # 사전 생성된 애플리케이션 구성  
    │ ├── # (데이터베이스, 메일링, 시크릿, 앱 서버 등...)
    │ └── ...
    ├── 현재
    │ ├── config # 모든 애플리케이션 구성
    │ │ ├── configuration.yml # 여기서 보내는 메일 설정 설정
    │ │ ├── database.yml # 여기에 구성된 데이터베이스 액세스
    │ │ └── ...
    │ ├── 파일 # 영구 애플리케이션 데이터
    │ ├── 로그 # 애플리케이션 로그
    │ ├── 공개 # 정적 파일
    │ └── 버전 # 애플리케이션 버전
    └── public_html -> /home/easy/$APP_NAME/current

응용 프로그램을 다시 시작하는 것은 "systemctl restart puma@[application_name]"을 sudo로 사용하는 것입니다.

고객 책임

VM은 최신 권장 버전의 Debian에서 실행됩니다. 시스템에는 다음과 같은 일반적인 유지 관리가 필요합니다.

  • 정기 업데이트
  • 리소스 모니터링(여유 공간, 메모리 사용량, 로드, ...)
  • 독립 디스크에 데이터 백업
  • 보안 정책

업데이트

시스템의 보안 업데이트를 자주 수행하십시오. 적어도 일주일에 한 번 수행하는 것이 좋습니다. 업데이트하기 전에 최신 백업이 사용 가능하고 작동하는지 확인하십시오.

보안 업데이트만 실행하는 공식 문서 https://wiki.debian.org/UnattendedUpgrades

리소스 모니터링

Easy Software는 Prometheus에 대한 좋은 경험을 가지고 있습니다. 따라서 node_exporter는 1.3부터 ​​VM의 일부입니다. 2022.

Node Exporter 및 Prometheus에 대한 매우 기본적인 공식 문서는 https://prometheus.io/docs/guides/node-exporter/에 있습니다. 최고의 빠른 시작 grafana 대시보드는 https://grafana.com/grafana/dashboards/1860에 있습니다.

사용량에 따라 VM 리소스 설정을 조정해야 합니다(예: VM에 제공되는 RAM 또는 코어 수 증가). 이러한 모든 구성은 가상 환경 관리자가 정기적으로 수행해야 합니다.

노드 내보내기는 포트 9100에서 수신 대기합니다.

node_exporter 비활성화

node_exporter는 다음을 실행하여 비활성화할 수 있습니다.

systemctl 중지 node_exporter.service
systemctl 비활성화 node_exporter.service
systemctl 마스크 node_exporter.service

다음 재부팅 후 노드 내보내기 시작을 방지합니다...

Easy Software의 전체 환경 지원(보안 및 성능 최적화, 백업, 모니터링 등)이 필요한 경우 클라우드 솔루션으로 이전하는 것이 좋습니다.

데이터 백업

VM에 있는 사전 구성된 백업은 인프라에 적합해야 하고 모니터링해야 하는 작업 예입니다. 적절한 백업은 다음과 같아야 합니다.

  • 백업 완료 후 확인 (최소한 백업 크기 확인)
  • 안전한 장소에 보관
  • 실행 환경에서 멀리 떨어져 있음(적어도 다른 도시에서)
  • 복구 수행 능력을 테스트하기 위해 가끔씩 복구

애플리케이션은 데이터를 두 곳에 저장하므로 두 곳 모두 백업하는 것을 잊지 마십시오.

DB

데이터베이스 백업은 매우 쉽게 잘못 수행될 수 있습니다. mysql 데이터베이스의 백업을 수행하는 가장 안전하고 가장 좋은 방법은 예제 스크립트에서 볼 수 있듯이 데이터베이스 덤프를 사용하는 것입니다. 전체를 복원하거나 이전 데이터의 일부만 가져올 수 있는 버전 독립적인 백업을 만듭니다.

예:

mysqldump --add-drop-tables --routines --triggers --flush-logs $DATABASE_NAME > path/to/file_where_db_will_be_stored.sql

/var/lib/mysql에서 파일을 복사하는 것은 DB 백업을 저장하는 잘못된 방법입니다.

파일

애플리케이션에 업로드된 모든 파일/첨부 파일은 다음 위치에 저장됩니다. /home/easy/$APP_NAME/현재/파일. 이 디렉토리의 전체 내용을 백업해야 합니다. 이 경우 내용을 복사하기만 하면 됩니다.

보안 정책

VM에는 home/easy/.ssh/authorized_keys에 Easy Software 엔지니어용 SSH 키가 포함되어 있습니다. 또한 /etc/iptables의 iptables 방화벽 규칙은 Easy Software IP 주소에 대한 액세스를 허용합니다.

이 두 정책 모두 귀하의 요청에 따라 당사 직원이 궁극적으로 원격 지원을 제공하기 위한 것입니다. 액세스 정책은 전적으로 귀하의 통제 하에 있습니다.

자동 작업

모든 자동 작업은 CRON과 Sidekiq에 의해 예약되며, 5m마다 예약된 작업을 시작합니다. 고성능 요구 사항으로 인해 이러한 작업을 더 짧은 간격으로 실행하지 않는 것이 좋습니다. 변경하려면 user easy에서 아래 명령을 실행하여 편집할 수 있습니다.

crontab을 -e

cron에 대한 자세한 문서
https://www.easyredmine.com/resources/redmine-installation/common-troubles/cron-not-working-helpdesk-emails-alerts-repeating-tasks-etc-are-not-automatically-processed

이 VM으로 데이터 마이그레이션

이전 애플리케이션 또는 Redmine 데이터(SOURCE)를 VM(TARGET)으로 가져오는 방법. 이것은 대부분의 경우 작동하지만 소스 Redmine 인스턴스에서 타사 플러그인을 사용하는 경우 이 절차가 작동하지 않을 수 있습니다.

1. (SOURCE)에서 MySQL 덤프 파일 생성:

mysqldump --opt easy > backup.sql

2. backup.sql을 (TARGET)으로 전송

3. (TARGET)의 Application 폴더로 이동

cd /home/easy/[응용 프로그램 이름]/현재

4. (TARGET) 데이터베이스 재생성

번들 exec rake db:drop db:create RAILS_ENV=프로덕션 DISABLE_DATABASE_ENVIRONMENT_CHECK=1

5. backup.sql 가져오기

mysql [db_name] < 백업.sql

6. (SOURCE)[redmine]/files에서 (TARGET)/home/easy/[application_name]/current/files로 첨부 파일 및 기타 파일 전송

7. 실행:

간부 레이크 easyproject 번들 : RAILS_ENV = 생산 설치

8. 애플리케이션 재시작

sudo systemctl 다시 시작 puma@[application_name]

문제해결

사이드 키 누락

일부 시스템에서는 sidekiq@.service 파일이 추가되지 않습니다. sidekiq@.service 파일이 있는 경우 /etc/systemd/system 폴더를 확인하십시오. 그렇지 않은 경우 추가하십시오. 다음을 포함해야 합니다.


[단위]
설명=%i에 대한 SIDEKIQ 서비스
이후 = redis.service
PartOf=퓨마@%i.service unicorn@%i.service

[서비스]
유형 = 단순
PID파일=/home/easy/%i/sidekiq.pid

환경 = RAILS_ENV = 생산
환경=MALLOC_ARENA_MAX=2

사용자 = 쉬움
그룹=www-data
WorkingDirectory=/home/easy/%i/public_html

ExecStart=/usr/local/rvm/bin/rvm 기본값 do Bundle exec sidekiq -e Production
ExecReload=/bin/kill -s TSTP $MAINPID

다시 시작 = 항상

[설치]
WantedBy=다중 사용자.대상 puma@%i.service unicorn@%i.service

파일 생성 후 실행

sudo systemctl daemon-reload

퓨마를 다시 시작

MYSQL 백업은 잘못된 데이터베이스를 대상으로 합니다.

이 문제를 해결하려면 /usr/local/bin/mysql-backups.sh 파일을 열고 DB 이름을 "easy" 앱 DB로 바꾸십시오(일반적으로 앱 이름과 동일하지만 모든 대시와 점은 밑줄로 바꿔야 함).

30일 무료 평가판으로 Easy Redmine을 사용해 보세요

지리적 위치에서 모든 기능, SSL 보호, 일일 백업