서버 자동 실행 설정하기(Nginx, Samba)

dawoon·2024년 9월 5일

서버 자동 실행 설정하기

만약 서버가 꺼지거나, 어떤 문제로 인해 자동으로 reboot 되었을 때를 대비해 서버 reboot 시 자동으로 웹, 파일 서버가 실행되도록 설정해보려 합니다.

1. Nginx 자동 시작 설정 확인

sudo systemctl enable nginx
  • 명령어 설명
    Nginx가 시스템이 부팅될 때 자동으로 시작되도록 설정합니다.
    만약 이미 자동 시작이 설정되어 있다면 출력값이 없을것입니다.

  • 결과값 확인
    (1) systemctl enable nginx :
    Nginx가 시스템 부팅 시 자동으로 시작되도록 설정되었음을 알려주는 메시지입니다.
    (2) Synchronizing state :
    시스템에서 SysV init 스크립트를 systemd와 동기화하고 있다는 의미입니다.
    이는 Nginx가 올바르게 자동 시작되도록 설정되었다는 것을 나타내는 일반적인 메시지입니다.

2. Samba 자동 시작 설정 확인

sudo systemctl enable smbd
  • 명령어 설명
    Samba가 시스템 부팅 시 자동으로 시작되도록 설정합니다.
    Nginx와 마찬가지로 이미 설정되어 있으면 아무런 출력값이 없을것입니다.

  • 결과값 확인
    (1) systemctl enable smbd :
    Samba 파일 서버(smbd)를 시스템 부팅 시 자동으로 시작되도록 설정되었음을 알려주는 메시지입니다.
    (2) Synchronizing state :
    systemd와 SysV init 스크립트를 동기화하는 정상적인 과정이며, Samba가 자동으로 실행되도록 설정된 것을 의미합니다.

3. 서버 reboot

sudo reboot
  • 위 명령어를 통해 서버를 재시작한 뒤 웹 서버와 파일 서버가 아무런 조작 없이도 접속이 가능한지 확인합니다.

4. reboot 이후 에러 발생(에러 발생시 확인)

sudo reboot 명령어를 통해 서버를 재시작해보았는데, 웹, 파일 서버 접속이 되지 않고 Raspberry Pi에"Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings 라는 문구가 뜨며 ip가 연결되지 않는 오류가 발생하여 추가로 해결 방법을 작성합니다.

(1) 인터넷 연결 확인

우선, 아래 명령어를 통해 라즈베리파이가 인터넷에 제대로 연결되어 있는지 확인합니다.

ping 8.8.8.8
  • 명령어 설명
    ping 8.8.8.8 :
    구글의 공용 DNS 서버에 연결 테스트를 해보는 명령어입니다.
    만약 네트워크 연결이 문제없다면, 패킷들이 전송되고 응답을 받을 수 있습니다.

저는 ping: connet: Network is unreachable** 라는 결과값이 출력되었고, 정상적으로 작동되지 않아 다른 방법시도하였습니다.

(2) 네트워크 인터페이스 활성화(시도 했으나 적용 실패)

(2-1) 네트워크 인터페이스를 수동으로 활성화
sudo dhclient eth0 # 유선 연결 사용 시
sudo dhclient wlan0 # 무선 연결 사용 시
  • 명령어 설명
    dhclient :
    네트워크 인터페이스에 IP 주소를 할당하기 위해 DHCP 클라이언트를 실행합니다.
    eth0은 유선 이더넷 인터페이스이고, wlan0은 무선 인터페이스입니다.

저는 sudo: dhclient: command not found 라는 결과 값이 출력되었고 계속해서 IP 연결이 되지 않았다.

(2-2) ifupdown 패키지 설치 (시도 했으나 적용 실패)

ifupdown 패키지를 설치하고, 이를 통해 네트워크 인터페이스를 관리할 수 있다고 하여 아래와 같은 방법을 진행해보았습니다.

sudo apt update
sudo apt install ifupdown
  • 명령어 설명
    ifupdown :
    네트워크 인터페이스를 관리하기 위한 도구 패키지입니다.
    이 패키지를 설치하면 네트워크 인터페이스를 수동으로 활성화하고 IP 주소를 할당할 수 있게 됩니다.

  • 설치된 후 네트워크 인터페이스를 수동으로 활성화 해본다.

sudo ifup eth0 # 유선 연결 사용 시
sudo ifup wlan0 # 무선 연결 사용 시
  • 명령어 설명:
    ifup :
    네트워크 인터페이스를 활성화합니다.
    이 명령을 통해 라즈베리파이가 DHCP 서버로부터 IP 주소를 얻고, 네트워크에 연결할 수 있습니다.

저는 "sudo apt install ifupdown" 오류메세지가 출력되면서 작동되지 않는 오류가 발생했습니다. (오류메세지를 확인하지 못했다...ㅜ)

(3) 네트워크 설정 파일 수동 편집(오류 픽스 성공⭐)

Ubuntu Servernetplan 이라는 네트워크 설정 도구를 사용하고, 이 도구를 통해 네트워크 인터페이스 설정을 확인하고 수동으로 수정할 수 있습니다.

sudo nano /etc/netplan/00-installer-config.yaml
  • 명령어 설명
    netplan 설정 파일을 열 수 있는 명령어입니다.
    파일 형식은 .yaml 파일로, 네트워크 인터페이스 설정을 담고 있습니다.

  • 명령어를 실행하면 빈 파일이 열리게 되며, 아래 내용을 추가하거나 이미 내용이 있다면 수정하면 된다.

# 유선 연결 사용 시
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
      
# 무선 연결 사용 시
network:
  version: 2
  renderer: networkd
  wifis:
    wlan0:
      dhcp4: yes
      access-points:
        "네트워크_이름":
          password: "네트워크_비밀번호"      

파일을 수정한 후, Ctrl + X, Y를 눌러 저장하고 종료합니다.

  • 파일을 수정한 후 아래 명령어를 통해 변경 사항을 적용합니다.
sudo netplan apply
  • 이후, 네트워크가 활성화되었는지 확인하기 위해 다시 IP 주소를 확인합니다.
ip a
  • 저는 위 내용을 적용 후 다시 웹, 파일 서버를 정상적으로 연결할 수 있었습니다.

(4) Server Reboot 재시도

Server Reboot시 웹, 파일 서버가 자동으로 켜지게 하는것이 목표였으므로 다시 한번 Server Reboot를 시도하여 정상적으로 적용되었는지 확인합니다.

  • 정상 작동 후 각 서버 서비스 상태 확인도 해보자
# Nginx 서비스 상태 확인 명령어
sudo systemctl status nginx

# Samba 서비스 상태 확인 명령어
sudo systemctl status smbd
  • 각각의 서비스가 "active (running)" 상태로 출력된다면 자동 시작 설정이 잘 된 것입니다.
  • 이후 로컬 컴퓨터의 cmd에서 SSH를 다시 연결해서 사용하면 됩니다.
ssh user_name@ip_address

다음에는 Docker를 설치해보겠습니다.

profile
코딩 입문

0개의 댓글