간만에 Server 버전을 설치해야할 상황이 생겨서 기록을 남겨보고자 한다.

 

https://ubuntu.com/download/server

 

현재 정확한 버전은 22.04.02 LTS 이다.

Server 버전임에도 용량이 1.8GB 라니 .... 대박이구만...

 

일단 아래 과정은 Windows 10 Host 환경의 VirtualBox 7.0.6 버전에서 진행을 했다.

 

운영체제는 Ubuntu (64-bit) 로 선택해야 한다.

 

VirtualBox - OS

 

지금 필요로 하는 환경이 낮은 Spec이어야 해서 2GB 메모리로만 설정을 했고,

core가 2개 이상이어야 해서 일단 2개로 선택했다.

 

VirtualBox - HW

 

디스크 용량은 어짜피 동적 용량이기에 조금은 여유있게 설정해주는 것이

혹시 모를 나중에 대비해 바람직한 선택이다.

 

VirtualBox - HDD

 

네트워크 설정은 "NAT"를 선택하는 것이 일반적이지만,

여기에서는 "어댑터에 브리지"를 선택해서 Host와 동일한 레벨에서 IP를 받을 수 있도록 하겠다.

(집에서 공유기를 쓰는 환경이라고 하면 공유기로부터 IP를 직접 받도록 하는 것)

 

VirtualBox - Network

 

이제 다운로드 받은 Ubuntu Server ISO 이미지를 등록해서 부팅 및 설치를 진행하자.

별도로 설명하지 않은 부분은 기본 설정으로 진행한 것이다.

 

Ubuntu Server

 

IP도 잘 받아온 것을 볼 수 있다.

 

IP

 

기본이 LVM 이다. 흐음... 그냥 가자.

 

LVM

 

기본 설정은 free 공간을 두는데, 그냥 전체를 다 사용하는 것으로 변경해보자.

 

Before

 

ubuntu-lv 설정을 아래와 같이 잡아주면 된다.

 

edit

 

after

 

OpenSSH server 설치는 필수다!!!

 

OpenSSH server

 

설치가 끝나면 Close 해줘야 한다.

 

Close

 

재부팅 하면 아래와 같이 에러 화면이 나오기도 한다.

걱정하지 말자.

 

cloud-init

 

엔터 한 번 치고

앞에서 입력한 계정 및 패스워드 치면 로그인 된다.

 

login

 

기분 나쁘게 에러 발생한 패키지부터 삭제하자

 

$ sudo apt purge cloud-init

 

sudo 했을 때 패스워드 입력하는게 기분나쁘니(?) 해결하자.

 

$ sudo visudo

 

제일 밑에 아래와 같이 (각자 계정으로) 입력해놓고 저장하면 된다.

 

whatwant ALL=(ALL) NOPASSWD:ALL

 

패키지 전체적으로 업데이트 및 업그레이드 하자.

 

$ sudo apt update

$ sudo apt upgrade

 

아래와 같은 화면이 나올 수 있는데, 그냥 바로 OK 하자.

 

 

필요 없는 것들 지우고 깔끔히 재부팅하자.

 

$ sudo apt autoremove

$ sudo reboot

 

 

Server에서 굳이 한글이 필요할까 싶지만, 그래도 세종대왕님을 생각하며...

 

$ sudo apt install language-pack-ko

$ sudo locale-gen ko_KR.UTF-8

$ sudo dpkg-reconfigure locales

$ sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX

 

locale

 

네트워크 관련 도구들을 사용하기 위해 net-tools 패키지를 설치하자.

 

$ sudo apt install net-tools

 

많이 쓰는 git 패키지도 설치하고, 기본 환경 설정까지 해놓자.

 

$ sudo apt install git

$ git config --global user.name "whatwant"
$ git config --global user.email "whatwant@gmail.com"

 

우리는 한국에 살고 있으니, TimeZone을 맞춰보자.

 

$ sudo timedatectl

               Local time: 금 2023-04-14 16:14:51 UTC
           Universal time: 금 2023-04-14 16:14:51 UTC
                 RTC time: 금 2023-04-14 16:14:51
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

 

정확한 TimeZone 명칭을 확인해보고,

 

$ sudo timedatectl list-timezones | grep Seoul

Asia/Seoul

 

설정해주면 된다.

 

$ sudo timedatectl set-timezone Asia/Seoul

$ sudo timedatectl

               Local time: 토 2023-04-15 01:16:05 KST
           Universal time: 금 2023-04-14 16:16:05 UTC
                 RTC time: 금 2023-04-14 16:16:05
                Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

 

심지어 "System clock synchronized: yes"라고 되어있는 것을 보면 시간 동기화 설정도 이미 되어있다!

 

 

 

개인적인 취향에 따른 설정도 추가적으로 해보자.

 

vi를 싫어하고 nano를 사용하기에 nano 기본 설정값을 넣어보겠다.

 

$ nano ~/.nanorc

 

tab을 공백 4칸으로 설정하는 것이다.

 

set tabsize 4
set tabstospaces

 

root 권한으로 사용하는 경우, 특히 sudo 사용할 때를 위해서 추가적으로... (내용은 동일)

 

 $ sudo nano /root/.nanorc

 

 

지극히 개인적인 취향으로 작업 공간 설정도 해놓겠다.

 

$ sudo mkdir /srv/workspace
$ sudo mkdir /srv/install

$ sudo chown whatwant:whatwant /srv/workspace/
$ sudo chown whatwant:whatwant /srv/install/

 

Server 환경이니만큼 굳이 zsh 등까지는 설치하지 않겠다.

 

 

추가적으로 VirtualBox Guest-Additions를 설치해보자.

GUI 환경이 없기에 생략할 수도 있긴 한데.... 그래도 성능 향상이 있다고 하니 해보자.

 

게스트 확장 CD 이미지

 

우리는 지금 Server 버전의 Ubuntu이기에 직접 마운트 작업을 해줘야 한다 ^^

 

$ sudo mkdir /media/cdrom

$ sudo mount /dev/cdrom /media/cdrom

 

해당 디렉토리로 이동해보자.

 

$ cd /media/cdrom/

$ ls -al

total 41763
dr-xr-xr-x 5 root root     2570  1월 12 01:28 .
drwxr-xr-x 3 root root     4096  4월 15 13:40 ..
-r--r--r-- 1 root root     1049  8월 23  2022 AUTORUN.INF
dr-xr-xr-x 2 root root     1252  1월 12 01:28 NT3x
dr-xr-xr-x 2 root root     2828  1월 12 01:28 OS2
-r--r--r-- 1 root root      592  1월 12 01:28 TRANS.TBL
-r--r--r-- 1 root root  2202917  1월 11 23:38 VBoxDarwinAdditions.pkg
-r-xr-xr-x 1 root root     4225  1월 11 23:35 VBoxDarwinAdditionsUninstall.tool
-r-xr-xr-x 1 root root  5968312  1월 11 23:36 VBoxLinuxAdditions.run
-r--r--r-- 1 root root  9332736  1월 11 23:38 VBoxSolarisAdditions.pkg
-r-xr-xr-x 1 root root 15755216  1월 12 01:27 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x 1 root root  9227840  1월 12 01:08 VBoxWindowsAdditions-x86.exe
-r-xr-xr-x 1 root root   243728  1월 11 23:38 VBoxWindowsAdditions.exe
-r-xr-xr-x 1 root root     6849  1월 11 23:35 autorun.sh
dr-xr-xr-x 2 root root     1468  1월 12 01:28 cert
-r-xr-xr-x 1 root root     5097  1월 11 23:35 runasroot.sh
-r--r--r-- 1 root root      259 10월  2  2021 windows11-bypass.reg

 

Guest-Additions를 설치하기 위해서 필요한 패키지들을 먼저 설치해줘야 한다.

 

$ sudo apt install -y dkms build-essential linux-headers-generic linux-headers-$(uname -r)

 

이제 설치를 진행하면 된다.

 

$ sudo ./VBoxLinuxAdditions.run

 

무슨 이상한 에러메시지가 나올 수 있으나 쫄지 말자.

GUI 환경이 없기에 발생하는 것이다.

 

재부팅하고 잘 설치되었는지 확인까지 해보자.

 

$ sudo reboot

---

$ lsmod | grep vbox

vboxguest             434176  0

$ modinfo vboxguest

filename:       /lib/modules/5.15.0-69-generic/misc/vboxguest.ko
version:        7.0.6 r155176
license:        GPL
description:    Oracle VM VirtualBox Guest Additions for Linux Module
author:         Oracle and/or its affiliates
srcversion:     55B45B43FE1759D12174E93
alias:          pci:v000080EEd0000CAFEsv00000000sd00000000bc*sc*i*
depends:
retpoline:      Y
name:           vboxguest
vermagic:       5.15.0-69-generic SMP mod_unload modversions

 

여기까지~ 끝~

반응형



우리 아이가 어렸을 적에 쓰기 위해서 구매했던 노트북이 있었는데,

이제는 성능이 제대로 나오지 않아 새로운 노트북을 구매하면서 마땅한 사용처가 없어졌다.


그래서, 버리려다가 저전력 서버로 한 번 셋팅해보고자 마음을 먹었다.



무려 2세대 !!! ㅋㅋㅋ


메모리도 2GB 밖에 안되었는데...

마침 맥북프로 메모리 업그레이드 하면서 교체했던 것이 있어서 4GB로 업그레이드~!!





1. Ubuntu Server 다운로드


  - "Ubuntu Server 20.04.1 LTS" 버전으로 다운로드 받아서 설치하기로 했다.


  - https://ubuntu.com/download/server



  - "Option 3번"으로 다운로드 받으면 된다.





2. 설치 USB 만들기


  - 부팅 USB 만들기 위해서 rufus 포터블로 다운로드 받아보자.


  - https://rufus.ie/


  - 다운로드 받은 뒤 실행한 뒤에



  - 위와 같이 설정을 하면 된다. (파티션 방식, 대상 시스템, 파일 시스템, 클러스터 크기 등)



  - "시작"을 누르면 위와 같은 화면이 나오는데, 그냥 "예"를 선택하면 된다.



  - ISO 이미지 모드로 쓰면 된다.





3. 노트북 BIOS 셋팅


  - 일단 BIOS에 들어가면 된다. (삼성 노트북은 부팅할 때 F2를 눌러주면 된다)


  - Boot 순서 항목에서 USB를 앞으로 잡아주면 된다.






4. Ubuntu 설치


  - 설치 언어는 그냥 English로 잡아주자. 한글 등은 나중에 직접 잡아주면 된다.



  - 설치 중에... 유선랜을 연결하지 않았더니, 인터넷 안된다고 뭐라한다. 뭐 일단은 그냥 무시하고 고고~~~!!



  - 그냥 나머지는 쭉~쭉~ 설치하면 된다.


  - 하지만, 재부팅 후에 로그인을 해도... 무선랜이 동작하지 않는다. 이걸 잡아보자.





5. cloud-init 제거



$ sudo dpkg-reconfigure cloud-init


제일 하단의 None 항목 빼고 나머지 전부 선택을 해제


$ sudo apt purge cloud-init


$ sudo rm -rf /etc/cloud/

$ sudo rm -rf /var/lib/cloud/


또는,


$ sudo mv /etc/cloud /srv/remove/cloud-init/etc-cloud

$ sudo mv /var/lib/cloud/ /srv/remove/cloud-init/var-lib-cloud





(VirtualBox 에서 게스트 확장 설치하기)


  - 메뉴 - 장치 - 게스트 확장 CD 이미지 삽입...


$ sudo mkdir /media/cdrom


$ sudo mount -t iso9660 /dev/cdrom /media/cdrom


$ sudo apt install build-essential linux-headers-`uname -r`


$ sudo /media/cdrom/./VBoxLinuxAdditions.run


$ sudo umount -v /media/cdrom


$ sudo reboot






6. 무선랜 설정


  - Reference : https://medium.com/@yping88/how-to-enable-wi-fi-on-ubuntu-server-20-04-without-a-wired-ethernet-connection-42e0b71ca198


  - 무선랜 드라이버 설치를 위해 파일들을 복사해야 한다. 다음의 3개 파일을 다운로드 받자 (다른 PC에서)


    . http://mirrors.kernel.org/ubuntu/pool/main/w/wpa/wpasupplicant_2.9-1ubuntu4_amd64.deb

    . http://mirrors.kernel.org/ubuntu/pool/main/libn/libnl3/libnl-route-3-200_3.4.0-1_amd64.deb

    . http://mirrors.kernel.org/ubuntu/pool/main/p/pcsc-lite/libpcsclite1_1.8.26-3_amd64.deb


  - USB는 앞에서 사용한 것을 재활용하기로 하고, FAT32로 포맷해서 준비하자.


  - 앞에서 다운로드 받은 3개의 파일을 USB에 넣자.


  - USB를 우리의 Ubuntu Server Notebook에 꼽자


  - USB를 바로 사용하지는 못하지만, 꼽힌 것을 인식했는지를 우선 확인해보자.


$ sudo fdisk -l



  - 제일 아래 부분을 보면 USB가 보일 것이다. Device 명칭을 잘 확인하자.


  - USB를 mount 하기 위해서 mount 위치 용도의 디렉토리 하나 만들고 mount를 하자.


$ sudo mkdir /media/usb


$ sudo mount -t vfat /dev/sdb1 /media/usb



  - USB에서 보이는 3개의 파일을 설치하면 된다.


$ cd /media/usb


$ sudo dpkg -i libnl-route-3-200_3.4.0-1_amd64.deb libpcsclite1_1.8.26-3_amd64.deb wpasupplicant_2.9-1ubuntu4_amd64.deb


  - 이제는 무선랜카드가 잘 잡혔는지 확인해보자.


$ ls -al /sys/class/net/



  - 밑에 보면 "wlp2s0b1"과 같이 제대로 인식된 것을 확인해볼 수 있다. (물론 다른 환경에서는 다른 이름일 수도 있다!!!)


  - 다른 명령어로도 확인해볼 수 있다.


$ ip link



  - 무선랜카드가 잘 잡혔으니, 이제 무선랜 설정을 해보자.


  - netplan 으로 설정하면 되는데, 기존 설정 파일을 백업하고 설정 작업하면 된다.


$ sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml


$ sudo nano /etc/netplan/00-installer-config.yaml


network:

  ethernetes: {}

  version: 2

  wifis:

    wlp2s0b1:

      dhcp4: true

      optional:true

      access-points:

        "SSID Name":

          password: "**********"

  renderer: networkd


  - 각자 환경에 맞는 "SSID Name"과 "Password" 설정하면 된다.


  - 문법에 맞춰서 잘 설정했는지 확인해보자.


$ sudo netplan --debug generate


  - 문제가 없으면 이제 실제 적용을 해보자.


$ sudo netplan apply


  - 제대로 동작을 하는지 보기 위해서 재부팅을 하면 된다.


$ sudo reboot





7. 기본 패키지 업그레이드


  - 이제 인터넷이 되니 패키지 업그레이드를 하자


$ sudo apt update


$ sudo apt upgrade


  - 네트워크 관련 도구도 설치를 하자


$ sudo apt install net-tools





8. Language Pack 설치


  - 정상적인 한글 사용을 위해 Language Pack 설치를 해보자


$ sudo apt install language-pack-ko


$ sudo locale-gen ko_KR.UTF-8


$ sudo dpkg-reconfigure locales


$ sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX




9. Timezone 셋팅


  - Timezone도 제대로 되어있는지 셋팅해보자.


$ sudo timedatectl


$ sudo timedatectl list-timezones | grep Seoul


$ sudo timedatectl set-timezone Asia/Seoul


$ sudo timedatectl


$ date





10. nano 설정


  - 주요 데이터로 nano를 사용하기 위한 환경 설정도 해보자.


$ nano ~/.nanorc


set tabsize 4

set tabstospaces


  - root 계정을 위해서도 추가로 셋팅해주자.


$ sudo nano /root/.nanorc





11. 노트북 덮개 설정


  - 노트북 덮개를 닫더라도 절전 모드로 전환되지 않도록 하기 위한 설정을 하자.


$ sudo nano /etc/systemd/logind.conf


  - "HandleLidSwitch=ignore" 라인을 추가하면 된다.


...

#HandleLidSwitch=suspend

HandleLidSwitch=ignore 

...


  - 수정한 내역을 반영해보자.


$ sudo systemctl restart systemd-logind






12. ssh-server


  - 이미 설치되어있던데... 혹시 모르니


$ sudo apt install openssh-server


  - 이제 외부에서 접속해보면 된다.





13. git 설치하기


  - 요즘은 기본이 되어버린 git ... 설치하고 기본 환경 셋팅을 하자


$ sudo apt install git


  - 사용자 환경 설정을 하자


$ git config --global user.name "whatwant"


$ git config --global user.email "whatwant@whatwant.com"






14. zsh


  - zsh 설치해보자


$ sudo apt install zsh


$ sudo apt install fonts-powerline


$ chsh -s $(which zsh)


  - 로그아웃 하고 재로그인을 해야 이후 셋팅을 진행한다.



  - 그냥 2번으로 선택해보자.


  - oh-my-zsh 설치를 진행하자.


$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"


  - theme를 변경해보자.


$ nano ~/.zshrc


# ZSH_THEME="robbyrussell"

ZSH_THEME="agnoster"


  - 또, 로그아웃 하고 재로그인 해보자. 원하는 모습으로 잘 나올 것이다.


  - 유용한 플러그인도 몇 가지 설치해보자


$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting


$ git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions


  - 다운로드 받은 플러그인을 등록하자.


$ nano ~/.zshrc


#plugins=(git)

plugins=(git zsh-syntax-highlighting zsh-autosuggestions)


  - 그리고 다시 설정 파일을 로딩하면 된다.


$ source ~/.zshrc


  - 멀티라인으로 출력되도록 하자.


$ nano ~/.oh-my-zsh/themes/agnoster.zsh-theme


  - 아래 파란색으로 된 부분만 추가해주면 된다.


...

## Main prompt

build_prompt() {

  RETVAL=$?

  prompt_status

  prompt_virtualenv

  prompt_aws

  prompt_context

  prompt_dir

  prompt_git

  prompt_bzr

  prompt_hg

  prompt_newline

  prompt_end

}


## multiline

prompt_newline() {

  if [[ -n $CURRENT_BG ]]; then

    echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR

%(?.%F{$CURRENT_BG}.%F{red})❯%f"


  else

    echo -n "%{%k%}"

  fi


  echo -n "%{%f%}"

  CURRENT_BG=''

}


PROMPT='%{%f%b%k%}$(build_prompt) '






15. sudo 패스워드 없애기


  - 툭하면 sudo를 사용해야하는데, 자꾸 패스워드 입력하는 것이 귀찮으니 없애버리자.


$ sudo visudo


  - 원하는 계정에 대해서 아래와 같이 제일 밑에 라인을 추가하자


whatwant ALL=(ALL) NOPASSWD:ALL





16. NTP


  - 시간 자동 동기화 설정 여부를 확인해보자.


$ timedatectl status


                      Local time: 일 2020-12-27 03:10:03 KST

                 Universal time: 토 2020-12-26 18:10:03 UTC

                        RTC time: 토 2020-12-26 18:10:04

                      Time zone: Asia/Seoul (KST, +0900)

 System clock synchronized: no

                    NTP service: inactive

                RTC in local TZ: no


  - 위와 같이 "System clock synchronized: no"로 되어 있으면 이하 과정을 실행해야 한다.


$ sudo systemctl start systemd-timesyncd


$ sudo systemctl enable systemd-timesyncd


  - 다시 확인해보자


$ timedatectl status


                       Local time: 일 2020-12-27 03:17:33 KST

                  Universal time: 토 2020-12-26 18:17:33 UTC

                         RTC time: 토 2020-12-26 18:17:34

                       Time zone: Asia/Seoul (KST, +0900)

System clock synchronized: yes

                     NTP service: active

                  RTC in local TZ: no


  - 혹시라도 방화벽 이슈로 NTP 서버를 변경해야 하면 아래와 같이 하면 된다.


$ sudo nano /etc/systemd/timesyncd.conf


  - NTP 부분의 주석 삭제하고 아래와 같이 서버를 지정해주면 된다.


NTP=time.windows.com



반응형

'OS > Ubuntu' 카테고리의 다른 글

Tidy Viewer (tv) - CSV Viewer  (0) 2021.10.17
SSH Client on Windows (Xshell)  (0) 2021.01.03
LinuxBrew(HomeBrew) 설치하기 (Ubuntu 18.04)  (0) 2020.12.06
password 관리  (0) 2020.01.05
SSH 서버 포트 변경하기 (ssh server port change)  (0) 2019.07.28


오래된 노트북으로 서버 한 대를 셋팅하던 중, Docker를 설치하는 과정을 기록해보려 한다.



공식 홈페이지 가이드를 따라서 진행했다.

- https://docs.docker.com/engine/installation/linux/ubuntu/



※ 이 블로그를 계속 봐오신 분들은 아시겠지만... 아래 내용은 직접 실행해보면서 작성한 것입니다.



1. Ubuntu version

    - Ubuntu Focal 20.04 (LTS)


❯ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 20.04.1 LTS

Release: 20.04

Codename: focal


❯ uname -a  

Linux whatwant 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux



2. Binary 확인

    - 웹으로 다운로드 받을 버전을 확인하자.


https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/



3. Download 받기


$ wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.4.3-1_amd64.deb

$ wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce-cli_20.10.1~3-0~ubuntu-focal_amd64.deb

$ wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce_20.10.1~3-0~ubuntu-focal_amd64.deb



4. Docker 설치하기


$ sudo dpkg --install ./containerd.io_1.4.3-1_amd64.deb

$ sudo dpkg --install ./docker-ce-cli_20.10.1~3-0~ubuntu-focal_amd64.deb

$ sudo dpkg --install ./docker-ce_20.10.1~3-0~ubuntu-focal_amd64.deb



5. sudo 없이 실행하기


$ sudo usermod -aG docker $USER


  - 로그아웃 후 재로그인해야 적용



6. Hello World


$ docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

0e03bdcc26d7: Pull complete 

Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec

Status: Downloaded newer image for hello-world:latest


Hello from Docker!

This message shows that your installation appears to be working correctly.


To generate this message, Docker took the following steps:

 1. The Docker client contacted the Docker daemon.

 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.

    (amd64)

 3. The Docker daemon created a new container from that image which runs the

    executable that produces the output you are currently reading.

 4. The Docker daemon streamed that output to the Docker client, which sent it

    to your terminal.


To try something more ambitious, you can run an Ubuntu container with:

 $ docker run -it ubuntu bash


Share images, automate workflows, and more with a free Docker ID:

 https://hub.docker.com/


For more examples and ideas, visit:

 https://docs.docker.com/get-started/



끝~



반응형


Ubuntu 18.04 Server 설치를 하고 부팅을 하는데

신경 거슬리게 하는 메시지가 자꾸 출력이 되었다.



▷ cloud-init

    - 클라우드 인스턴트를 초기화하기 위한 유틸리티들을 제공해주는 패키지


우쒸... 필요도 없는 것이 거슬리게 하네... 지워버려야겠다!!!


$ sudo apt-get purge cloud-init


이제 이상한 메시지가 안나온다.





반응형


이번에 회사 업무 때문에 간만에 서버 OS 설치가 필요한 상황이 되어서,

집에서 미리 한 번 해보면서 기록을 해보고자 한다.


1. Image Download

http://releases.ubuntu.com/18.04/



(option) 2. for Virtualbox (VirtualBox Extension Pack)


$ sudo apt install virtualbox-guest-dkms linux-headers-virtual

$ sudo mkdir -p /media/cdrom

$ sudo mount /dev/cdrom /media/cdrom

$ cd /media/cdrom

$ sudo ./VBoxLinuxAdditions.run



3. Language Pack


$ sudo apt-get install language-pack-ko

$ sudo locale-gen ko_KR.UTF-8

$ sudo dpkg-reconfigure locales

$ sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX



4. Timezone


$ sudo timedatectl

$ sudo timedatectl list-timezones | grep Seoul

$ sudo timedatectl set-timezone Asia/Seoul

$ sudo timedatectl

$ date



(option) 5. nano


$ nano ~/.nanorc


set tabsize 4

set tabstospaces



6. set time


$ sudo apt-get install ntpdate

$ sudo ntpdate time.windows.com



(option) 7. remove cloud-init


    - 설치하고 부팅을 하면 로그인 화면에서 자꾸 걸리적거리는 cloud-init 관련 메시지... 삭제해버리고 싶어서 했다.

    - cloud-init 정체는 아래 링크에서 확인

        . https://access.redhat.com/documentation/ko-kr/red_hat_virtualization/4.1/html/virtual_machine_management_guide/sect-using_cloud-init_to_automate_the_configuration_of_virtual_machines

    - 이하 내용은 다음 링크를 100% 참고했다.

        . https://nucco.org/2018/05/ubuntu-18-04-chronicles-removing-cloud-init.html


$ sudo dpkg-reconfigure cloud-init


제일 하단의 None 항목 빼고 나머지 전부 선택을 해제


$ sudo apt-get purge cloud-init


$ sudo rm -rf /etc/cloud/

$ sudo rm -rf /var/lib/cloud/


또는,


$ sudo mv /etc/cloud /srv/remove/cloud-init/etc-cloud

$ sudo mv /var/lib/cloud/ /srv/remove/cloud-init/var-lib-cloud


반응형

Windows 환경에서 Subversion 서버 환경을 구축하는 방법 중 하나로 BitNami 패키지를 활용하는 방법을 살펴보았었다.

   - Subversion 설치 (Windows, BitNami) : http://whatwant.tistory.com/609


상당히 편리하기는 하지만,
솔직히 필자의 취향과는 너무도 다른 방식이기에 공식 배포판을 가지고 환경을 구축하는 방법을 살펴보고자 한다.


리눅스(Ubuntu) 환경에서는 필자가 좋아하는 방식인 SourceCode로 설치하는 방법을 살펴보았었다.

   - Subversion 설치 (Ubuntu, SourceCode) : http://whatwant.tistory.com/566


Windows에서도 SourceCode를 빌드할 수 있겠지만,
솔직히 최근 하루에 30분 짬내기도 힘든 상황에서 좋아하지도 않는 Windows 환경에 시간 투자하기는.... ^^



공식적으로 Windows 환경을 위한 Binary는 다음과 같이 제공이 되고 있다.

   - http://subversion.apache.org/packages.html#windows




1. Download

서버를 구성하기 위해서 최근에 유행(?)하는 것은 VisualSVN이다.

   - http://www.visualsvn.com/


Windows 환경에서 대부분 그렇듯이 Client와 Server 두 가지로 구분되어서 제공되고 있다.

   - http://www.visualsvn.com/downloads/

위 경로로 접속하면 다운로드는 3가지로 구분이 되어서 배포되고 있다.



   - http://www.visualsvn.com/server/download/

System Requirements 등을 확인하면서 다운로드를 받기 위해 위 경로로 접속해보자.


대부분의 Windows 운영체제를 지원해주고 있고 상당히 낮은 CPU와 RAM, HDD 를 요구하고 있다.
즉, 어지간한 환경이라면 다 가능하다라는 아름다운 조건이다~!!!

잡소리가 길었다. [ download now ]를 눌러서 다운로드 받고 실행하자.



2. Install

사실 대부분의 상황에서도 그렇지만, 특히나 서버 프로그램은 경로를 포함해서 되도록이면 Default 설정을 따르는 것이 좋다.
선택의 상황들에 대해서 잘 읽어보고 되도록이면 기본 설정으로 가자.


위 설정을 바꿔야 하는 상황이라면 이미 expert일테니.... ^^


VisualSVN은 상용 Enterprise Edition도 제공을 하고 있다.
좋은 소프트웨어라 판단된다면, 또는 회사 업무용으로 사용한다면 구매해서 사용하는 것을 권장한다.
특히, 인증이나 로그 관련한 부분만으로도 충분히 가치가 있다고 생각한다.


공부를 위해 또는 테스트 용도로 사용한다면, "Standard Edition"으로 선택해서 설치를 계속 진행하자.


설치 경로는 별다른 사유가 없다면 그대로 설정을 하고,
저장소 경로는 각자의 상황에 따라 적절히 변경을 하면 될 것 같다.

그리고, 서버로 사용할 포트를 설정하는데 기본값은 보안을 위해 [ https ]를 사용하는 것을 권장하고 있다.


테스트 용도로 사용하거나 방화벽 등의 이슈가 있는 상황에서는 그냥 일반 http 포트인 80번 포트를 사용하자.


설치 과정이 진행이 되면 위와 같이 마무리가 된다.


서버 프로그램다운(?) Management 화면이 나온다.



repository 생성하고, 계정 관리하고 하는 부분에 대해서는 따로 포스팅하도록 하겠다.

반응형

'SCM > Subversion' 카테고리의 다른 글

Subversion 설치 (Windows, BitNami)  (0) 2013.09.09
Subversion 프로토콜 - 1. SVN (Ubuntu)  (0) 2013.09.09
Subversion 설치 (Ubuntu, SourceCode)  (0) 2013.09.05

바로 앞에서 Remote repository 를 clone 하여서 받아왔다.
이번에는 만든 work repository 에서 작업한 내용을 Server로 보내는 작업을 해보자.

더불어서 git 에서 한글파일명을 쓸 때 발생하는 문제까지 같이 살펴보겠다.



1. modify + error


$ nano ./한글파일명.txt
$ git add ./한글파일명.txt
$ git commit -m 'push + 한글파일명 검증'

위 스크린샷에 모든 것이 나와있다.

새로운 계정에서 repository를 clone 하였고,
해당 work repository에서 새로운 파일을 추가한 다음에
commit을 하고자 하는데 여기서 바로 error가 발생을 했다!

error가 발생한 이유는,
"commit 을 하려고 하는데 누가 commit을 하려는 건지 정체를 알 수가 없으니 알려줘!!!"



2. user


$ git config --global.email bigbang@whatwant.com
$ git config --global.name bigbang
$ git commit -m 'push + 한글파일명 검증'

앞에서 살펴본바와 같이 git을 사용하기 전에는 항상 환경 설정을 해줘야 한다.

   - http://whatwant.tistory.com/295

그런데,
위 스크린샷을 보면 특이한 점을 볼 수 있을 것이다. 무엇인지 찾으실 수 있으신가요?!



3. push


$ git push

다음에 다시 한 번 제대로 설명을 하겠지만,

일단, 위에서 진행한 'commit'은 Server와 별개로 현재 계정의 work repository에서 작업을 한 것이다.
작업한 내용을 Server로 보내는 작업이 필요한데, 그것이 바로 " git push"이다.

그런데, 위 스크린샷을 보면 알겠지만 그냥 넘어가지 않고, error가 발생을 한다!

우리에게 모든 것을 알려주시는 친절한 git 선생님의 말씀을 잘 읽어보면,
권한(permission)이 충분하지 않다고 나온다.
그렇다! 바로 권한!!!



4. permission


서버 즉, Remote repository 의 권한을 한 번 살펴보자.

위 스크린샷을 보면 user와 group에게는 모두 권한을 주고 있지만,
다른 사용자들에게는 읽기 권한만 주고 있는 것을 확인할 수 있다.

그렇다!
이전에 계속 말한바와 같이 git은 어디까지나 기본적인 파일 권한을 기반으로 사용한다.

그러면, 여러 계정이 이 repository를 사용하게 하려면 어떻게 해야할까?



5. group


$ sudo groupadd barerepo
$ sudo usermod -G bigbang,barerepo bigbang

해당 repository를 사용하는 사용자들을 묶을 그룹을 하나 만들어보자.
   - sudo groupadd barerepo

사용자 'bigbang'을 barerepo 그룹에도 포함을 시키자.
   - sudo usermod -G bigbang.barerepo bigbang


일반적으로 'usermod'는 익숙하지 않을 것 같은데...
사용자의 정보를 변경하는 명령어이다. 그 중 '-G' 옵션은 그룹에 대한 정보를 변경한다는 의미이다.
여러 그룹에 속할 경우 ','로 나열을 하면 되고, 변경하고자 하는 계정은 제일 뒤에 적어주면 된다.

즉, 위 스크린샷에서는
" 'bigbang'이라는 계정은 'bigbang'이라는 그룹과 'barerepo'라는 그룹, 두 곳에 속한다! "
라는 의미이다.



6. chown


$ sudo chown -R chani.barerepo ./BareRepo.git 

위 스크린샷을 차례대로 살펴보길 바란다.

   - 'BareRepo.git' 은 chani 계정이 생성하였다. (주인은 chani)
   - 'chown'을 통해서 소유 group을 'barerepo'로 변경하였다.


'chown' 이라는 명령어에 대해서 조금 더 설명을 하자면,
당연하게도 소유자를 변경(chage owner)하기 위해서 사용을 하는 것이고,
하위 디렉토리 및 파일들도 일괄적으로 변경하기 위해서는 '-R' 옵션을 사용하면 된다.
user와 group은 '.'으로 연결하면 된다.


이제, 'BareRepo.git' repository는 barerepo 그룹 사용자들에게도 쓰기 권한이 있다!!!



7. push


$ git push 

이 부분을 테스트하면서 조금 의아심이 들었지만...
일단, 위에서 따라온 것처럼 권한 부분을 맞춰주면 스크린샷과 같이 정상적으로 push가 된다.

Remote repository로 변경 내역을 전달한 것이다!!!


여기서 의아하다는 점은,
분명 에러가 발생을 해야하는데 그냥 push가 되어버렸다는 점이다!!!


$ git config push.default tracking

본래는 push 를 어떻게 할 것인지 명시하지 않았기 때문에 error가 발생을 해야한다.
그런데, 왜 위 스크린샷에서 보는 것처럼 그냥 넘어갔는지는 의문이다.

만약, 여러분의 경우에 push할 때에 에러가 발생한다면,
혹 발생하지 않았더라도 위와 같이 tracking을 설정해놓으시길...



8. 한글파일명


한글 파일을 추가할 때 뭔가 이상하게 숫자들의 집합으로 등록이 된 것을 앞에서 확인했을 것이다.

 bigbang@chani-Ubuntu:~/workspace/BareRepo$ git commit -m 'push + 한글파일명 검증'
[master 5705788] push + 한글파일명 검증
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 "\355\225\234\352\270\200\355\214\214\354\235\274\353\252\205.txt"

잘못 등록된 것이 아니라 Unicode로 변경되어 전달된 것이다.
위 스크린샷을 보면 알겠지만, clone 을 하여도 제대로 파일명이 되어있는 것을 알 수 있을 것이다.

하지만, 위와 같이 등록이 될 경우에 일부 문제가 있을 수도 있다.
예를 들어서 Redmine의 저장소로 사용될 경우
파일의 이름이 한글이 아니라 저 숫자로 된 코드가 그대로 파일명으로 나오기도 한다.


$ sudo git config --system core.quotepath false

사용자 계정이 아니라 root 계정을 통해 system의 설정을 변경해야 한다.
이렇게 할 경우 다른 side effect가 있는지는 아직 모르겠다.


commit 부분을 살펴보면, 앞에서와 달리 한글이 그대로 반영되는 것을 볼 수 있을 것이다.


일단은 그냥 기본 값으로 사용하는 것을 추천하고,
Redmine의 경우와 같이 사용에 문제가 있을 경우 위와 같이 설정 변경을 통해 해결하는 것을 제안한다.

이로 인한 side effect에 대해서는 계속 확인을 해보겠다.



간만에 길게 쓴 포스팅인데, 춥고 졸리다! ㅠㅠ

반응형

'SCM > Git-GitHub' 카테고리의 다른 글

업데이트 - git pull, 중간 정리  (0) 2012.03.17
Remote Repository - git push  (2) 2012.03.04
Git Server - Remote Connect  (0) 2012.02.25
Git Server - SSH  (2) 2012.02.23
Git Server - Local  (0) 2012.02.22

+ Recent posts