Saturday, March 2, 2019

MongoDB on CentOS 7

1. repository 추가
mongodb를 설치하기 위해서는 repository 정보를 추가해야 함. 그러기 위해서는 repo 파일을 등록해야 함.
$ sudo vi /etc/yum.repos.d/mongodb-org.repo

파일 내용에는 3.6인 경우 다음과 같이 작성. 각각의 버전에 따라 작성.
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

2. 필요한 팩키지들을 yum으로 설치
$ sudo yum install -y mongodb-org

3. 설치한 MongoDB 시작
$ sudo systemctl start mongod

4. os 시작시 MongoDB 시작
$ sudo systemctl enable mongod

5. MongoDB 계정 설정
사용자의 패스워드를 설정한 후
$ mongo
> use admin
> db.createUser({ user: 'user_name', pwd: 'password', roles: ['root'] })

패스워드로 인증해서 로그인 할 수 있도록 파일을 열고
$ sudo vi /etc/mongod.conf
파일의 내용을 다음과 같이 수정한 후
security:
  authorization: enabled

그리고 나선 MongoDB를 재시작
$ sudo systemctl restart mongod

6. MongoDB 외부 접속
외부 접속을 위해서는 MongoDB ip bind를 변경해야 함.
$ sudo vi /etc/mongod.conf
파일을 열어서 bindIp를 변경
bindIp: 0.0.0.0
그리고 나선 MongoDB를 재시작
$ sudo systemctl restart mongod

MariaDB on CentOS 7

1. repository 추가
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

2. 필요한 팩키지들을 yum으로 설치
$ sudo yum install MariaDB-server MariaDB-client

3. 설치한 MariaDB 시작
$ sudo systemctl start mariadb

4. os 시작시 MariaDB 시작
$ sudo systemctl enable mariadb

5. MariaDB 계정 설정
사용자의 패스워드를 설정함
$ mysql
MariaDB [(none)]> use mysql;
MariaDB [(none)]> update user set password=password('password') where user='user_name';
MariaDB [(none)]> flush privileges;

6. MariaDB 외부 접속
외부 접속을 위해서는 MariaDB ip bind를 변경해야 함.
$ sudo vi /etc/my.cnf.d/server.cnf
파일을 열어서 bind_address를 주석처리 해야 함
#bind_address=127.0.0.1
또한, 외부 접속을 위해서는 사용자가 접속 가능한 ip를 설정해줘야 함. 또한 이 ip에 대해 사용자에 대한 패스워드를 추가적으로 지정해 줘야 함.
$ mysql -u user_name -p
password:
MariaDB [(none)]> use mysql;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%.%.%.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> flush privileges;

PostgreSQL on CentOS 7

1. 필요한 팩키지들을 yum으로 설치
$ sudo yum install postgresql-server postgresql-contrib

2. PostgreSQL database cluster를 생성
$ sudo postgresql-setup initdb

3. 설치한 PostgreSQL 시작
$ sudo systemctl start postgresql

4. os 시작시 PostgreSQL 시작
$ sudo systemctl enable postgresql

5. PostgreSQL 계정 설정
postgres 사용자로 전환하고
$ su - postgres

사용자를 추가하고
$ createuser user_name --interactive

사용자의 패스워드를 설정함
$ alter user user_name with password 'password';

6. PostgreSQL 외부 접속
외부 접속을 하기 위해서는 PostgreSQL 설정을 변경해야 하는데, 이를 위해서 접속 가능한 ip와 인증 방법을 설정해야 함. 이를 위해 다음의 파일을 열어서
$ sudo vi /var/lib/pgsql/data/pg_hba.conf

모든 ip에서 접속 가능하게 하고 password 인증을 설정
host all all 0.0.0.0/0 password

PostgreSQL에서 모든 연결을 수신할 수 있도록 다음 파일을 열어서
$ sudo vi /var/lib/pgsql/data/postgresql.conf

listen_addresses를 전체로 설정
listen_addresses = '*'

그 이후에는 PostgreSQL를 다시 시작하고 외부 접속하면 잘 됨
$ sudo systemctl restart postgresql

Node.js 설치 on CentOS 7

1. yum repository 추가

node를 설치하기 위해서 원하는 버전의 repository를 추가해야 함. version 8 또는 10 중 선택
$ curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
or
$ curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -

2. nodejs 설치
$ sudo yum install nodejs

3. 설치된 버전 확인
$ node --version
$ npm --version

Git 설치 및 사용 on CentOS 7

설치는 yum을 이용해서..
$ sudo yum install git
$ git --version

해서 설치 된 것을 확인하고, 사용자 정보 입력한 뒤에,
$ git config --global user.name "Daeil Seo"
$ git config --global user.email "daeil.seo@gmail.com"

git clone 실행하고 develop branch로 변경
$ git clone https://github.com/xdesktop/mavr.git
$ cd mavr
$ git checkout -t origin/develop

Docker 기반 Kafka 실행

Kafka에 이것저것 테스트를 해보기 위해서는 내가 설치하고 관리하는게 훨씬 편하기에...

실제 서비스 전까지 무엇이 있나 들여다보기 위해서 쉽게 실행할 수 있는 방법을 찾던중...

우선적으로 docker를 이용하는게 편하겠다 싶어서 찾아본 결과...

Kafka는 Kafka cluster와 ZooKeeper가 필요하다 하여 이를 쉽게 설치할 수 있는 방법을 찾던 중

docker-compose라는게 있음 된다 하는데, 우선 잘 모르지만 https://github.com/docker/compose를 설치

1. docker-compose 설치
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

해서 설치를 하면 되는데, 안되는 경우는 다음과 같이 다운로드 폴더 지정을 다른데로 하고, os 정보를 넣어서 curl을 실행하면 되는데,
$ sudo mkdir -p /opt/bin
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64" -o /opt/bin/docker-compose

그러고 나서는 설치된 폴더에 대한 실행 permission을 부여
$ sudo chmod +x /opt/bin/docker-compose

이후 설치된 버전에 대한 확인
$ docker-compose --version

2. docker-compose를 이용한 kafka 실행

kafka-docker repository에서 code를 받아오고
$ git clone https://github.com/wurstmeister/kafka-docker

로컬에서 1대의 브로커만 실행할 것이기 때문에 docker-compose-single-broker.yml 내에 KAFKA_ADVERTISED_HOST_NAME값을 127.0.0.1으로 수정
services:
  kafka:
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1

수정 이후에는 실행
$ cd kafka-docker
$ docker-compose -f docker-compose-single-broker.yml up

Docker 설치 on CentOS 7

설치는 https://docs.docker.com/install/linux/docker-ce/centos 에 있는 가이드에 따라

1. 우선 필요한 팩키지를 설치하고
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data lvm

2. stable repository 추가하고
$ sudo yum-config-manager --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

3. docker를 설치하고
$ sudo yum install docker-ce docker-ce-cli containerd.io

4. 부팅시에 실행하도록 등록하고
$ sudo systemctl enable docker.service

5. docker 실행하고
$ sudo systemctl start docker.service

6. docker 실행 상태 확인하고
$ sudo systemctl status docker.service

하지만 이렇게 설치를 하면, docker를 실행하고자 할 때 "Docker permission denied" 문제가 발생하게 되는데,
$ sudo usermod -a -G docker $USER
$ sudo service docker restart

를 하고 로그아웃 후 로그인 해 사용하면 잘 된다.

Friday, March 1, 2019

인증서를 이용한 서버 접속

일하는 환경이 달라지다보니..

인증서를 이용하여 RSA 공개키를 이용한 SSH 접속을 해야하는 상황이 발생함..

뭐 그전에는 id/password 만 사용해서 접속하는 편한 환경이였던거지..
$ ssh ip_address -i key_file.pem -l user_name

예를들어,
$ ssh 127.0.0.1 -i key.pem -l user