▶ VirtualBox

오픈소스 프로젝트를 너무나 애정하는 입장에서 오랫동안 VM 도구는 VirtualBox를 애용하고 있던 중,

VirtualBox가 2008년도에 `썬 마이크로시스템즈(Sun Microsystems)`에 인수되어 살짝 불안감이 생겼었고

2010년도에는 `오라클(Oracle)`에서 `썬 마이크로시스템즈`를 인수하면서 불안감이 증폭되었었다.

 

VirtualBox는 현재 기본 패키지는 GPLv2 라이선스로 배포를 하고 있지만

역시나 오라클은 `Extension Pack`에 대해서 PUEL 라이선스를 적용해버렸다.

 

개인 사용 및 교육용으로는 무료로 사용 가능하지만, 회사에서는 사용할 수 없는 것이다.

  - https://www.virtualbox.org/wiki/VirtualBox_PUEL

 

VirtualBox 기본 플랫폼만으로도 어느 정도 사용 가능하지만,

`Extension Pack`을 설치해야 화면해상도, 공유폴더, USB3.0 지원 및 원격접속 등 많은 기능이 추가된다.

 

집에서 `Extension Pack(Guest Additions)`을 설치한 상태에서 사용하다가

회사에서 기본 패키지만 가지고 VirtualBox를 사용하면 정말 정말 불편하다.

 

 

▶ VMware Workstation

VMware가 2023년에 Broadcom에 인수되면서 Enterprise 라이선스 정책을 변경하면서

많은 회사에서 VMware를 걷어내고 OpenStack과 같은 솔루션으로 갈아타고자 노력하고 있다.

당연히 금액적으로 엄청난 인상을 한 것과 같은 희한한(나쁜!) 라이선스 정책을 도입했기 때문이다.

 

그런데, 의외로 개인 PC용 제품인 Fusion, Workstation을 무료로 배포를 해버렸다 !!!

  - https://blogs.vmware.com/cloud-foundation/2024/11/11/vmware-fusion-and-workstation-are-now-free-for-all-users/

 

의외로 이를 모르는 사람들이 꽤 많다는 것이 신기하다.

container 세상이 되어버려서 VM 인기가 확 식어버려서인가?!

 

 

집과 회사에서 같은 VM 솔루션을 이용하기 위해 이제는 VirtualBox를 버리고

VMware Workstation으로 갈아타보려한다.

 

 

▶ VMware Workstation Pro

VMware 홈페이지를 방문하면 솔루션 정보를 찾는 것이나 다운로드 받는 것, 심지어 회원 가입하는 것도 쉽지 않다.

Broadcom 특성이려나!? (그렇다. 나는 Broadcom에 반감이 있다. ESXi 라이선스 정책 변경으로 개고생을 ㅠㅠ)

 

처음 방문하는 분은 아래 경로 찾는 것도 쉽지 않을 것이다.

  - https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion 

 

무료로 다운로드 받을 수 있다고 했지만, 회원 가입이 필요 없다고는 하지 않았다!

그렇다. 다운로드 받으려면 로그인(회원가입)이 필요하다.

  - https://profile.broadcom.com/web/registration 

 

회원가입 및 로그인 후에 Free Downloads 페이지에서 `workstation`을 검색해야 한다.

  - https://support.broadcom.com/group/ecx/free-downloads 

 

Free 배포를 하게 되면서 더이상 개발을 하지 않을까 살짝 의심했지만,

그래도 26H1 버전까지 꾸준히 업데이트는 해주고 있다.

 

원하는 버전 선택 후 다운로드 받으면 된다.

 

설치 과정은 그냥 다운로드 받은 파일을 실행하면 된다. 설명까지 필요한 내용은 없다.

 

응!? 설치관련 포스팅인데 정작 설치에 대한 내용은 별게 없네!? ^^

 

반응형

 

옛날에 한 번 만들었다가 방치 끝에 삭제를 당해버린 서버의 부활 프로젝트 !!! ^^

 

"오라클 클라우드"를 처음 들어보신 분도 계실 수 있는데,

나름 어느 정도의 시장은 갖고 있는 ... 우리나라 리전도 갖고 있는 클라우드 플랫폼이다.

 

https://www.oracle.com/kr/cloud/

 

 

다른 클라우드들과 마찬가지로

계정 등록을 할 때 신용카드 정보가 필요하다. (1달라인가? 결제하고 곧바로 취소된다)

 

가입을 까막득한 옛날에 했다보니 기억이 가물거려서.... ^^

 

가입 후 화면을 보면 다음과 같다.

 

 

밑에 내려보면 "리소스 실행" 부분에 "VM 인스턴스 생성" 카드가 보인다.

이것을 선택하면 된다.

 

 

기본 이미지가 Orable Linux인데... 다른 배포판을 고를 수도 있다.

 

 

눈치빠른 분은 이미 파악하셨겠지만, 고를 수 있다고 해서 모두 무료가 아니다.

회색 뱃지가 붙어있는 것을 잘 확인해야 한다.

 

나는 익숙한 우분투로 골라봤다.

 

 

 SSH 키 생성해서 내려받는 방법도 있지만,

내가 사용하는 작업용 우분투에 이미 있는 Public-Key를 등록하는 방식으로 진행해봤다.

 

 

갖고 있는 Public-Key 복사해서 넣어줬다.

이렇게 하면 내 작업용 우분투에서 바로 오라클 서버로 접속할 수 있게 된다.

 

 

열심히 생성중이다.

확인해야 할 것은 "공용 IP 주소" 와 "사용자 이름"이다.

 

 

그냥 "ssh ubuntu@ip" 방식으로 접속하면 된다.

 

 

Disk 용량은 위에서 보듯이 50GB가 주어진 것을 알 수 있고,

메모리 용량은 다음과 같이 확인해볼 수 있다.

 

 

무료임에도 1GB를 주는 것은 대단한거다.

하지만, 뭣 좀 해보려면 좀 부족한 것도 사실이니.... swap을 잡아줘보자.

 

ubuntu@instance-20230626-2355:~$ free -h
                      total        used        free         shared    buff/cache   available
Mem:          964Mi       201Mi       168Mi       1.0Mi       594Mi       627Mi
Swap:            0B          0B             0B

ubuntu@instance-20230626-2355:~$ sudo fallocate -l 2G /swapfile

ubuntu@instance-20230626-2355:~$ sudo chmod 600 /swapfile

ubuntu@instance-20230626-2355:~$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=6be33865-5c3a-4cce-bca3-96b4e1880438

ubuntu@instance-20230626-2355:~$ sudo swapon /swapfile

ubuntu@instance-20230626-2355:~$ sudo swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2

ubuntu@instance-20230626-2355:~$ free -h
                     total        used          free        shared   buff/cache   available
Mem:          964Mi       202Mi       165Mi       1.0Mi       596Mi       626Mi
Swap:         2.0Gi          0B            2.0Gi

 

위 명령어들을 따라해보면 2GB 사이즈의 swap 메모리를 만들어줄 수 있다.

하지만, 재부팅하게 되면 사라지니... 재부팅해도 유지될 수 있도록 추가 작업을 해주자.

 

ubuntu@instance-20230626-2355:~$ sudo nano /etc/fstab

 

아래 한 줄 추가해주면 된다. (탭으로 구분하는 것 잊지 말고!)

 

 

추가로... 우리는 대한민국 사람이니, 타임존을 맞춰주자.

 

ubuntu@instance-20230626-2355:~$ sudo timedatectl set-timezone Asia/Seoul

ubuntu@instance-20230626-2355:~$ timedatectl
                          Local time: Tue 2023-06-27 00:32:32 KST
                    Universal time: Mon 2023-06-26 15:32:32 UTC
                            RTC time: Mon 2023-06-26 15:32:32    
                           Time zone: Asia/Seoul (KST, +0900)    
System clock synchronized: yes                        
                        NTP service: active                     
                   RTC in local TZ: no

 

굳이 왜 이렇게까지 하냐면.... ^^

예전에 이렇게 만들어놓고 잊어먹어서.... 접속을 하지 않다가.... 결국은 삭제를 당했기에....

 

 

파이썬 환경을 만들어보자.

 

ubuntu@instance-20230626-2355:/srv/workspace/python-gmail$ sudo apt install python3

ubuntu@instance-20230626-2355:/srv/workspace/python-gmail$ sudo apt install python-is-python3

ubuntu@instance-20230626-2355:/srv/workspace/python-gmail$ sudo apt install python3-pip

ubuntu@instance-20230626-2355:/srv/workspace/python-gmail$ pip install requests

 

아래 소스코드를 저장해놓자.

 

#!/usr/bin/env python3
"""
Send email via Gmail SMTP
"""

__author__ = "whatwant"
__version__ = "0.1.0"
__license__ = "BEER-WARE"

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from requests import get


def send_email(sender_email, receiver_email, app_password, subject, text, html):
    message = MIMEMultipart("alternative")
    message["Subject"] = subject
    message["From"] = sender_email
    message["To"] = receiver_email

    part1 = MIMEText(text, "plain")
    part2 = MIMEText(html, "html")

    message.attach(part1)
    message.attach(part2)

    with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
        server.login(sender_email, app_password)
        server.sendmail(sender_email, receiver_email, message.as_string())


def get_ip():
    ip = get("https://api.ipify.org").text
    return ip


if __name__ == "__main__":
    sender_email = "whatwant@whatwant.com"
    receiver_email = "whatwant@gmail.com"
    app_password = "xxxxxx"

    subject = "This is a lucky email from Python"
    text = f"My public IP address : {get_ip()}"
    html = f"<html><body><p>{text}</p></body></html>"

    send_email(sender_email, receiver_email, app_password, subject, text, html)

 

위 코드를 실행하면 다음과 같이 메일이 온다.

 

 

하루에 한 번씩 보내도록 하자 ^^

 

만날 헷갈리는 crontab ... 예쁜 사이트의 도움을 받자.

 

https://crontab.guru/

 

crontab 등록을 해보자.

 

ubuntu@instance-20230626-2355:/srv/workspace/python-gmail$ crontab -e

 

 

이제, 매일 새벽 4시에 메일을 보내준다 ^^

반응형

+ Recent posts