virtualbox를 이용해서 linux 설치
virtualbox에서 network 설정을 진행한다.
현재 설정 :
Adapter 1:
호스트 전용 어댑터 : VirtualBox Host-Only Ethernet Adapter
Adapter 2:
NAT : 포트포워딩 설정 x
현재 네트워크 설정을 확인
$ ip addr
네트워크에 필요한 기본 툴을 설치
$ yum install net-tools
네트워크 활성화
$ ifup enp0s3
다시 네트워크 설정 확인
$ ifconfig
enp0s3(호스트 전용 어댑터)이 활성화 된 것을 확인
편리한 사용을 위해 mobaXterm에 연결
virtualbox 전용 ip 를 확인하고 mobaXterm과 연결
(local이기 때문에 인터넷 끊겨도 상관없음)
# window cmd
$ ipconfig
mobaXterm ssh에 remote_host_ip 입력
필요한 설치 파일 및 패키지를 모두 리눅스로 전송
인터넷 연결을 모두 종료
$ ifconfig enp0s8 down
fconfig [~] down 과 ifdown [~]의 차이 ?
<결과>
현재 상태 :
enp0s3(호스트 전용 어댑터) 켜진상태 => 192.xxx.xx.1xx
ping 8.8.8.8 => Network is unreachable
mobaXterm 정상 연결
모든 준비 완료!
패키지 설치
$ rpm -ivh unzip-6.0-24.el7_9.x86_64.rpm
Packages.zip 을 새로운 폴더에 압축풀기
$ unzip Packages.zip -d ./Packages
로컬 레포지토리용 디렉토리 생성
$ mkdir -p /root/local-repo/CentOS-7
# cf) -p, --parents no error if existing, make parent directories as needed
디렉토리 이동
$ mv Packages /root/local-repo/CentOS-7
$ vi /etc/yum.repos.d/CentOS-Local.repo
[local-repo]
name=Local Repository
baseurl=file:///root/local-repo/CentOS-7
gpgcheck=0
enabled=1
패키지 디렉토리로 이동
$ cd /root/local-repo/CentOS-7/Packages
createrepo 필요 패키지 설치
$ rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
$ rpm -ivh libxml2-2.9.1-6.el7.5.x86_64.rpm
$ rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
$ rpm -ivh libxml2-python-2.9.1-6.el7.5.x86_64.rpm
$ rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
Local Repository 생성
$ createrepo /root/local-repo/CentOS-7
Repository 등록
$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Repository 확인
$ yum repolist
패키지 목록 삭제
$ yum clean all
패키지 업데이트
$ yum -y update
$ unzip /root/install_file/docker_rpm.zip
$ rpm -ivh container-selinux-2.107-3.el7.noarch.rpm
$ rpm -ivh docker-ce-cli-19.03.9-3.el7.x86_64.rpm
$ rpm -ivh containerd.io-1.2.6-3.3.el7.x86_64.rpm
$ rpm -ivh docker-ce-19.03.9-3.el7.x86_64.rpm
docker 실행
$ systemctl start docker
cf) docker 실행 : $ systemctl docker start
docker 중지 : $ systemctl docker stop
docker container 내리기 : $ docker container stop [container id]
docker 상태 확인 : $ systemctl status docker
agens 계정생성
$ useradd agens
docker 실행권한부여
$ usermod -aG docker 사용자계정
사용자 파일 소유자 변경
$ cd /root/install_file
$ chown 사용자계정:사용자계정 agensgraph-v2.13.1_linux.tar.gz agviewer.tar Anaconda3-2020.02-Linux-x86_64.sh psycopg2-2_8_4.tar.gz psycopg2-binary-2.8.4.tar.gz
방화벽 설정
# Agensgraph port 추가
$ firewall-cmd --zone=public --permanent --add-port=5432/tcp
# AGViewer port 추가
$ firewall-cmd --zone=public --permanent --add-port=3001/tcp
# Jupyter port 추가
$ firewall-cmd --zone=public --permanent --add-port=8888/tcp
# ssh port 추가
$ firewall-cmd --zone=public --permanent --add-port=22/tcp
# 방화벽 재시작
$ firewall-cmd --reload
# 방화벽 포트 확인
$ firewall-cmd --list-all
# 디렉토리 이동
$ cd /home/agens
# 압축풀기
$ tar xvf agensgraph-v2.13.1_linux.tar.gz
환경변수 설정
# 디렉토리 이동
$ cd agensgraph-2.13.1
# 환경변수 설정
$ vi ~/.bash_profile
# .bash_profile
export AGHOME=/home/agens/agensgraph-2.13.1
export AGDATA=$AGHOME/data
export LD_LIBRARY_PATH=$AGHOME/lib:$LD_LIBRARY_PATH
PATH=$AGHOME/bin:$PATH
# 환경변수 적용
$ source ~/.bash_profile
DB 생성
# DB 클러스터 생성
$ initdb -D $AGDATA
# DB 실행
$ ag_ctl start -D $AGDATA
# 유저 생성
$ createuser agens
# DB 생성
$ createdb agens -O agens
DB 설정
# 디렉토리 이동
$ cd $AGDATA
# postgresql.conf 설정
$ vi postgresql.conf
# postgresql.conf
work_mem=200MB
maintenance_work_mem=32GB
max_wal_size = 20GB
min_wal_size = 20GB
logging_collector = on
log_filename = 'agensgraph-%Y-%m-%d.log'
log_min_messages = warning
log_min_error_statement = warning
vacuum_cost_delay = 0
vacuum_cost_page_hit = 1
vacuum_cost_page_miss = 10
vacuum_cost_page_dirty = 20
vacuum_cost_limit = 200
autovacuum = on
autovacuum_vacuum_cost_limit = -1
log_timezone = 'ROK'
timezone = 'ROK'
lc_messages = 'ko_KR.UTF-8'
lc_monetary = 'ko_KR.UTF-8'
lc_numeric = 'ko_KR.UTF-8'
lc_time = 'ko_KR.UTF-8'
# pg_hba.conf 설정
$ vi pg_hba.conf
# pg_hba.conf
# IPv4 local connectors:
host all all 0.0.0.0/0 md5
# DB 재실행
$ ag_ctl restart -D $AGDATA
$ docker load -i agviewer.tar
error : Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/load?quiet=0: dial unix /var/run/docker.sock: connect: permission denied
현재 agens 유저가 docker 를 실행시킬 권한이 없다.
root 계정으로 변경해서 agens 유저를 docker 그룹에 넣어주자.
$ usermod -a -G docker agens
그래도 실행이 되지않는다면 reboot
이미지 로드
$ docker load -i agviewer.tar
cf) docker 실행 : $ systemctl docker start
docker 중지 : $ systemctl docker stop
docker container 내리기 : $ docker container stop [container id]
docker 상태 확인 : $ systemctl status docker
컨테이너 생성
$ docker run --name agviewer -it -d -p 3001:3001 agviewer:latest bash
AGViewer 확인해보기
webbrowser에 현재ip:3001 입력
정상작동 확인
# 버전확인
$ jupyter --version
# jupyter 실행
$ nohup jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root &
# 토큰 파일 생성
$ echo ?token=xxxxxxxxxxxxxxxxxxxxxxxxxxx > token_file.txt
# 디렉토리 이동
$ cd cd /home/agens
# psycopg2 설치
$ pip install psycopg2-binary-2.8.4.tar.gz
$ pip install psycopg2-2_8_4.tar.gz
error : command 'gcc' failed with exit status 1
[해결]
# root 계정으로 변경
$ su - root
# gcc 설치
$ yum install gcc
# 다시 agens 유저로 변경
$ su - agens
# psycopg2 설치
$ pip install psycopg2-binary-2.8.4.tar.gz
$ pip install psycopg2-2_8_4.tar.gz