1. RoRo 서버 준비 및 사전 요구사항 설정

  2. 대상 서버(Inventory Server) 준비 및 사전 요구사항 설정 - 접근권한 및 네트워크 설정
    * Discovered Server 발견시 추가 분석을 위한 접속권한 획득 (초기 인벤토리 대상에서 누락된 서버로 RoRo에서 발견했다는 의미로 Discovered Server라고 함)

  3. 작업자 PC 준비 및 사전 요구사항 설정

  4. 방화벽 해제 List

  5. RoRo에서 제공하는 inventory template (RoRo-Inventory-Template.xls) 작성

    1. Template을 이용하여 bulk upload 진행함. (수동으로 1개 서버 단위로 등록할 수 있음.)

    2. Service sheet (필수 입력) : Service Code, Service Name, Business Category Code, Business Category, Migration Y/N

      • 업무서비스명을 말하며, 없는 경우에는 default service (service code = SERV-001)로 등록됨.

    3. Server sheet (필수 입력) : Inventory Code, Server_Name, IP Address, Port(SSH/Winrm), Username, Password, Windows Y/N, su Y/N, Monitoring Y/N

    4. Database assessment 진행의 경우 database sheet 추가 작성

      • Database sheet (필수 입력) : Server Inventory Code, Inventory Code(of Database), Database Name, Database Service Name, Port, Username, Password, JDBC URL, Engine Name


(blue star) #1. RoRo 서버 준비 및 사전 요구사항 설정

작업

RoRo Server

완료 (Y/N)

  • 권장사양 및 운영환경

CPU - 4 Core

 

Memory - 8GB

 

HDD - 30GB + a (Assessment 데이터 및 Migration 이미지 저장소)

예. 
Assessment 의 경우 : 애플리케이션 전체 용량 보다 큰 사이즈 필요 (사례. 500GB ~ 1TB)
Migration 의 경우 : as-is 서버의 용량 보다 큰 사이즈 필요

 

OS - CentOS 7 +

 

JDK 11 +

java -version 명령을 실행하여 java 명령을 찾을 수 없거나 버전이 낮은 경우 다음과 같이 java 패키지를 설치하고 설정합니다. 
(JRE 설치 시 일부 기능에 제한이 생길 수 있어 JDK 설치를 추천합니다.)

]$ sudo yum install -y java-11-openjdk-devel

 

  • system package

Python 2.7

 

ssh

 

rsync

 

epel

 

sshpass

 

  • RoRo repository - DBMS

Maria DB 10.6 이상 버전으로 사용하는 것을 권장합니다.

  • 테이블 및 컬럼의 대소문자 구분을 하지 않으며, 타임존을 UTC로 설정하기 위해 /etc/my.cnf 파일을 다음과 같이 수정합니다.

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

[mariadb]
lower_case_table_names = 1
default_time_zone = '+9:00'
  • 설정 확인

]$ mysqladmin variables -uroot -p | grep -i lower_case_table_names
Enter password: 
| lower_case_table_names                                   | 1 

 

  • Network

Unix/Linux : SSH (참고- default 22)

 

  • Playce RoRo에서 Inventory에 등록 된 서버로 SSH 접속이 되어야 합니다.

 

  • Inventory에 등록 된 서버로 SSH 접속 시 패스워드 또는 키파일을 이용한 로그인이 가능해야 합니다.

 

  • Inventory에 등록 된 서버로 SSH 접속 후 패스워드 확인 없이 sudo 명령이 실행 가능해야 합니다.

 

  • 마이그레이션 대상 AWS, GCP 등의 CSP(Cloud Service Provider)에 네트워크로 연결되어 있어야 합니다. 

 

  • cf. SSH 통신 및 접속 설정 확인

]$ ssh rorouser@Bserver_ip -p ssh_port
Bserver_ip]$ sudo vi /etc/sudoers -- 정상여부 확인

 

  • Windows 서버 내의 Application 분석이 필요한 경우 Windows에서 RoRo 서버로의 SSH 접속이 가능해야 합니다.

Windows : Winrm (참고- default 5985)

 

  • Playce RoRo에서 Inventory에 등록 된 서버로 winrm접속이 되어야 합니다.

  • Windows Server 의 방화벽 설정에서 해제되어야 합니다.

 

  • Rehost migration

RoRo Server의 /etc/mke2fs.conf 파일의 설정에 따라 Rehost Migration이 실패할 수 있으므로 아래 설정과 같이 [fs_types] 내 ext4의 features 인자 중 64bit를 삭제하고, auto_64-bit_support = 1 를 추가해야 합니다.

[defaults]
    ... skip ...
 
[fs_types]
    ... skip ...
    ext4 = {
        features = has_journal,extent,huge_file,flex_bg,metadata_csum,dir_nlink,extra_isize
        auto_64-bit_support = 1
        inode_size = 256
    }
    ... skip ...

 

  • Subscription Key

Trial, Enterprise로 구분하여 Subscription Key 발급

  • Enterprise(정식키) - RoRo 설치 이후 signature 명령 수행 후 결과 값을 sales에게 전달한 후 발급

  • Trial - 기간과 인벤토리 등록 가능한 VM의 수량에 제약

 

  • 기타

참고, tar 또는 unzip 패키지가 설치되지 않은 경우 다음 명령을 실행하여 패키지를 설치합니다.

]$ sudo yum install -y tar
]$ sudo yum install -y unzip

 

 

(blue star) #2. 대상 서버(Inventory Server) 준비 및 사전 요구사항 설정 - 접근권한 및 네트워크 설정

작업

Inventory Server (Unix/Linux Server)

완료 (Y/N)

  • 필수 설치 항목

ssh

sudo (unix)

rsync **** 마이그레이션을 위해 필요함

  • roro 작업 계정 생성 및 권한 설정
    (sudo 명령이 실행 가능하도록 설정 - 등록될 사용자 계정이 root가 아닌 경우)

3가지 방법 중 선택하여 진행합니다.

  • #1. 등록될 사용자 계정이 root가 아닌 경우 /etc/sudoers 파일을 수정해야 합니다. (패스워드없이 sudo(super user do) 명령 실행 가능토록)

  • #2. root 계정으로 직접 진행합니다.

  • #3. 등록된 사용자 계정으로 진행하며, root 로 su(switch user) 하여 진행할 수 있도록 합니다.

Middleware/java-application 분석을 위해서는 root 권한 또는 해당 application 수행 권한의 user 접속 정보가 필요할 수 있습니다.
(solution path 의 폴더 권한이 700/600 인 경우, ssh&su 진행으로는 권한이 부족으로 분석이 불가)

Database Assessment를 위해서는 RoRo DB User Name이 반드시 DBA권한 이상으로 설정 되어 있어야 합니다. 그렇지 않은 경우는 DBA User 정보를 입력해야 합니다.

상기 위의 #1의 경우에 대한 설명입니다.

등록될 사용자 계정이 root가 아닌 경우 /etc/sudoers 파일을 수정해야 합니다.

  • 해당 사용자 또는 그룹이 패스워드 없이 sudo 명령 실행이 가능하도록 아래와 같이 추가되어야 합니다.

  • “Defaults requiretty” 옵션이 활성화 되어 있는 경우 주석 처리해야 합니다. (OS 버전에 따라 옵션이 존재하지 않을 수 있습니다.)

vim /etc/sudoers 

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".
#
#Defaults    requiretty
......
## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
roro    ALL=(ALL)       NOPASSWD: ALL

  • Network

Unix/Linux : SSH (참고- default 22)

  • Playce RoRo에서 Inventory에 등록 된 서버로 SSH접속이 되어야 합니다.

  • Inventory에 등록 된 서버로 SSH 접속 시 패스워드 또는 키파일을 이용한 로그인이 가능해야 합니다.

  • Inventory에 등록 된 서버로 SSH 접속 후 패스워드 확인 없이 sudo 명령이 실행 가능해야 합니다.

  • Server Assessment 시 netstat, arp등의 명령어가 실행되지 않을 경우 아래 가이드를 참고해서 설치 후 진행하는 것을 권장합니다.

# CentOS/Rhel
yum -y install net-tools

# Debian
sudo apt install net-tools

 

작업

Inventory Server (Windows Server)

완료 (Y/N)

필수설치 항목

PowerShell Version 1.0 ~ 5.1

  • Window Server 2008의 경우 Component 활용 Optional 하게 설치하여야 합니다.

 

pscp (SFTP Client) 설치

roro 작업 계정 생성 및 권한 설정

(Local) Administrators 권한 부여 필요

 

Network (Firewall)

WinRM에서 기본으로 쓰는 Port는 5985이다.

  • 방화벽 설정에서 InBound Port 5985를 추가한다.

  • 별도의 OutBound 설정을 관리한다면 RoRo 서버의 SSH 포트로 접속이 가능하도록 설정을 추가한다.

 

WinRM 설정

(Power Shell : 관리자 모드)

Basic 인증 방법 추가 및 설정.

# WinRM 서비스 활성화
winrm qc
 
# Basic 인증 방법 추가. (RoRo에서 Basic 인증 방법을 사용한다.)
winrm set winrm/config/service/Auth '@{Basic="true"}'

# AllowUnencrypted 설정 (암호화 되지않는 데이터의 전송을 허용).
winrm set winrm/config/service '@{AllowUnencrypted="true"}'

# Shell의 자식 프로세스를 포함하여 할당된 최대 메모리 양 설정 (기본값 : 1024)
# 기본값 보다 작은 값으로 설정된 경우 제대로 동작하지 않을 수 있음.
winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="1024"}'

 

Trust Host추가

# TrustedHosts 에 RoRo 서버 등록.
# 방화벽과 관계없이 RoRo 서버와의 통신을 위해 신뢰할 수 있는 호스트로 등록을 한다.
# 기존에 설정되어 있는 Host가 있다면 Overwrite를 한다.
Set-Item wsman:\localhost\Client\TrustedHosts RoRo서버IP

# TrustedHosts 목록 보기
Get-Item wsman:\localhost\Client\TrustedHosts

---------------------------------------------------------- 
예시)
# TrustedHosts에 모든 컴퓨터를 추가방법
Set-Item wsman:\localhost\Client\TrustedHosts -value *

예시) 
# TrustedHosts에 특정 도메인/IP 컴퓨터를 추가방법
Set-Item wsman:\localhost\Client\TrustedHosts test.domain.com
Set-Item wsman:\localhost\Client\TrustedHosts *.domain.com
Set-Item wsman:\localhost\Client\TrustedHosts 192.168.5.111

*** 이미 등록한 호스트가 있다면 기존 정의된 호스트에 Add 해서 등록을 한다. ***
예시) 
PS> Get-Item wsman:\localhost\Client\TrustedHosts

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   TrustedHosts                                   test.domain.com

PS> Set-Item wsman:\localhost\Client\TrustedHosts 'test.domain.com,RoRo서버IP'

 

  • Session 변경 - 접속 유저 및 Shell 유저수 Limit 변경.

winrm set winrm/config/winrs '@{MaxConcurrentUsers="20"}'
winrm set winrm/config/winrs '@{MaxShellsPerUser="20"}'

WinRM의 설정 환경 보기

winrm get winrm/config

WinRM 서비스 Restart (필요 시)

restart-service winrm

 

** Windows 2008 (Powershell 1.0을 사용할 경우.) 

작업

Inventory Server

PowerShell 설치.

기본적으로 설치되어 있지는 않지만 Windows Server 2008의 표준 기능으로 포함. (Version :1.0)
관리자 권한으로 명령어 프롬프트를 실행한 뒤 설치를 한다. (서버에 따라서 오래 걸릴 수 있다.)

C:\> servermanagercmd -install powershell

WinRM 설정

Session

Basic 인증 방법 추가 및 설정.

# WinRM 서비스 활성화
winrm quickconfig
 
# Basic 인증 방법 추가. (RoRo에서 Basic 인증 방법을 사용한다.)
winrm set winrm/config/service/Auth '@{Basic="true"}'

# AllowUnencrypted 설정 (암호화 되지않는 데이터의 전송을 허용).
winrm set winrm/config/service '@{AllowUnencrypted="true"}'

# Shell의 자식 프로세스를 포함하여 할당된 최대 메모리 양 설정 (기본값 : 1024)
# 기본값 보다 작은 값으로 설정된 경우 제대로 동작하지 않을 수 있음.
winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="1024"}'

WinRM Default Listener Port 확인

# Port 확인. 
# 기본 Port가 80으로 설정되어 있는걸 알 수있다.
winrm enumerate winrm/config/listener 

WinRM Port 변경.

# Port 변경.
winrm set winrm/config/listener?Address=*+Transport=HTTP '@{Port="5985"}' 

  • Session 변경 - 접속 유저 및 Shell 유저수 Limit 변경.

winrm set winrm/config/winrs '@{MaxConcurrentUsers="20"}'
winrm set winrm/config/winrs '@{MaxShellsPerUser="20"}'

  • Trust Host추가

    # TrustedHosts 에 RoRo 서버 등록.
    # 방화벽과 관계없이 RoRo 서버와의 통신을 위해 신뢰할 수 있는 호스트로 등록을 한다.
    winrm set winrm/config/client '@{TrustedHosts="RoRo서버IP"}'

    WinRM 서비스 Restart (필요 시)

    restart-service winrm

WinRM 인증 비활성화, TrustedHosts 등록해제, 서비스 종료 및 비활성화, 방화벽 수정

작업

Inventory Server

Basic 인증 제거

기존 Basic Auth 유형을 사용하고 있다면 실행할 필요가 없다.

winrm set winrm/config/service/Auth '@{Basic="false"}'

TrustedHosts 제거.

1. 먼저 기존의 TrustedHosts를 확인을 해서 목록을 확인한다.
- winrm get winrm/config/client 

2. 그리고 다시 재 정의를 한다. (신뢰하고자 하는 서버 IP만 등록)
winrm set winrm/config/client '@{TrustedHosts="ServerIP 목록"}'

Example)
PS> winrm set winrm/config/client '@{TrustedHosts="server1,127.0.0.1"}'

3. 모든 Hosts를 삭제할려면 다음 명령어를 실행한다.
winrm set winrm/config/client '@{TrustedHosts=""}'

Example)

서비스 중지 및 Disabled

  • # 현재 서비스를 Stop한다.
    Stop-Service winrm
     
    # 윈도우 시작 시 서비스가 시작되지 않도록 Disabled 한다. (Disabled를 할 경우 Start가 되지 않는다.)
    Set-Service winrm -StartupType Disabled
    

Firewall

  • 방화벽에서 WinRM 서비스를 위해 오픈 시켜두었던 InBound 5985 Port를 제거한다.

(blue star) #3. 작업자 PC 준비 및 사전 요구사항 설정

작업

Windows PC

완료 (Y/N)

필수 소프트웨어

Chrome 최신버전, (IE 11버전 지원 예정)

 

Export/Import Data File을 위해 Microsoft Excel 2013 이상

 

  • IE 11의 경우 원활한 동작은 보장되지 않을 수 있으며 최적화 진행 작업을 진행중입니다.

 

Network

HTTP - 8080

브라우저에서 http://$ROROSERVER_IP:8080 를 접속하여 시작합니다.

 

시스템에 firewall가 active 상태로 브라우저 접속이 불가능한 경우, 다음 명령어를 실행하여 8080 포트의 접속을 허용한다.

]$ sudo firewall-cmd --add-port=8080/tcp --permanent
]$ sudo systemctl reload firewalld

 

(Optional)

DB클라이언트 툴 설치 & 접근 권한 필요

  • 해당 PC에서 RoRo 서버의 레파지토리 DB(maria/mysql)에 접속하여 assessment data 추출

 

 

(blue star) 방화벽 해제 List

출발지

목적지

포트

방향

용도

필수/옵션

Windows PC
(작업자)

RoRo 서버

8080 (HTTP)

단방향

웹브라우저(Chrome)으로 RoRo 관리화면 접속, Assessment 및 Migration 진행

필수

RoRo 서버

22 (SSH)

단방향

Putty, SecureCRT, Xshell 등으로 RoRo 서버로 접속, 설치 및 모니터링 진행

필수

대상서버 (Inventory - Unix/Linux Server)

22 (SSH)

단방향

네트워크 및 접근권한 등 설정 및 확인

-

대상서버 (Inventory - Windows Server)

3389 (RDP)

단방향

Powershell(관리자모드)을 이용한 Winrm 설정 및 확인

-

RoRo 서버

대상서버 (Inventory - Unix/Linux Server)

22 (SSH)

단방향

대상서버에 대한 Assessment 수행 (Agentless)

필수

대상서버 (Inventory - Windows Server)

5985(WINRM)

단방향

대상서버에 대한 Assessment 수행 (Agentless)

필수

대상서버 (Inventory - Windows Server)

RoRo 서버

22 (SSH)

단방향

Windows 서버 내의 Application Assessment

필수