일단 가시성을 위해 clear 명령어로 cmd 창을 전부 지워주고 시작한다.
*clear : 윈도우의 cls
1. VIM 설치
VIM이란 리눅스의 터미널 환경에서 사용할 수 있는 텍스트 편집기이다. IDE를 사용할 때를 제외하고 코딩은 물론, 환경파일을 수정할 때는 이걸 활용할 예정이라 설치해주었다.
# apt-get install vim
2. JDK 설치 및 환경변수 설정
당연한 말이지만, Spring은 자바 기반이기에 JDK를 설치해야만 한다.
당장은 리눅스에서 데이터베이스 정도만 구축할 생각이나, 언젠가 리눅스 서버에 직접 jar 파일을 올려 구동을 시키는 연습도 할 예정이라 설치해주자.
# apt-get install openjdk-11-jdk
java -version의 결과 잘 설치 되었음을 확인했다.
*만약 지우고 싶으면 sudo apt_get remove openjdk*
그리고 JAVA_HOME 환경변수를 설정해준다.
먼저 명령어의 위치를 보여주는 which 명령어를 활용해 java가 설치된 위치를 확인 후 readlink -f 를 활용해 상세한 위치를 확인한다.
물론 이렇게까지 번거롭게 할 것 없이 find -name 을 사용한 확인도 가능하다.
그리고 openjdk의 위치를 기억해놓거나 복사해놓고, /etc/profile를 수정한다.
이렇게 설정을 해놓았으면 앞으로는 로그인 시마다 자동으로 설정이 되지만,
지금은 굳이 리부팅하기는 귀찮으니 수동으로 적용해주자.
명령어는 source /etc/profile 이다.
그 후에 잘 설정되었는지 확인.
기본설정은 여기까지로 하고, 이제 개발에 필요한 DB와 몇 가지 오픈소스 프로그램들을 설치하겠다.
일단 연습에 사용할 DB는 MariaDB, MongoDB, Redis이다.
또한 메시지 송수신을 연습하기 위해 RabbitMQ와 Kafka를 메시지 큐로 사용할 것이다.
그러면 필요한 DB와 메시지 큐를 설치해놓자.
1. MariaDB 설치
DB는 사실 도커로 설치하는 게 제일 쉽지만, 일단은 연습을 위해서이니 직접 설치하자.
# apt-get install mariadb-server
설치가 끝났으면 mysql -u root -p 명령어를 활용해 진입을 해봄으로써 잘 설치되었는지 확인하자.
당연하지만 설치 과정에서 password를 설정하는 작업은 없었으므로 password 입력칸에서는 그냥 엔터를 치자.
가장 먼저 해야할 작업은 password를 설정하는 작업이다.
아래의 명령어를 순서대로 입력하면 root의 password가 0000으로 변경된다.
그리고 설정한 root가 0000 패스워드를 사용하여 어느 ip에서든 접속이 가능하도록 설정을 추가한다.
*혹은 만약 도커 기반으로 설치를 하고 싶다면 다음 명령어를 순서대로 입력하면 된다.
# docker pull mariadb
# docker run \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_ROOT_HOST='%' \
--restart=always \
--name=mariadb \
-d \
mariadb \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
2. MongoDB 설치
MongoDB의 설치는 다음 명령어들을 연이어 넣어주면 된다.
sudo wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
모든 명령어를 입력했으면 이제 실행을 시켜봄으로써 잘 설치되었는지 확인.
몽고디비 실행 명령어는 mongod이다.
그런데 실행이 되지 않는데, 이유는 mongod 실행 시 나오는 로그에 기재되어있다.
참고로 윈도우에서 설치할 때도 마찬가지의 에러가 발생하는데, 그냥 디렉터리를 수동으로 만들어주니 해결되었었다.
리눅스에서도 같은 방법을 사용해보았고, 마찬가지로 잘 되는 것을 확인했다.
# mkdir /data
# mkdir /data/db
디렉터리를 만들고 다시 명령어를 실행하면 이번에는 잘 돌아감을 알 수 있다.
그런데 그냥 실행시키면 포어그라운드에서 작동하니,
systemctl start mongod 명령어를 통해 백그라운드에서 서버를 돌려주자.
마지막으로 어드민 계정 생성하고 설치 및 설정을 마친다..
# mongo
# use admin;
# db.createUser({user:"root", pwd:"0000", roles:["root"]});
# exit;
만약 도커 기반 설치를 하고 싶다면 다음 명령어를 순서대로 입력하면 된다.
# docker pull mongo
# docker run \
--name=mongo \
-p 27017:27017 \
--restart=always \
-e TZ=Asia/Seoul \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=password \
-d \
mongo
3. Redis 설치
# apt-get install redis-server
Redis는 크게 설정할 것이 없어 위의 명령어로 설치만 해준다.
만약 도커 기반 설치를 원한다면 다음 명령어를 순서대로 입력한다.
# docker pull redis
# docker run --name redis -p 6379:6379 -d redis
4. RabbitMQ 설치
# apt-get install rabbitmq-server
위의 명령어로 rabbitmq를 설치해준다.
그런데 rabbitmq는 사용을 위해 계정 생성 및 관리자 권한을 부여해주어야 한다.
Management를 사용하여 이 과정을 수행하기 위해 다음 명령어를 순서대로 입력
# rabbitmq-plugins enable rabbitmq_management
# service rabbitmq-server restart
그 후에는 계정 생성 및 관리자 권한 부여, 접근 권한 설정한다.
# rabbitmqctl add_user [user_id] [password]
# rabbitmqctl set_user_tags [user_id] administrator
# rabbitmqctl set_permissions -p / [user_id] ".*" ".*" ".*"
그 후에는 윈도우에서 <리눅스 ip 주소>:15672 로 접속하여 정상 작동함을 확인한다.
*만약 도커 기반 설치를 원한다면 아래 명령어를 순서대로 입력한다.
# docker pull rabbitmq:management
# docker run \
-d \
-p 5672:5672 \
-p 15672:15672 \
--restart=always \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=password \
rabbitmq:management
5. Kafka 설치
Kafka의 사용을 위해서는 먼저 주키퍼를 설치해야 한다.
# apt-get install zookeeperd
그 후에는 아래 웹사이트에 접속하여 원하는 버전을 선택한 후 링크 주소를 복사하여 curl -sL 혹은 wget 명령어로 다운로드 수행.
http://apache.mirror.cdnetworks.com/kafka/
참고로 당연한 말일 수 있으나 src 버전 말고 바이너리 버전으로 다운받자.
다운로드가 완료되었으면 tar -xvzf 명령어로 압축을 해제한다.
그 후에는 리눅스의 hostname을 맞춰야 한다.
먼저 hostname 명령어로 리눅스의 호스트명을 확인한 후
vim /etc/hosts 에서 해당 호스트명을 추가한다.
그 다음에는 /conf/server.properties 파일의 빨간 박스 부분의 주석을 해제하고 사이에 ip 주소를 삽입한다.
그 후 cd kafka_<version>으로 들어가 다음 명령어들을 순차적으로 입력한다.
# bin/zookeeper-server-start.sh config/zookeeper.properties
# bin/kafka-server-start.sh config/server.properties
단 이 명령어 사용 시 포어그라운드에서 카프카가 동작하므로
백그라운드에서 실행하는 것이 좋을 것 같다.
*도커 기반 명령어는 아래와 같다.
*주의할 점은 zookeeper와 kafka가 동시에 사용되어 상호통신이 이루어져 하기에 이 통신에 사용하기 위해 Docker Network를 이용한다.
# docker pull bitnami/kafka
# docker pull bitnami/zookeeper
# IPADDR=`hostname -I | cut -d' ' -f1`
# docker network create test-net --driver bridge
# docker run \
--restart unless-stopped \
--name zookeeper \
--network test-net \
-d -p 2181:2181 \
-e ALLOW_ANONYMOUS_LOGIN=yes \
bitnami/zookeeper:latest
# docker run \
--restart unless-stopped \
--name kafka1 \
--network test-net \
-d \
-p 9092:9092 \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_CFG_MESSAGE_MAX_BYTES=10485760 \
-e KAFKA_CFG_LOG_RETENTION_HOURS=3 \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://$IPADDR:9092 \
bitnami/kafka:latest
'실습 > 리눅스 서버 + 스프링 부트' 카테고리의 다른 글
05. RestfulAPI_Redis CRUD (0) | 2021.05.23 |
---|---|
04. RestfulAPI_MongoDB (0) | 2021.05.23 |
03. RestfulAPI_MariaDB (0) | 2021.05.19 |
02. 윈도우 세팅 및 프로젝트 생성 (0) | 2021.05.19 |
00. VB 및 리눅스 서버 설치 (0) | 2021.05.05 |