동생이 집에 홈서버 있으면 쓰고싶다 하길래 굳이 필요한가 싶어 빠꾸시켰는데, 생각을 해보니 하나 장만하면 동생이 컴퓨터 공부를 하는데 제격이겠다 싶어서 오랜만에 만들어봤다.
나는 집에서 안쓰는, 2017년인가에 구매한 삼성의 always9 노트북으로 홈서버를 만들었다.
0. 준비물
- Ubuntu Server 이미지를 구울 USB
- 안쓰는 노트북 (여기서는 삼성 always9 사용)
- 사용 중인 노트북 (ubuntu server와의 통신을 위함)
1. Ubuntu Server 이미지 다운로드
일단 홈서버는, 컴퓨터가 계속 돌아간다는 가정이 있어야 하기 때문에 에너지를 가장 안 잡아먹는형태로 구현을 해야한다.
우리가 생각하는 우분투 데스크톱은 GUI가 있어 CPU, RAM같은 컴퓨터 자원을 많이 잡아먹기 때문에, 아주 최소한의 필수 기능만 들어있는 Ubuntu Server를 사용했다.
애초에 ubuntu server는 SSH를 통해 명령어를 입력하는 방식이 최적화되어 있기도 하고, attack surface도 적어서 다른 것들에 비해 매우 안전한 편이기도 하다.
다들 알겠지만 프로그램은 LTS버전이 가장 안정적이다!
2. USB에 이미지 굽기
그냥 파일을 담으면 안된다. iso로 다운받아질텐데, 이거를 노트북에 꽂았을 때 부팅이 가능한 상태로 만들어야 한다.
그래서 windows를 사용 중이라면 Rufus를, 맥북을 사용 중이라면 BalenaEtcher를 이용해서 usb를 구워준다.
3. 노트북에서 부팅 설정 잡기
USB를 구웠다면, 이제 ubuntu server를 설치할 노트북의 부팅 설정을 잡아줘야 한다. 그래야 usb를 선택해서 기존의 환경을 싹 다 밀고 ubuntu server를 설치할 수 있기 때문이다.
노트북마다 전원키가 다를 수 있는 점을 참고하길 바라며, 여기서는 삼성 always9 세팅으로 설명을 적어본다.
- 전원이 켜지자마자
F2를 연타하여 삼성 BIOS 설정 화면으로 들어간다. - 필자의 기억이 정확히 안나서 해당 메뉴이 명확한지 확신이 안들지만 일단 이런 느낌의 항목을 찾을 수 있을 것이다. BIOS에서 아래의 세팅이 잘 되어 있는지 확인해보자
- Secure Boot (Control): Off 또는 Disabled
- OS Mode Selection: UEFI가 들어있는 메뉴로 변경
- Fast BIOS Mode: Off
- Battery Life Extender+: On
- USB S3 Wakeup: On
- 위 설정을 완료했다면 Save를 한 후, 재부팅을 하자마자 다시 F2를 연타하자
4. Ubuntu Server 설치하기
여기까지 잘 됐다면, Try or install Ubuntu Server, Ubuntu server with the hwe kernel.... 이라는 선택지가 나올 것이다.
여기에서 맨 위의 Try or install Ubuntu Server를 Enter로 선택하거나, 아니면 가만히 있음 알아서 Ubuntu Server 설치로 이동하게 될 것이다.
그렇게 1분 정도 기다리면 영어가 올라오면서, 기본 세팅이 되는 것을 확인할 수 있다.
- Language: English 선택 (한글 지원 안됨)
- Network: 일단 나중에 설정할 예정이니 바로 Done으로 넘어가기
- Storage Configuration:
Use an entire disk를 선택하면 기존의 프로그램 및 파일들이 싹다 없어진다. 그리고Done을 누르면Confirm destructive action이 나오는데,Continue를 선택하면 이 순간 Windows OS와 영원한 작별인사를 하게 된다는 점을 알아두자 - Profile Setup
- Your name: 본인 이름
- Your server’s name: 서버 이름
- Pick a username: 로그인 아이디
- Password: 비밀번호
이 모든 세팅이 완료된다면, Install complete가 나오고 Reboot Now가 나오는데, Reboot now를 누른 후 바로 꽂혀있는 USB를 제거한다.
설치가 잘됐다면 end ssh host keys... datasource datasourceone up xxx seconds라고 하면서 무한커서가 나오는데, 세팅이 잘 됐다는 의미이다.
이 때 엔터를 한두번 하면 login:이라며 커서가 깜빡이는데, Pick a username에 입력했던 아이디를 입력, 엔터 후 password도 잘 입력을 하면 서버 로그인에 성공할 것이다.
5. 노트북 뚜껑 닫기 설정 (Lid Switch 설정)
sudo vim /etc/systemd/logind.conf
아래 항목들을 다음같이 변경해준다.
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
이후 변경사항을 적용해준다.
sudo systemctl restart systemd-logind
이 세팅을 해주면 노트북 뚜껑을 닫아도 프로그램이 계속 작동되는걸 볼 수 있을 것이다.
6. 와이파이 Wi-Fi 잡기
외부와의 통신을 위해 와이파이를 잡아줘야 한다.
ubuntu server는 netplan이라는 도구를 이용해 네트워크를 관리해준다.
ip link
위 명령어를 입력하면, wlp...로 시작하는 이름이 보일 것이다. (대부분 이름이 wlp1s0임)
이 이름을 잘 백업해놓자. 이후로 설정 파일을 만들어서 wifi 연결을 잡아줄 것이다.
sudo vim /etc/netplan/01-netcfg.yaml
파일 내용은 다음과 같이 만들어준다.
참고로 .하나가 스페이스바 한 번이니, 형식에 맞춰서 잘 작성을 할 것을 권장한다. 의외로 여기에서 오류가 굉장히 많이 나더라;
network:
..version: 2
..renderer: networkd
..wifis:
....wlp1s0: # 아까 백업하라고 했던 네트워크 이름
......dhcp4: yes
......access-points:
........"와이파이이름":
..........password: "비밀번호"
이후, 파일의 권한을 소유자만 읽고 쓸 수 있게 변경해준다.
sudo chmod 600 /etc/netplan/01-netcfg.yaml
이 변경사항을 적용한다. 그러면 인터넷이랑 연결이 될 것이다.
sudo netplan apply
만약에 인터넷 연결을 확인하고 싶다면, 다음의 명령어를 입력하면 된다.
ping -c 3 google.com
핑이 3번 잘 와리가리 했다면, 인터넷이 잘 통한다는 의미이다. 만약 “Temporary failure in name resolution….”같은 문장이 나오면 띄어쓰기나 와이파이 이름, 비밀번호 오타일 수 있으니 꼭 확인해보자
7. IP 확인하기
홈서버는 만들어졌다. 근데 주소를 알아야 와리가리를 할 수 있기 때문에, IP를 꼭 알아내야 한다.
ip addr show wlp1s0
위 명령어를 입력하면, 어떤 내용들이 쫙 나오는데 여기에서 inet다음에 나오는 숫자를 확인하면 된다.
보통은 192.168.0.xxx 또는 172.x.x.x형식으로 나올 것이다.
8. 다른 컴퓨터에서 홈서버 연결해보기
이제 모든 준비는 끝났다. 홈서버에 직접 접속을 확인해보자
ssh "Pick a username에 입력했던 값"@"서버IP주소" # 예: ssh systemadmin@192.168.0.1
맨 처음 접속하면 Are you sure you want to continue connecting? 이라는 문구가 나오는데, 바로 yes를 타이핑한다. 그러면 비밀번호를 입력하라는데, 비밀번호를 입력하면 로그인이 잘 될 것이다.
저기에서 자원을 효율적으로 관리하고 싶은 사람들은 k8s를 세팅해서 운영하면 된다.
세팅법 다 까먹은 줄 알았는데 아주 잘된다 좋아요~~