안녕하세요.


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


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


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





+ Recent posts