안녕하세요.

오늘 포스팅은 DPM을 통해 서버의 시스템 상태 복원 또는 베어 메탈 복원(BMR)하는 방법에 대한 내용으로, 시스템 상태 복원 또는 베이 메탈 복원을 위한 시스템 보호는 다음 2가지 시나리오에 대해 보호하는 것을 목표로 할 수 있습니다.


- 서버가 부팅은 가능하지만 시스템 파일과 레지스트리가 손상된 경우

- 서버가 시작되지 않아 모든 것의 복구가 필요한 경우 


DPM은 이러한 2가지 시나리오에 대해 기능을 지원합니다.


- BMR의 중요한 볼륨에 사용자 데이터를 제외하고 운영 체제 파일과 모든 데이터를 보호하고 백업합니다.

(BMR은 백업 시스템 상태 백업을 포함한다)

- 시스템 운영 체제 파일을 상태를 백업합니다.


[전제 조건 및 제한 사항]

- BMR은 Windows Server 2003을 실행하는 서버 또는 클라이언트 운영체제를 실행하는 컴퓨터는 지원하지 않음

- 서로 다른 보호 그룹의 동일한 컴퓨터 BMR 및 시스템 상태를 보호할 수 없음

- DPM 서버는 BMR을 위해 자기 자신을 보호할 수 없음

- 테이프 (D2T)에 단기 보호는 BMR 지원되지 않으며, 테이프 (D2D2T)에 장기간 저장은 지원

- BMR을 위해서는 윈도우 서버 백업 기능이 보호하려는 서버에 설치되어 있어야 함

- BMR에 대한 WinRE (윈도우 복구 환경)

- 시스템 상태 보호와 다르게 BMR 보호는 보호 컴퓨터에 있는 공간 요구 사항이 없으며 윈도우 서버 백업이 직접 D​​PM 서버에 백업 데이터를 전송

(단, 이 작업은 DPM 작업 보기에 표시되지 않음)

- DPM은 BMR에 대한 복제 볼륨에 30GB의 공간을 를 가집니다. 

(디스크 할당 수정 보호 그룹 마법사의 페이지 또는 파워쉘을 통해 수정할 수 있음)

- 복구 지점 볼륨에서 BMR 보호 유지를 위해 약 6GB의 공간이 필요 함

- 복제 볼륨 크기는 15GB 보다 적게 줄일 수 없음

- DPM은 BMR 데이터 소스의 크기를 계산하지만 모든 서버를 30GB로 가정하지는 않는다.\

(관리자는 자신의 환경에서 예상 BMR 백업의 크기에 따라 값을 변경해야하며, BMR 백업의 크기는 거의 모든 중요한 볼륨에 사용된 공간의 합계를 산출 할 수있다)

(예: 긴급 볼륨 = 부팅 볼륨 + 시스템 볼륨 + 같은 AD상의 시스템 상태 데이터를 호스팅하는 볼륨)



[프로세스]

1. 시스템 상태 백업

- 시스템 상태 백업을 실행하면 DPM은 윈도우 서버 백업의 요청과 서버의 백업 상태를 전달한다. DPM과 윈도우 서버 백업은 기본적으로 가장 여유있는 드라이브를 백업에 사용하며 드라이브에 대한 정보는 PSDataSourceConfig.XML 파일에 저장된다. 이 드라이브는 윈도우 서버 백업이 백업을 수행하는데 사용하는 드라이브이다.

 DPM으로 시스템 상태 백업에 사용하는 드라이브를 사용자 정의할 수 있다. 보호 서버의  "C:\Program Files\Microsoft Data Protection Manager\DPM\Datasources. Open the PSDataSourceConfig.XML" 파일을 열어 <FilesToProtect> 드라이브 명을 변경한 후 저장한다. 만일, 일관성 검사를 실행하는 컴퓨터의 시스템 상태를 보호하는 보호 그룹이 있는 경우 보호 그룹 링크를 통해 수정을 클릭한 후 다시 일관성 검사를 실행해야 한다.

 보호 서버가 클러스터에 있는 경우에는 클라스터 드라이브가 가장 여유있는 공간으로 선택되며, 해당 드라이브 소유권이 다른 노드으로 이동한 경우 드라이브를 사용할 수 없게 되어 시스템 상태 백업이 실패할 수 있다. 이 경우 로컬 드라이브를 가리키도록 PSDataSourceConfig.XML 파일을 수정해야 한다.

- 윈도우 서버 백업은 다음 루트에 WindowsImageBackup이라는 폴더를 생성한다. 모든 백업 데이트는 이 폴더에 배치되며 백업이 완료된 후 DPM 서버로 전송된다.

 -> 이 공간은 백업 후 전송이 완료된 후 정리된다.

 -> 폴더는 백업이 수행될 때마다 생되며 날짜는 마지막 시스템 백업 시간을 반영한다.


2. 베이 메탈 리커버리(BMR) 백업

BMR((본질적으로 시스템 상태 백업을 캡처하는) 백업 작업은 DPM 서버가 아닌 보호 서버의 폴더 공유에 직접 수행한다.

- DPM 서버는 BMR 백업을 위해 복제 볼륨에서 윈도우 서버 백업 및 공유를 호출한다. 이 경우 윈도우 서버 백업에서 가장 여유 있는 드라이브를 사용하는 것을 말하지 않으며, 작업에 많은 공유를 사용하여 백업한다.

- 백업이 완료되면 백업 파일은 DPM 서버로 전송되며 로그는 "C:\Windows\Logs\WindowsServerBackup"에 저장된다.




[시스템 상태 또는 BMR 보호를 위한 설정]


1. 시스템 상태 백업


DPM 콘솔을 실행한 후 보호 메뉴로 이동하여 상단의 새로 만들기(보호 그룹 만들기) 버튼을 클릭합니다.


새 보호 그룹 만들기 창의 시작 화면에서 다음 버튼을 클릭합니다.


새 보호 그룹 만들기 창의 보호 그룹 종류 선택 화면에서 '서버(S)'를 선택한 후 '다음(N)' 버튼을 클릭합니다.


새 보호 그룹 만들기 창의 그룹 구성원 선택 화면에서 보호할 데이터(System State)를 선택한 후 '다음(N)' 벝는을 클릭합니다.


새 보호 그룹 만들기 창의 데이터 보호 방법 선택 화면에서 보호 그룹 이름을 입력하고 데이터를 보호할 방법을 선택한 후 '다음(N)' 버튼을 클릭합니다.



새 보호 그룹 만들기 창의 단기 목표 선택 화면에서 '보존 범위(R)'를 지정한 후 빠른 전체 백업 일정을 변경하기 위해 '수정(O)' 버튼을 클릭합니다.


성능 최적화 화면에서 빠른 전체 백업 일정(요일과 시간)을 선택한 후 확인 버튼을 클릭합니다.


새 보호 그룹 만들기 창의 단기 목표 선택 화면에서 '다음(N)' 버튼을 클릭합니다.


새 보호 그룹 만들기 창의 디스크 할당 검토 화면에서 디스크 공간 수정을 위하여 수정(M) 버튼을 클릭합니다.


디스크 할당 수정 화면 차에서 복제 볼륨과 복구 지점 볼륨 크기를 확인하여 볼륨 크기 변경이 필요한 경우 변경 후 확인 버튼을 클릭합니다.


새 보호 그룹 만들기 창의 복제본 만들기 방법 선택 화면에서 DPM 서버에 복제복을 만드는 방법을 선택한 후 '다음(N)' 버튼을 클릭합니다.

(이 포스팅에서는 네트워크를 통해 자동으로 복제본을 만드는 방법을 선택)


새 보호 그룹 만들기 창의 일관성 확인 옵션 선택 화면에서 일관성 확인 방법을 선택한 후 '다음(N)' 버튼을 클릭합니다.

(이 포스팅에서는 '복제본이 일관되지 않을 경우 일관성 확인 실행(R)'을 선택)


새 보호 그룹 만들기 창의 상태 화면에서 보호 그룹 만들기 작업이 진행되어 완료되면 닫기 버튼을 클릭하여 새 보호 만들기를 완료합니다.


2. BMR 백업


BMR 백업은 위에서 설명한 시스템 상태 백업과 다른 부분은 거의 없습니다. 시스템 상태 백업괴 비교해보면 기본 기본 디스크 할당 공간 중 복제 볼륨은 크고 복구 지점 볼륨이 작다는 차이 외에는 특별한 차이는 없어 보입니다. (물론 이 차이도 디스크 할당 수정을 통해 수정이 가능한 부분입니다)





[시스템 및 BMR 복구]


1. 시스템 복구


DPM 콘솔에서 복구 메뉴를 선택한 후 복구 항목을 마우스 우 클릭한 후 '복구(R)'버튼을 클릭합니다.


복구 마법사 창의 복구 선택 사항 확인 화면에서 복구 원본 위치를 선택한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 복구 유형 선택 화면에서 '네트워크 폴더에 복사(W)'를 선택한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 대상 지정 화면에서 '찾아보기' 버튼을 클릭합니다.


대체 복구 대상 지정 창이 나타나면 파일을 복사할 폴더를 선택한 후 확인 버튼을 클릭합니다. 

(차후 보호된 컴퓨터에서 접근할 수 있도록 해당 경로는 공유를 해주어야 합니다)


복구 마법사 창의 대상 지정 화면ㅇ데서 대상과 대상 경로가 지정된 것을 확인한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 복구 옵션 지정 화면에서 옵션을 선택한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 요약 화면에서 선택한 내용을 확인한 후 '복구' 버튼을 클릭합니다.


복구 마법사 창의 복구 상태 화면에서 복구가 진행 중인 것을 확인한 후 '닫기' 버튼을 클릭하여 복구 마법사를 종료합니다.


DPM 콘솔에서 모니터링으로 이동하면 복구 상태를 확인할 수 있습니다.


복구가 완료되면 보호된 컴퓨터에서 윈도우 서버 백업 도구를 실행한 후 복구 버튼을 클릭합니다.


복구 마법사 창의 시작 화면에서 '다른 위치에 저장된 백업(A)'를 선택하고 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 위치 유형 지정 화면에서 '원격 공유 폴더(E)'를 선택한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 원격 폴더 지정 화면에서 DPM에서 지정한 복구 지점 경로를 입력한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 백업 날짜 선택 화면에서 백업 날짜를 선택한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 복구 유형 선택 화면에서 '시스템 상태(S)'를 선택한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 복구 위치 선택 화면에서 '원래 위치(O)'를 선택한 후 '다음(N)' 버튼을 클릭합니다.


원격 공유 폴더를 통한 복원에 대한 경고 창이 나타나면 '확인' 버튼을 클릭합니다.


복구 마법사 창의 확인 화면에서 복구 항목을 확인한 후 '복구(R)' 버튼을 클릭합니다.


복구 시작 후 일시중지 및 취소 불가에 대한 경고가 나타나면 '예(Y)' 버튼을 클릭합니다.


복구 마법사 창의 복구 진핼률 화면에서 시스템 상태 복구가 진행되어 완료되면 서버가 자동으로 다시 부팅되며 복구 프로세스가 완료됩니다.


시스템 복구가 완료되어 재부팅 된 후 다음과 같이 복구 완료에 대한 알림 창이 나타납니다.


시스템 상태 백업의 경우 BMR 복구 방법으로 복구 시도 시 복원할 수 있는 이미지가 없어 복원할 수 없습니다.




2. BMR 복구


DPM 콘솔을 실행한 후 복구 메뉴로 이동하여 Bare Metal Recovery를 마우스 우 클릭한 후 '복구(R)' 버튼을 클릭합니다.


복구 마법사 창의 복구 선택 사항 확인 화면에서 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 복구 유형 선택 화면에서 '네트워크 폴더에 복사(W)'를 선택한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 대상 지정 화면에서 복구 파일을 복사할 위치 선택을 위해 '찾아보기' 버튼을 클릭합니다.


대체 복구 대상 지정 창에서 파일이 복사될 경로를 지정한 후 확인 버튼을 클릭합니다.

(해당 경로는 복구 완료 후 공유 폴더로 지정헤주어야 차후 시스템 복원 시 복원 이미지에 접근할 수 있습니다)


복구 마법사 창의 대상 지정 창에서 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 복구 옵션 지정 화면에서 옵션을 선택한 후 '다음(N)' 버튼을 클릭합니다.


복구 마법사 창의 요약 화면에서 Bare Metal Recovery가 선택된 것을 확인한 후 복구 버튼을 클릭합니다.


복구 마법사 창의 복구 상태 화면에서 복구가 진행되면 '닫기(C)' 버튼을 클릭하여 복구 마법사를 완료합니다.

(복구가 진행되는 것은 DPM 콘솔의 모니터링 메뉴로 이동하여 확인할 수 있습니다)



복원을 위해 Windows Server 이미지로 부팅한 후 Windows 설치 창에서 '다음(N)' 버튼을 클릭합니다.


Windows 설치 창에서 '컴퓨터 복구(R)' 버튼을 클릭합니다.


옵션 선택 창에서 '문제 해결' 버튼을 클릭합니다.


고급 옵션 창에서 '시스템 이미지 복구' 버튼을 클릭합니다.


시스템 이미지 복구 창에서 대상 운영 체제를 선택합니다.


이미지로 컴퓨터 다시 설치 창에서 경고 창이 나타나면 복구 이미지를 지정하기 위해 '취소' 버튼을 클릭합니다.


이미지로 컴퓨터 다시 설치 창의 시스템 이미지 백업을 선태합니다 화명네서 '시스템 이미지 선택(S)'를 선택한 후 '다음(N)' 버튼을 클릭합니다.


이미지로 컴퓨터 다시 설치 창에서 '고급(A)' 버튼을 클릭합니다.


네트워크에서 시스템 이미지 검색(S) 버튼을 클릭합니다.


네트워크에 연결으 위한 경고 창이 나타나면 '예(Y)' 버튼을 클릭하여 Dhcp 서버로부터 IP를 할당 받습니다.

(만일, Dhcp 서버가 없어 IP를 할당받지 못하는 경우에는 'Shift' + 'Ctrl' + 'F3' 키를 입력하여 커맨드 창을 실행한 후 커맨드 명령어로 IP를 수동으로 입력합니다)


Bare Metal Recover 복구 이미지가 존재하는 경로를 입력한 후 '확인' 버튼을 클릭합니다.


네트워크 자격 증명 입력 창에서 계정과 패스워드를 입력한 후 확인 버튼을 클릭합니다.


복원할 이미지를 선택한 후 '다음(N)' 버튼을 클릭합니다.


복원할 시스템의 날짜 및 시간과 백업 중인 드라이브를 선택한 후 '다음(N)' 버튼을 클릭합니다.


복원을 위한 추가 옵션을 선택한 후 '다음(N)' 버튼을 클릭핣니다.


복원을 위해 선택한 정보를 확인한 후 '마침' 버튼을 클릭합니다.


시스템 복원에 대한 경고 창이 나타나면 '예(Y)' 버튼을 클릭하여 복원을 시작합니다.


시스템 복원이 진행되고 복원이 완료되면 '다시 시작(T)' 버튼을 클릭하여 BMR 복원을 완료합니다.



이상으로 DPM으로 시스템 상태 및 베어 메탈 리커버리 백업 및 복원에 대한 포스팅을 마칩니다.

감사합니다.











참고 사이트: https://technet.microsoft.com/en-us/library/hh758150(v=sc.12).aspx




안녕하세요.


오늘 포스팅은 나노 서버에 파이썬과 장고를 실행하는 방법입니다.


이번 포스팅에서는 나노 서버에서 파이썬과 장고를 실행하는 방법에 대해 다음과 같은 순서로 설명하고 있습니다.


1. 나노 서버 이미지 생성하기

2. 파이썬 다운로드 및 설치한 후 나노 서버에 복사하기

3. 나노 서버에서 파이썬 실행하기

4. 나노 서버에서 장고 설치 후 새 프로젝트 실행하기






1. 나노 서버 이미지 생성하기

먼저 파이썬과 장고를 실행할 나노 서버 이미지를 생성합니다. 나노 서버 이미지는 다음과 같은 방법으로 얻을 수 있습니다.


- Windows Server 2016 Technical Preview 5 링크를 통해 vhd 파일을 다운로드 받기

- Azure 갤러리를 통해 Azure에 나노 서버 이미지 생성

- Windows Server 2016 Technical Preview 5 ISO 이미지를 다운로드 받아 파워쉘을 통해 나노 서버 이미지를 생성


이번 포스팅에서는 앞서 포스팅한 내용과 같이 ISO 이미지로 나노 서버 가상 머신 이미지를 생성해서 파이썬과 장고를 실행하게 됩니다.

그럼 다음과 같이 나노 서버 이미지를 생성합니다.


[나노 서버 이미지 생성 파워쉘 예]

Import-Module .\NanoServerImageGenerator.psm1

New-NanoServerImage -DeploymentType Guest -Edition Standard -MediaPath H:\ -BasePath .\Base -TargetPath "G:\VM\Nano\NanoPython01.Vhdx" -ComputerName "NanoPython01" -InterfaceNameOrIndex Ethernet -Ipv4Address 10.0.0.72 -Ipv4SubnetMask 255.0.0.0 -Ipv4Gateway 10.10.10.254 -Ipv4Dns 10.10.10.21 -DomainName "DONKEY.LAB"  


-DeploymentType: 나노 서버 이미지의 타입으로 물리 서버인 경우 HOST 가상 머신인 경우 Guest

-Edition: Windows Server 2016 Edition으로 Datacenter 또는 Standard

-MediaPath: Windows Server 2016 Technical Preview 5 ISO를 마운트한 드라이브명

-TargetPath: 나노 서버 이미지가 생성될 폴더 및 파일명으로 확장자를 vhd로 지정한 경우 1세대 가상 머신, vhdx로 지정한 경우 2세대 가상 머신

-ComputerName: 나나 서버 이미지의 hostname

-InterfaceNameOrIndex: IP주소가 설정된 네트워크 어댑터

-Ipv4Address, -Ipv4SubnetMask, -Ipv4Gateway: IP주소, 서브넷 마스크, 게이트웨이 주소

-Ipv4Dns: DNS 주소

-DomainName: 도메인에 가입할 도메인 이름

(파이썬과 장고를 나노 서버에 실행하는 경우 도메인에 가입해야 하는 것이 필수사항은 아닙니다)


위와 같이 이미지 생성이 완료되었다면 나노 서버 이미지로 가상 머신을 생성한 후 실행합니다.






2. 파이썬 다운로드 및 설치한 후 나노 서버에 복사하기


이번에는 파이썬을 다운로드 받아 설치할 차례입니다. 나노 서버에서 파이썬을 실행하기 위해서는 먼저 파이썬을 다운로드 받아 나노 서버가 아닌 GUI 환경의 윈도우에 설치해야 합니다.


웹페이지를 통해 파이썬을 다운로드 받습니다.


[파이썬 다운로드]


다운로드 받은 파이썬을 압축해제 한 후 다음 순서로 설치합니다.


Python 3.5.1 (64-bit) Setup 창의 Install Python 3.5.1 (64-bit) 화면에서 Install Now 버튼을 클릭합니다. (설치 시 반드시 설치되는 경로를 기억합니다)


Python 3.5.1 (64-bit) Setup 창의 Setup Progress 화면에서 Python 설치가 진행됩니다.


설치가 성공적으로 완료되면 Close 버튼을 킄릭하여 파이썬 설치를 완료합니다.


파이썬 설치가 완료되면 파워쉘을 통해 설치한 파이썬을 나노 서버에 복사할 차례입니다.


나노 서버에 작업은 파우쉘을 통해 원격으로 접속하여 이루어지기 때문에 신뢰할 수 있는 호스트에 나노 서버를 등록합니다.

명령어: Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "IP주소" 또는 "Hostname" -Force;



설치한 파이썬을 파우쉘을 통해 나노 서버에 복사합니다.

[파우쉘 스크립트 예]

$Session = New-PSSession -ComputerName "IP주소" 또는 "hostname" -Credential "계정명"

$PythonPath = "파이썬을 설치한 폴더명" (예: "$env:C:\Users\Administrator\AppData\Local\Programs\Python")

Copy-Item -ToSession $Session -Path $PythonPath -Destination "파이썬이 복사될 드라이브 및 폴더명" -Force -Recurse


[파이썬이 설치된 폴더]


[나노 서버에 파이썬이 복사 완료된 후]


파이썬 복사가 완료되면 환경 변수에 파이썬 설치 폴더를 추가하고 재부팅 후에도 지속적으로 유지될 수 있도록 추가합니다.


[명령어]

$env:Path += ";C:\Python\Python35;C:\Python\Python35\Scripts\"

setx PATH $env:Path /M


나노 서버를 재부팅 후 다음 명령어를 실행해보면 설치된 파이썬 버전을 확인할 수 있습니다.


명령어: Python –V






3. 나노 서버에서 파이썬 실행하기


나노 서버에 파이썬이 정상적으로 설치되었다면 이번에는 나노 서버에서 파이썬이 실행되는지 확인할 차례입니다. 먼저, 파이썬을 설치한 클라이언트에서 다음과 같은 스크립트를 작성한 후 실행한 결과를 확인합니다.


[스크립트 예]

import random

print(random.randint(1,45))

(1부터 45까지 랜덤하게 숫자가 한개씩 출력되는 간단한 스크립트..)
[스크립트 작성 화면]

[스크립트 실행 결과]


이제 동일한 파이썬 스크립트를 나노 서버로 복사합니다.

[파우쉘 스크립트 예] Copy-Item -ToSession $Session -Path "원본 파일명" -Destination "복사될 경로" -Force -Recurse 


파이썬 스크립트를 실행하여 결과를 확인합니다.

[명령어 예] Python.exe "스크립트 파일명"


파이썬을 설치한 클라이언트와 나노 서버에서 파이썬을 실행한 결과가 동일하게 출력되는 것을 확인할 수 있습니다.






4. 나노 서버에서 장고 설치 후 새 프로젝트 실행하기


마지막은 나노 서버에 장고를 설치한 후 새 프로젝트를 실행하여 정상 동작 여부를 확인할 차례입니다. 장고 설치를 위하여 나노 서버에 Pip 업그레이드를 진행합니다.


명령어: python -m pip install --upgrade pip


업데이트가 완료된 후 나노 서버에 장고를 설치합니다.


명령어: python -m pip install django


장고 설치가 완료되면 새로운 프로젝트를 생성합니다. 새로운 프로젝트를 생성하면 새로운 폴더가 생성되게 됩니다. 이때 프로젝트 생성을 원하는 폴더에서 명령어를 실행해야 해당 폴더에 폴더가 생성되게 됩니다.


예를 들어 C:\Project라는 폴더에 NewProject 라는 이름으로 프로젝트 생성을 원하는 경우 Project라는 폴더를 생성한 후 Project 폴더로 이동하여 장고에서 새로운 프로젝트를 시작해야 합니다.


먼저 새로운 폴더를 생성합니다.


명령어: New-Item -Name "Project" -Path "C:\" -ItemType Directory

장고에서 신규 프로젝트 생성을 위해 생성한 폴더로 이동합니다.


명령어: Set-Location "C:\Project\"


장고에서 신규 프로젝트를 생성합니다.


명령어: django-admin.exe startproject "프로젝트명" (예: django-admin.exe startproject NewProject) 


프로젝트 생성이 완료되면 신규 프로젝트 명으로 폴더가 생성되고 파일이 복사된 것을 확인할 수 있으며, 디렉터리 구성은 다음과 같습니다.


[디렉터리 구성]

NewProject\

    manage.py

    NewProject/

        __init__.py

        settings.py

        urls.py

        wsgi.py



이제 장고에서 사용할 포트를 방화벽에서 오픈 합니다.


명령어 예: netsh advfirewall firewall add rule name="Djang-TCP_8000" dir=in action=allow protocol=TCP localport=8000


다음과 같은 명령어를 통해 서버를 실행합니다.

명령어: python .\manage.py runserver 0.0.0.0:8000


이후 웹 브라우저를 통해 접속해보면 정상적으로 실행되어 기본 페이지가 나타나는 것을 확인할 수 있습니다.




이상으로 나노 서버에서 파이썬과 장고를 실행하는 방법에 대한 포스팅을 마치겠습니다.

감사합니다.




참고 사이트: Python and Django on Nano Server





안녕하세요.

오늘 포스팅할 내용은 CentOS 7에 Powershell(이하 파워쉘)을 설치하여 사용하는 방법입니다.

Microsoft가 개발한 스크립트 언어를 특징으로 하는 명령어 인터프리터인 파우쉘이 Linux에서 설치하여 사용할 수 있다니 솔직히 무척 놀랍고도 반가운 내용입니다. 윈도우에서만큼 잘 동작하고 많은 기능들을 사용할 수 있기를 기대해봅니다.


오늘 포스팅은 다음 순서로 이루어져있습니다.


1. CentOS 7 파워쉘 다운로드 및 설치

2. 파워쉘 명령어 실행하여 사용하기





1. CentOS 7 파워쉘 다운로드 및 설치


CentOS 7에 파우쉘을 설치하기 위해서는 먼저 파워쉘을 다운로드 받아야 합니다.

다운로드: https://github.com/PowerShell/PowerShell/releases/


CentOS에 파워쉘이 설치되어있는지 확인합니다.

명령어: rpm -qa | grep powershell


CentOS 7에서 다운로드 받은 파일이 있는 공유 폴더를 마운트하여 설치를 준비합니다.

명령어: Mount -t cifs -o username=계정명 //윈도우 공유 폴더 경로 /마운트할 폴더명


마운트한 폴더로 이동하여 설치할 파일이 존재하는지 확인합니다.


CentOS 7에 파워쉘을 설치합니다.

명령어: yum install powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm


설치가 완료되면 다시 파우쉘이 정상적으로 설치되었는지 확인합니다.

명령어: rpm -qa | grep powershell




2. 파워쉘 명령어 실행하여 사용하기


다음과 같이 명령어를 통해 CentOS 7에서 파워쉘을 실행할 수 있습니다.

명령어: powershell


Get-Command 명령어를 실행한 결과


Get-ChildItem / 실행 시 화면


New-Item 명령어로 폴더 생성하기


Get-Process 명령어로 프로세스 조회하기

마지막으로 Get-Command 명령어를 통해 확인해보면 현재 CentOS 7에서 사용할 수 있는 명령어는 다음과 같습니다.

CommandType Name Version Source
Function Compress-Archive 1.0.1.0 Microsoft.PowerShell.Archive
Function Expand-Archive 1.0.1.0 Microsoft.PowerShell.Archive
Function Find-Command 1.0.0.1 PowerShellGet
Function Find-DscResource 1.0.0.1 PowerShellGet
Function Find-Module 1.0.0.1 PowerShellGet
Function Find-RoleCapability 1.0.0.1 PowerShellGet
Function Find-Script 1.0.0.1 PowerShellGet
Function Format-Hex 3.1.0.0 Microsoft.PowerShell.Utility
Function Get-FileHash 3.1.0.0 Microsoft.PowerShell.Utility
Function Get-InstalledModule 1.0.0.1 PowerShellGet
Function Get-InstalledScript 1.0.0.1 PowerShellGet
Function Get-PSRepository 1.0.0.1 PowerShellGet
Function Import-PowerShellDataFile 3.1.0.0 Microsoft.PowerShell.Utility
Function Install-Module 1.0.0.1 PowerShellGet
Function Install-Script 1.0.0.1 PowerShellGet
Function New-Guid 3.1.0.0 Microsoft.PowerShell.Utility
Function New-ScriptFileInfo 1.0.0.1 PowerShellGet
Function New-TemporaryFile 3.1.0.0 Microsoft.PowerShell.Utility
Function Publish-Module 1.0.0.1 PowerShellGet
Function Publish-Script 1.0.0.1 PowerShellGet
Function Register-PSRepository 1.0.0.1 PowerShellGet
Function Save-Module 1.0.0.1 PowerShellGet
Function Save-Script 1.0.0.1 PowerShellGet
Function Set-PSRepository 1.0.0.1 PowerShellGet
Function Test-ScriptFileInfo 1.0.0.1 PowerShellGet
Function Uninstall-Module 1.0.0.1 PowerShellGet
Function Uninstall-Script 1.0.0.1 PowerShellGet
Function Unregister-PSRepository 1.0.0.1 PowerShellGet
Function Update-Module 1.0.0.1 PowerShellGet
Function Update-ModuleManifest 1.0.0.1 PowerShellGet
Function Update-Script 1.0.0.1 PowerShellGet
Function Update-ScriptFileInfo 1.0.0.1 PowerShellGet
Cmdlet Add-Content 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Add-Member 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Add-Type 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Clear-Content 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Clear-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Clear-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Clear-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Compare-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Convert-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet ConvertFrom-Csv 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertFrom-Json 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertFrom-SecureString 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet ConvertFrom-StringData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertTo-Csv 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertTo-Json 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertTo-SecureString 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet ConvertTo-Xml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Copy-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Copy-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Debug-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Debug-Runspace 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Disable-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Disable-RunspaceDebug 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Enable-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Enable-RunspaceDebug 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Export-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Export-Clixml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Export-Csv 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Export-FormatData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Custom 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-List 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Table 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Wide 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-ChildItem 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Content 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Credential 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet Get-Culture 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Date 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-EventSubscriber 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet Get-FormatData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Host 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-ItemPropertyValue 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Location 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Member 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-PSCallStack 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-PSDrive 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-PSProvider 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Random 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Runspace 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-RunspaceDebug 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-TraceSource 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-TypeData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-UICulture 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Group-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-Clixml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-Csv 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-LocalizedData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Invoke-Expression 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Invoke-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Invoke-RestMethod 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Invoke-WebRequest 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Join-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Measure-Command 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Measure-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Move-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Move-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-PSDrive 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-TimeSpan 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Out-File 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Out-String 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Pop-Location 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Push-Location 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Read-Host 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Register-EngineEvent 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Register-ObjectEvent 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Remove-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Remove-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Remove-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Remove-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Remove-PSDrive 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Remove-TypeData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Remove-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Rename-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Rename-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Resolve-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Select-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Select-String 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Select-Xml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-Content 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-Date 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet Set-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-Location 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-TraceSource 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Sort-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Split-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Sleep 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Start-Transcript 3.0.0.0 Microsoft.PowerShell.Host
Cmdlet Stop-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Transcript 3.0.0.0 Microsoft.PowerShell.Host
Cmdlet Tee-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Test-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Trace-Command 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Unregister-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Update-FormatData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Update-TypeData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Wait-Debugger 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Wait-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Wait-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Write-Debug 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Error 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Host 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Information 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Output 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Progress 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Verbose 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Warning 3.1.0.0 Microsoft.PowerShell.Utility


윈도우에서 사용할 수 있는 파워쉘에 비해서는 아직 많이 부족하지만 점점 많은 기능과 모듈이 추가되면 파워쉘이 익순한 관리자나 사용자는 리눅스도 윈도우 환경에서도 같이 잘 사용할 수 있을것 같습니다. ^^



그럼 CentOS 7에 파워쉘을 설치하는 오늘의 포스팅을 마칩니다.

감사합니다.

+ Recent posts