Ubuntu 24.04 에서 MinIO (Object storage service) 설치 및 설정

리눅스/OS 일반|2024. 7. 1. 14:58
반응형

오브젝트 스토리지는 전통적인 파일 시스템처럼 마운트하여 사용하는 개념이 아니고, API 또는 시스템 명령어를 통해 파일 (객체) 을 송수신하는 개념입니다.

 

오브젝트 스토리지의 주요 특징과 사용 방법은 다음과 같습니다.

- 데이터 구조 : 오브젝트 스토리지는 데이터를 객체(object) 단위로 저장하며, 각 객체는 고유의 ID와 메타데이터를 가집니다.

- 확장성 : 수평적 확장이 용이하여 대규모 데이터를 효율적으로 관리할 수 있습니다.

- API 기반 접근 : HTTP 기반의 RESTful API를 통해 데이터를 송수신합니다.

- 메타데이터 : 각 객체에 대한 상세한 메타데이터를 저장하여 데이터 관리를 용이하게 합니다.

 

일반적으로 Object storage 서비스를 제공하기 위해 사용하는 OpenStack Swift 대신 더 간단하게 Object Storage 서비스를 제공할 수 있는 패키지로 MinIO 를 고려해 볼 수 있습니다. MinIO 는 설치와 설정이 매우 간단하고, S3 호환 API 를 제공하는 고성능 객체 스토리지 서버입니다. 우분투에서 MinIO 를 설치하고 설정하는 방법은 다음과 같습니다.

 

 

1. 설치

 

# apt -y update

# apt -y upgrade

# wget https://dl.min.io/server/minio/release/linux-amd64/minio

# chmod +x minio

# mv minio /usr/local/bin/

 

MinIO 를 실행하려면 데이터를 저장할 디렉토리를 지정해야 합니다. 예를 들어 /data 디렉토리에 데이터를 저장하도록 설정할 수 있습니다.

# mkdir /data

# minio server /data

이 명령을 실행하면 MinIO 서버가 시작되고, 웹 브라우저에서 http://<서버 IP>:9000 으로 접속할 수 있습니다.

기본적으로 MinIO 는 웹 UI 를 통해 관리할 수 있는데, 로그인 계정은 다음과 같습니다.

- RootUser: minioadmin 
- RootPass: minioadmin

 

 

2. 계정 패스워드 변경

 

데몬 실행 전에 패스워드를 미리 지정하고 실행하면 됩니다.

# export MINIO_ROOT_USER=sysdocu

# export MINIO_ROOT_PASSWORD=sysdocu1234

# minio server /data

 

 

3. 사용 도구

 

1) MinIO 웹 인터페이스 사용

웹 브라우저에서 http://<서버 IP>:9000 에 접속하여 MinIO 웹 인터페이스에 로그인하면 전반적인 관리가 가능합니다.

 

2) 클라이언트 도구 설치

MinIO 클라이언트 (mc) 는 MinIO 서버를 관리하고 파일을 업로드/다운로드하는 데 사용됩니다.

# wget https://dl.min.io/client/mc/release/linux-amd64/mc

# chmod +x mc

# mv mc /usr/local/bin/

 

 

4. Client 에서 테스트

 

1) MinIO 클라이언트 설정

MinIO 클라이언트에서 MinIO 서버를 설정합니다.

# mc alias set sysdocu http://<서버 IP>:9000 sysdocu sysdocu1234
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `sysdocu` successfully.

 

2) 버킷 생성

파일을 업로드할 버킷을 생성합니다.

여기서 mybucket 은 새로 생성할 버킷의 이름입니다.

# mc mb sysdocu/mybucket

 

3) 파일 업로드

로컬 파일을 MinIO 서버에 업로드합니다.

# mc cp test.txt sysdocu/mybucket

 

aaa 디렉토리를 통째로 업로드 할때는 --recursive 옵션을 사용합니다.

# mc cp --recursive aaa sysdocu/mybucket/

 

4) 파일 다운로드

# mc cp sysdocu/mybucket/test.txt .

 

5) 파일 목록 확인

버킷에 있는 파일 목록을 확인합니다.

# mc ls sysdocu/mybucket

 

 

5. 공유 설정

 

위와 같이 업로드한 test.html 파일은 접근을 해보면 AccessDenied 메세지가 출력되는 것을 알 수 있습니다.

http://<서버 IP>:9000/mybucket/test.txt

이는 기본값이 private 으로 되어 있기 때문인데, bucket 에 해당되는 모든 파일을 public 처리하거나 특정 파일 하나에 대해서만 public 처리할 수 있습니다.

 

1) bucket 전체 public / private 처리

버킷 전체 공개

# mc anonymous set public sysdocu/mybucket

버킷 전체 비공개

# mc anonymous set private sysdocu/mybucket

 

2) 단일 파일 public / private 처리

하나의 파일 공개

# mc anonymous set public sysdocu/mybucket/test.txt

하나의 파일 비공개

# mc anonymous set private sysdocu/mybucket/test.txt

 

3) 특정 디렉토리 (aaa) 내 파일들 public / private 처리

for file in $(mc ls --recursive sysdocu/mybucket/aaa/ | awk '{print $5}'); do
  mc anonymous set public sysdocu/mybucket/aaa/$file
done

 

private 처리할 경우 public 위치에 private 문자로 치환하여 사용하면 됩니다.

브라우저에서 접근하여 확인하고자 할 경우 MinIO 서버이름 (sysdocu) 은 제외하고 아래와 같이 접근하면 됩니다.

http://<서버 IP>:9000/mybucket/aaa/test.txt

 

반응형

댓글()

Proxmox NFS 공유 스토리지 추가하기

리눅스/OS 일반|2024. 6. 28. 16:01
반응형

VM 을 공유 스토리지에 저장하게 되면 좋은 장점 중 하나는 클러스터의 모든 노드가 VM 디스크 이미지에 직접 액세스할 수 있으므로 가동 중지 시간 없이 실행 중인 시스템을 실시간 마이그레이션할 수 있다는 것입니다. VM 이미지 데이터를 복사할 필요가 없으므로 이 경우 라이브 마이그레이션이 매우 빠릅니다.

여기에서는 NFS 스토리지를 PVE 에 추가하는 방법을 설명드립니다.

 

* Proxmox NFS 에서 지원하는 스토리지 종류

(출처 : https://www.098.co.kr/proxmox-%EB%A7%A4%EB%89%B4%EC%96%BC-07-proxmox-ve-storage/)

* 표에는 없지만 Object Storage 도 사용이 가능합니다.

 

 

1. 스토리지 추가

 

1) 웹 UI 에서 추가

 

- 데이터센터 > 스토리지 > '추가' 선택

ID : mynfs

서버 : 115.68.248.179

Export : /data (NFS 서버에서 공유된 디렉터리의 경로)

내용 : 모든 항목 선택

나머지는 기본으로 두고 '추가' 버튼을 눌러 완료합니다.

 

2) CLI 명령으로 추가

 

마운트 디렉토리는 미리 만들어놓지 않아도 스토리지 연결시 자동으로 생성, 마운트 됩니다.

# pvesm add nfs mynfs --path /data --server 115.68.248.179 --export /data --content images,rootdir,vztmpl,iso,backup,snippets --options vers=4

 

옵션 설명

mynfs : NFS 스토리지의 ID 입니다.(영문으로 시작해야 합니다)
--path : Proxmox VE 에서 이 NFS 스토리지를 마운트할 경로
--server : NFS 서버의 IP 주소
--export : NFS 서버에서 내보낸 (공유된) 디렉토리 경로
--content : 마운트하려는 NFS 스토리지에 저장할 수 있는 콘텐츠 유형을 지정. 각 항목은 쉼표로 구분되며, 가능한 값은 다음과 같습니다.
images : 디스크 이미지 파일
rootdir : 컨테이너의 루트 파일 시스템 (컨테이너 데이터 저장을 허용)
vztmpl: 컨테이너 템플릿
iso : ISO 이미지 파일
backup : 백업 파일 (vzdump)
snippets : 스니펫 파일 (예: 게스트 후크 스크립트)
--options vers=4: NFS 마운트 옵션을 지정합니다. 이 예시에서는 NFS 버전 4를 사용하도록 설정합니다.

 

추가가 잘 되었는지 전체 스토리지 목록을 확인합니다.

# cat /etc/pve/storage.cfg

 

 

2. 스토리지 제거

 

1) 웹 UI 에서 제거

 

- 데이터센터 > 스토리지 > 리스트에서 삭제하고자 하는 스토리지 선택 > 상단 '제거' 버튼 선택

 

2) CLI 명령으로 제거

 

# pvesm remove mynfs    // 스토리지 목록에서 삭제

# umount /data                 // 시스템에서 마운트 해제

 

반응형

댓글()

Proxmox VE 에서 VM 고가용성 (HA) 설정하기

리눅스/OS 일반|2024. 6. 28. 15:59
반응형

사전 준비가 필요합니다.

- PVE 3대 : 최소 세 대 이상의 노드로 구성된 클러스터가 필요

- 공유 스토리지 설정 : VM 의 디스크가 공유 스토리지에 있어야 합니다. 이 스토리지는 클러스터 내의 모든 노드에서 접근 가능해야 합니다.

- NFS 공유 스토리지 추가하기 : https://sysdocu.tistory.com/1941

 

 

1. 고가용성 그룹 구성

 

HA 그룹을 구성하면 특정 노드 그룹에 리소스를 할당할 수 있습니다.

- 데이터센터 > HA > '추가' 버튼 > HA > '그룹' 에서 '생성' 버튼을 누릅니다.

 

새로운 ID 값 (ha-test / 영문으로 시작해야 함) 과 각 노드 앞에 체크박스를 체크하고 (테스트 노드가 3개 이므로 모두 체크), 우선순위를 설정 (순서대로 1, 2, 3) 합니다.

옵션은 nofailback 만 체크합니다.

- restricted 옵션 : HA 리소스가 특정 노드에서만 실행되도록 제한하는 설정입니다.

- nofailback 옵션 : HA 클러스터에서 장애가 발생한 후, 장애가 복구되었을 때 리소스가 원래 노드로 자동으로 이동하지 않도록 합니다.

 

* 주의 : 운용 중인 VM 에 HA 그룹을 설정하면 장애가 없어도 우선순위에 따라 VM 이 자동으로 마이그레이션 될 수 있습니다.

 

 

2. 공유 스토리지를 기반으로 한 VM 생성

 

디스크가 노드에 존재하면 해당 노드 다운시 데이터를 옮기지 못합니다.

그러므로 공유 스토리지에 디스크를 생성해야하는데, 방법은 간단하므로 여기에서는 생략하고 넘어가겠습니다.

 

 

3. 고가용성 대상 선택

 

아래 메뉴에서 고가용성 구성을 원하는 대상을 선택합니다.

- 데이터센터 > HA > '추가' 버튼 > HA 구성을 원하는 VM (124 / test-private-124 / 192.168.142.124) 을 선택, 그룹은 먼저 생성한 것 (ha-test) 을 선택합니다.

 

* 옵션 설명
최대 재시작 (Max Restart) : 동일한 노드에서 VM 이나 컨테이너를 다시 시작할 최대 횟수. 오류에 의한 중단일 수 있으므로 같은 노드에서 부팅 시도를 해봅니다.
최대 재배치 (Max Relocate) : 다른 노드로 이동하여 VM 이나 컨테이너를 다시 시작할 최대 횟수. 
- 일반적인 업무 : Max Restart = 3, Max Relocate = 1
- 중요한 업무 : Max Restart = 5, Max Relocate = 2
- 고가용성이 필요한 업무 : Max Restart = 3, Max Relocate = 2

Max Restart 회수가 다 소진되면 마이그레이션을 시도 (Relocate) 하게 됩니다.

 

CLI 에서 동일하게 옵션을 설정하는 방법입니다.

# ha-manager set vm:124 --max_restart 3 --max_relocate 2

 

상단 상태 창에서 출력되는 내용이 CLI 에서도 확인 가능합니다.

# ha-manager status
quorum OK
master pve3 (active, Mon Jul  1 13:42:47 2024)
lrm pve1 (active, Mon Jul  1 13:42:50 2024)
lrm pve2 (idle, Mon Jul  1 13:42:47 2024)
lrm pve3 (idle, Mon Jul  1 13:42:47 2024)
service vm:124 (pve1, started)

 

현재 pve1 에서 Active 상태인 것을 확인할 수 있습니다.

 

VM의 HA 상태를 enabled 로 변경하여 자동 재시작 및 이동이 가능하도록 설정합니다.

이 부분은 원래 웹 UI 에서 HA 리소스 선택할때 '상태 요청' 옵션에서 선택할 수 있어야 하는데, Started, Stoped 등은 있지만 이상하게 Enabled 는 표시되지 않습니다. 그래서 CLI 에서 적용해 줍니다.

# ha-manager set vm:124 --state enabled

 

설정을 확인합니다.

참고로, max_relocate 와 max_restart 는 기본값 (1) 을 사용할 경우 출력되지 않습니다.

# ha-manager config
vm:124
group HA888
max_relocate 3
max_restart 3
state enabled

 

 

3. 테스트

 

1) VM 정지

pve1 에서 실행중인 VM (ID: 124) 을 정지 시킵니다.

Proxmox HA 는 VM 이 정지되었음을 감지하고, 설정된 최대 재시작 (Max Restart) 회수만큼 동일한 노드에서 재시작을 시도합니다.

 

2) 노드 정지

VM 이 가동되는 노드 (pve1) 를 셧다운 합니다.

Proxmox HA 는 노드의 장애를 감지하고, 해당 노드에서 실행 중이던 VM 들을 다른 노드로 자동으로 이동하여 재시작합니다.

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글()

pm2 포트 모니터링

리눅스/OS 일반|2024. 6. 27. 08:51
반응형

PM2 는 Node.js 애플리케이션의 프로세스를 관리하는 도구로, 애플리케이션의 성능과 상태를 모니터링할 수 있는 기능을 제공합니다. 특히 PM2 의 포트 모니터링 기능은 애플리케이션이 특정 포트에서 잘 동작하고 있는지 확인하는 데 유용합니다.

PM2 를 사용하면 다음과 같은 모니터링 기능을 활용할 수 있습니다.
1. 실시간 모니터링 : 애플리케이션의 CPU 및 메모리 사용량을 실시간으로 확인할 수 있습니다.
2. 다중 프로세스 관리 : 여러 개의 Node.js 애플리케이션을 동시에 관리하고, 각 애플리케이션의 상태를 모니터링합니다.
3. 포트 상태 확인 : 특정 포트에서 실행 중인 애플리케이션이 정상적으로 작동 중인지 확인하고, 필요시 프로세스를 재시작할 수 있습니다.
4. 웹 인터페이스(PM2 Plus) : PM2 Plus와 같은 웹 기반 대시보드를 사용하면 애플리케이션의 상태를 시각적으로 모니터링할 수 있습니다.

 

이러한 기능을 통해 PM2는 서버에서 Node.js 애플리케이션을 안정적으로 운영하고 모니터링하는 데 매우 유용한 도구입니다.
또한, 프로그래밍을 어떻게 하느냐에 따라 내용을 예쁘게 출력 시킬수 있습니다.

저는 로컬의 80, 443 포트가 정상 동작하는지 5초마다 체크하는 내용을 작성하였습니다.

 

1. 설치

모니터링을 하기 위한 패키지 pm2 를 설치합니다.

# apt -y install nodejs npm

 

npm 을 이용해 모니터링 도구 pm2 를 전역으로 설치합니다.

# npm install -g pm2

 

2. 파일 생성

# vi monitor.js

const http = require('http');
const pm2 = require('pm2');

const ports = [80, 443];
const interval = 5000; // 5 seconds

function checkPort(port) {
    return new Promise((resolve, reject) => {
        const options = {
            method: 'HEAD',
            host: 'localhost',
            port: port,
            path: '/',
        };

        const req = http.request(options, (res) => {
            resolve(res.statusCode);
        });

        req.on('error', (err) => {
            reject(err);
        });

        req.end();
    });
}

function startMonitoring() {
    pm2.connect((err) => {
        if (err) {
            console.error('PM2 connect error:', err);
            process.exit(2);
        }

        pm2.list((err, list) => {
            if (err) {
                console.error('PM2 list error:', err);
                process.exit(2);
            }

            const pm_id = list.find(proc => proc.name === 'port-monitor').pm_id;

            setInterval(() => {
                ports.forEach((port) => {
                    checkPort(port)
                        .then((status) => {
                            console.log(`Port ${port} is up. Status code: ${status}`);
                            pm2.sendDataToProcessId({
                                id: pm_id,
                                type: 'process:msg',
                                data: {
                                    port: port,
                                    status: 'up',
                                    statusCode: status
                                },
                                topic: 'status'
                            }, (err, res) => {
                                if (err) console.error(err);
                            });
                        })
                        .catch((err) => {
                            console.error(`Port ${port} is down. Error:`, err);
                            pm2.sendDataToProcessId({
                                id: pm_id,
                                type: 'process:msg',
                                data: {
                                    port: port,
                                    status: 'down',
                                    error: err.message
                                },
                                topic: 'status'
                            }, (err, res) => {
                                if (err) console.error(err);
                            });
                        });
                });
            }, interval);
        });
    });
}

startMonitoring();

 

# vi ecosystem.config.js

module.exports = {
  apps: [
    {
      name: 'port-monitor',
      script: './monitor.js',
      watch: true,
      env: {
        NODE_ENV: 'production'
      }
    }
  ]
};

 

# 모니터링을 시작하고 로그를 확인합니다.

# pm2 start ecosystem.config.js

# pm2 monit

 

프로세스 리스트를 보고, 중지하거나 삭제하는 명령입니다.

# pm2 list

# pm2 stop ecosystem.config.js

# pm2 monitor

 

반응형

댓글()

Proxmox VE 에서 LXC (LinuX Containers) 사용하기

리눅스/OS 일반|2024. 6. 25. 09:59
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

리눅스 시스템에서 shred 명령으로 파일 완전히 삭제하기 (복구 불가능하게 하기)

리눅스/OS 일반|2024. 6. 24. 10:11
반응형

shred 명령은 Unix 또는 Linux 계열 운영 체제에서 파일이나 디스크의 데이터를 영구적으로 삭제하는 데 사용되는 명령입니다.

shred 는 파일의 데이터를 여러 번 덮어써서 원래 데이터를 복구할 수 없도록 만듭니다. 이는 보안상 중요한 데이터를 안전하게 삭제할 때 유용합니다.

 

 

1. shred 명령 사용법

 

기본적인 shred 명령 사용법은 다음과 같습니다:

# shred [옵션] 파일명

 

주요 옵션
-n, --iterations=N: 파일을 덮어쓰는 횟수를 지정합니다. 기본값은 3입니다.
-z, --zero: 마지막 덮어쓰기 시 모든 비트를 0으로 설정합니다. 이는 덮어쓰기가 감지되지 않도록 합니다.
-u, --remove: 파일을 덮어쓴 후 삭제합니다.
-v, --verbose: 진행 상황을 자세히 출력합니다.
-f, --force: 읽기 전용 파일의 쓰기 권한을 변경하여 덮어씁니다.
-s, --size=N: 덮어쓰는 크기를 지정합니다.

 

 

2. 예제

 

파일을 3번 덮어쓰고 삭제
# shred -u 파일명

 

파일을 5번 덮어쓰고 마지막에 0으로 덮어쓰기
# shred -n 5 -z 파일명

 

진행 상황을 출력하면서 파일을 덮어쓰고 삭제

# shred -v -u 파일명

 

 

3. 주의 사항

 

- 저널링 파일 시스템 : shred 는 파일 시스템이 저널링을 사용하는 경우 (예: ext3, ext4, XFS 등) 덮어쓰기 효과가 제한될 수 있습니다. 저널링 파일 시스템에서는 파일의 메타데이터를 기록하므로 파일이 완전히 덮어쓰여지지 않을 수 있습니다.
- SSD 와 플래시 메모리 : SSD 와 플래시 메모리 장치는 내부적으로 쓰기 동작을 최적화하므로, shred 명령이 모든 데이터를 덮어쓰지 않을 수 있습니다. 이러한 장치에서는 장치 자체의 보안 삭제 기능을 사용하는 것이 좋습니다.
- 디렉터리 : shred 명령은 디렉터리 자체를 삭제할 수 없습니다. 디렉터리 내의 파일을 개별적으로 삭제해야 합니다.

 

 

4. 예제 시나리오


1) 중요한 텍스트 파일 삭제
중요한 텍스트 파일 sensitive_data.txt 를 안전하게 삭제하고 싶다면 다음과 같이 할 수 있습니다:
# shred -u -v sensitive_data.txt

 

이 명령은 sensitive_data.txt 파일을 덮어쓰고, 마지막에 삭제하며, 진행 상황을 출력합니다.

2) 특정 파일을 여러 번 덮어쓰기
파일 data.bin을 7번 덮어쓰고 마지막에 0으로 덮어쓰기:
# shred -n 7 -z -v data.bin

 

이 명령은 data.bin 파일을 7번 덮어쓰고, 마지막에 0으로 덮어쓰며, 진행 상황을 출력합니다.

shred 명령은 파일을 영구적으로 삭제하여 데이터 복구를 어렵게 만들 때 유용하지만, 사용 환경에 따라 제한이 있을 수 있으므로 주의해서 사용해야 합니다.

 

반응형

댓글()

Proxmox 용 Ubuntu 24.04 클라우드 이미지 및 템플릿 준비, VM 생성 및 볼륨 추가

리눅스/OS 일반|2024. 6. 21. 16:04
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

Ubuntu 24.04 설치 후 한글 (fcitx) 사용하기

리눅스/OS 일반|2024. 6. 21. 10:27
반응형

최종 목적은 한영키를 눌러 한글과 영어가 자연스럽게 입력 전환 될 수 있도록 하는 것입니다.

기본적으로 ibus 가 설치되어 있어, 그냥 fcitx 를 설치하면 충돌로 인해 한영 전환이 'Shift + Spacebar' 밖에 되지 않습니다.

그래서 아래와 같은 절차로 전환해야 합니다.

 

1. 운영체제 한글화

 

지금은 화면의 모든 메뉴가 영문으로만 되어 있으므로 한글로 표시되도록 변경합니다.

터미널 창을 열고 한글 폰트를 설치합니다.

$ sudo apt -y install fonts-nanum

 

그다음 언어 설정 명령을 내리면 변경 가능한 언어 리스트가 출력되는데, 그 중에서 한글 (ko_KR.UTF-8. UTF-8) 을 찾아 번호를 입력하고, 시스템 기본 언어의 번호를 선택하면 됩니다.

$ sudo dpkg-reconfigure locales

...(생략)...

Locales to be generated: 300

...(생략)...

  1. None  2. C.UTF-8  3. ko_KR.UTF-8

Default locale for the system environment: 3

 

한글 환경을 사용하려면 로그아웃 후 다시 로그인 해야 합니다.

- 메뉴 : 시작 > Logout

 

이제 메뉴 버튼이 한글화가 되었습니다.

 

 

2. 한글 자판 설정

 

한글 환경이라고 하더라도 한글 자판이 없으면 한글을 입력 할 수 없습니다.

터미널을 열고 ibus 를 먼저 지운다음, fcitx 한글 입력기를 설치합니다.

$ sudo apt -y remove ibus* ibus-*

$ sudo apt -y install fcitx fcitx-hangul

 

삭제 후 로그아웃, 로그인을 하여 fcitx 만 있는 환경으로 적용해 줍니다.

그리고 아래 메뉴를 따라 선택합니다.

- 메뉴 : 시작 > 모든 애플리케이션 > Fcitx 를 먼저 실행해 줍니다. (화면에서는 변화 없음)

- 메뉴 : 시작 > 모든 애플리케이션 > Fcitx 환경 설정을 실행합니다.

- [Input Method] 탭에서 +, - 버튼을 이용하여 아래와 같이 설정을 맞춰줍니다.

  남게 되는 키보드 종류와 순서는 아래와 같습니다.

  Keyboard - Korean - Korean (101/104-key compatible)

  Hangul

- 저장 버튼이 없으므로 설정값 그대로 창을 닫습니다.

 

다시 로그아웃, 로그인을 반복하면 우측 'Alt' 버튼 (또는 Ctrl + Space) 으로 한/영 전환이 가능해 집니다.

혹시, 안되었다면 fcitx-configtool 명령 후 전역설정에서 단축키 > 트리거 입력기에 한개를 누르고 '한영키' 로 변경해주면 됩니다.

 

 

3. 한글 자판 설정 (추가)

 

위와 같이 해도 안될 경우 fcitx5 를 설치해주면 됩니다.

기존 패키지는 그대로 두어도 자동 업데이트 됩니다.

# apt -y install fcitx5 fcitx5-hangul

 

그리고 아래 메뉴를 따라 선택합니다.

- 메뉴 : 시작 > 모든 애플리케이션 > Fcitx5 를 먼저 실행해 줍니다. (화면에서는 변화 없음)

- 메뉴 : 시작 > 모든 애플리케이션 > Fcitx5 환경 설정을 실행합니다.

- [Input Method] 탭에서 +, - 버튼을 이용하여 아래와 같이 설정을 맞춰줍니다.

  남게 되는 키보드 종류와 순서는 아래와 같습니다. (간혹 한글로 표기)

  Keyboard - Korean - Korean (101/104-key compatible)

  Hangul

- 저장 버튼이 없으므로 설정값 그대로 창을 닫습니다.

 

다시 로그아웃, 로그인을 반복하면 Fcitx5 실행 후에 '한/영 전환' 이 가능하므로, 로그인시 자동 실행되도록 합니다.

- 메뉴 : 시작 > 기본 설정 > 시작 프로그램 > [추가] 클릭

- 이름 : fcitx5 자동 실행 / 명령 : fcitx5 > [추가] 클릭 > [닫기] 클릭

또다시 로그아웃, 로그인 후 테스트를 진행합니다.

 

반응형

댓글()

Debian 12.5 설치 후 기본 설정

리눅스/OS 일반|2024. 6. 21. 09:52
반응형

사용자 마다 설치방법이 조금 달라 아래 내용이 해당사항 없을지 모르겠지만, 개인적으로 Debian 12.5 를 TEXT 모드로 설치하고 나서의 설정 방법입니다.

 

 

1. 네트워크 설정

 

# vi /etc/network/interfaces

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet static
address 192.168.10.2
netmask 255.255.255.0
gateway 192.168.10.1
dns-nameservers 8.8.8.8

 

# vi /etc/resolv.conf

nameserver 8.8.8.8

 

# systemctl restart networking

 

 

2. APT 설정 및 기본 패키지 추가

 

기존에 CD롬을 참고하던 설정은 주석처리 하거나 삭제하고 아래 내용으로 작성합니다.

# vi /etc/network/interfaces

# Debian 기본 저장소
deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free

# 보안 업데이트 저장소
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free

# 업데이트 저장소 (업데이트 및 백포트된 패키지)
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free

# 백포트 저장소 (stable 릴리스에 사용할 수 있는 패키지)
deb http://deb.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-backports main contrib non-free

 

# apt -y update

# apt -y install net-tools openssh-server vim curl

 

반응형

댓글()

Proxmox VE 8.2.4 설치 후, 기본 사용 방법

리눅스/OS 일반|2024. 6. 21. 07:28
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

Ubuntu 22.04 에서 Tomcat 9 설치 및 SSL 설정

리눅스/APACHE|2024. 6. 18. 08:05
반응형

Ubuntu 22.04 환경에서 테스트 후 작성되었습니다.

- 참고 : https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html

 

 

1. Tomcat 설치

 

관련 패키지를 설치하고 실행합니다.

# apt -y install default-jdk tomcat9 tomcat9-admin tomcat9-user

# systemctl enable --now tomcat9

 

 

2. SSL 설정

 

1) 인증서 형식으로 변환

(SSL 인증서 디렉토리로 이동 후)

# openssl pkcs12 -export -in www_sysdocu_kr.crt -inkey www_sysdocu_kr.key -out keystore.p12 -name sysdocu

입력한 순서대로 인증서파일, 키파일, 생성할 키파일 이름, 키이름 입니다.

(-CAfile chain.pem -caname root 와 같은 옵션도 추가 가능)

실행하면 암호를 입력하라고 나오는데, 이는 톰캣 설정파일에 쓰이는 암호로 인증서 패스워드와 동일하지 않아도 됩니다.

여기에서는 예시로 비밀번호를 12345678 로 입력하였습니다.

 

아래와 같이 파일이 생성되었습니다.

# ls -al keystore.p12 
-rw------- 1 root root 3392 Jun 18 07:35 keystore.p12 

 

Tomcat 데몬이 읽을 수 있도록 소유자와 퍼미션을 변경하고 톰캣 설정 디렉토리로 이동해 줍니다.

(이 부분은 적당히 조정 가능)

# chown root.tomcat keystore.p12

# chmod 640 keystore.p12

# mv keystore.p12 /var/lib/tomcat9/conf/

 

 

2) 설정

# vi /var/lib/tomcat9/conf/server.xml

...

    <Connector port="80" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="443" />

    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="150"
            SSLEnabled="true">
            <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
            <SSLHostConfig>
                <Certificate certificateKeystoreFile="/var/lib/tomcat9/conf/keystore.p12"
                    certificateKeystorePassword="12345678" type="RSA" />
            </SSLHostConfig>
    </Connector>

...

 

설정 저장 후 데몬을 재시작 합니다.

# systemctl restart tomcat9

 

 

반응형

댓글()