CentOS 7에 plexpy 설치

plex 서버를 잘 사용 중인데 plexpy라는게 있다고 한다. 대강 보니 모니터툴 같은데 일단 리눅스에서 plexpy 를 설치해본다. 인터넷에 있는 몇몇 문서들은 도커를 이용한 설치를 예시로 하고 있는데 내 서버들은 아직 도커를 쓰지 않으므로 그냥 설치하는 것으로.

리눅스는 CentOS 7. plexpy 홈페이지에 들어가 InstallGuide 문서를 읽어본다.

https://github.com/JonnyWong16/plexpy/wiki/Installation

GIT을 이용하여 소스 코드를 다운 받는다.

git clone https://github.com/JonnyWong16/plexpy.git

[root@localhost source]# git clone https://github.com/JonnyWong16/plexpy.git
 Cloning into 'plexpy'...
 remote: Counting objects: 15652, done.
 remote: Total 15652 (delta 0), reused 0 (delta 0), pack-reused 15652
 Receiving objects: 100% (15652/15652), 77.18 MiB | 2.67 MiB/s, done.
 Resolving deltas: 100% (8905/8905), done.
 [root@localhost source]#

설치문서에는 /opt 에 설치하는 것을 예로 들고 있지만 이 경로를 난 좋아하지 않으므로 /usr/local/plexpy 에 설치할 예정.

다운 받은 내용을 /usr/local/plexpy 로 이동한다.

[root@localhost source]# mv plexpy /usr/local/
 [root@localhost source]# cd /usr/local/plexpy
 [root@localhost plexpy]#

plexpy.py를 실행하면 StandAlone 으로 실행하는 것 같지만 난 데몬서비스가 더 좋으므로 관련 문서를 읽어본다.

https://github.com/JonnyWong16/plexpy/wiki/Install-as-a-daemon

리눅스인 경우 다음의 문서를 읽어보라고 한다.

https://github.com/JonnyWong16/plexpy/blob/master/init-scripts/init.systemd

보여지는 스크립트 파일 내용을 vi 를 이용해 plexpy.service 파일로 입력한다.

파일 안에 있는 /opt 로 시작하는 경로들을 나에게 맞도록 /usr/local q로 시작하도록 수정한 다음 저장한다. 실행 유저과 그룹도 plexpy 로 변경.

.service 파일은 보통 /lib/systemd/system 에 저장한다고 하니 그곳으로 옮겨주고 스크립트를 재로딩한 다음, 제대로 읽혀지는지 테스트해본다.

[root@localhost plexpy]# mv plexpy.service /lib/systemd/system
 [root@localhost plexpy]# systemctl daemon-reload
 [root@localhost plexpy]# systemctl status plexpy.service
 ● plexpy.service - PlexPy - Stats for Plex Media Server usage
 Loaded: loaded (/usr/lib/systemd/system/plexpy.service; disabled; vendor preset: disabled)
 Active: inactive (dead)
 [root@localhost plexpy]#

서비스를 시작한다.

[root@localhost plexpy]# systemctl start plexpy.service
 Job for plexpy.service failed because the control process exited with error code. See "systemctl status plexpy.service" and "journalctl -xe" for details.
 [root@localhost plexpy]#

 

에러가 난다. 에러메시지대로 status 명령을 입력해본다.

[root@localhost plexpy]# systemctl status plexpy.service
 ● plexpy.service - PlexPy - Stats for Plex Media Server usage
 Loaded: loaded (/usr/lib/systemd/system/plexpy.service; disabled; vendor preset: disabled)
 Active: failed (Result: exit-code) since 화 2017-09-12 14:24:11 KST; 1min 10s ago
 Process: 23144 ExecStart=/usr/local/plexpy/PlexPy.py --quiet --daemon --nolaunch --config /usr/local/plexpy/config.ini --datadir /usr/local/plexpy (code=exited, status=217/USER)

9월 12 14:24:11 localhost.localdomain systemd[1]: Starting PlexPy - Stats for Plex Media Server usage...
 9월 12 14:24:11 localhost.localdomain systemd[1]: plexpy.service: control process exited, code=exited status=217
 9월 12 14:24:11 localhost.localdomain systemd[1]: Failed to start PlexPy - Stats for Plex Media Server usage.
 9월 12 14:24:11 localhost.localdomain systemd[1]: Unit plexpy.service entered failed state.
 9월 12 14:24:11 localhost.localdomain systemd[1]: plexpy.service failed.
 [root@localhost plexpy]#

 

설치 문서를 읽어보니 환경설정에 대한 내용을 하나도 실행 안한 것이었다.

유저를 추가하고 권한을 준다.

[root@localhost plexpy]# adduser --system --no-create-home plexpy
 [root@localhost plexpy]# chown plexpy:plexpy -R /usr/local/plexpy
 [root@localhost plexpy]#

 

이제 다시 시작해보면 에러가 나지 않는다.

[root@localhost plexpy]# systemctl start plexpy.service
 [root@localhost plexpy]#

 

서비스를 자동실행으로 등록한다.

[root@localhost plexpy]# systemctl enable plexpy.service
 Created symlink from /etc/systemd/system/multi-user.target.wants/plexpy.service to /usr/lib/systemd/system/plexpy.service.
 [root@localhost plexpy]#

 

웹브라우저로 서버의 8181 포트를 열어보면 다음과 같은 화면이 나온다. 이제부터는 웹에서 설정!

그런데 막상 설치해서 보니까 이게 뭐… 딱히 모니터링이라 하기도 애매하고… 어디다 써야할지는 잘 모르겠다. 아파치에 같이 물릴려고 했는데 귀찮아서 그냥 쓰는 것으로.

MicroServer를 재설정

집에 설치한 서버에 CentOS 7을 설치해서 썼었지만 다시 6 버전으로 돌아가기로 결정.

7 버전에 적응하려 했지만 6을 쓰던 습관으로 계속 쓰기에는 너무나 불편한게 많아 가장 익숙한 시스템으로 이동했다.

 

Transmission 데몬을 계속 쓰다가 rtorrent를 쓰려고 했는데 속도는 rtorrent가 훨씬 좋았지만 문제점이 많았다.

  1. 다운로드 완료 디렉토리와 다운로드 진행중 디렉토리를 개별로 설정할 수 없어서 하드디스크를 나누어서 사용할 수 없다는 점
  2. 파일질라에서 sftp로 접속해서 다운로드된 파일을 이동하려 하니 오류 나면서 이동이 안됨. SSH로 접속해서 이동시켜야함.
  3. Transmission GUI 툴 같은 편리한 툴이 없어서 ruTorrent를 이용해 웹브라우저로 접속해서 토렌트 파일을 업로드 해야한다는 점.

사실상 속도가 빠르다는 점 하나 빼고는 모든 면이 Transmission에 비해 안 좋기 때문에 그만 사용하기로 결정.

 

주말에 시간을 내어 다시 CentOS 6.7 버전으로 설치하고 디스크 마운트하고 각종 프로그램을 재설치 했다.

PLEX에서 다음검색에이전트 설치

PLEX 서버 설치 후 영화 추가시 데이터를 자동으로 가져오기 위해 다음검색 에이전트를 설치했다.

https://forums.plex.tv/discussion/comment/486302

에서 다음 검색 에이전트를 다운로드한다.

https://github.com/hojel/DaumMovie.bundle 에서 master.zip 파일을 다운로드 받을 수 있다. 리눅스에서는 wget 명령어를 이용하여 한번에 받을 수 있으므로 더 편리하다.

다운로드 파일을 unzip master.zip 명령으로 압축을 풀고, 폴더명을 DaumMovie.bundle-master 에서 DaumMovie.bundle 로 변경한다. (폴더명을 바꾸지 않으면 PLEX 서버에서 인식되지 않으므로 반드시 변경해야한다.

변경한 후 PLEX 서버를 systemctl restart plexmediaserver 명령으로 재시작해준다.

다시 웹관리자에 접속하여 설정 -> 서버 -> 에이전트 항목에 가보면 Daum Movie 라는 항목이 생겨있다.

K-026

밑의 Local Media Asstes (Movies) 의 체크박스를 활성화해주면 끝. (이게 되어있지 않다면 자막이 나오지 않는다고 한다.)

나머지 TV 쇼나 아티스트 앨범에 가서도 같은 작업을 반복해주면 된다.

이 작업을 하고 나면 영화나 TV쇼가 추가되면 자동으로 데이터를 가져오게 된다.

HP MicroServer Gen8

독일의 컴퓨터유니버스(http://www.computeruniverse.net)에서 직구한 마이크로서버 Gen8이 도착했다.

우리나라 가격으로는 35만원 정도인데 컴퓨터유니버스를 이용하면 배송비 모두 포함 27만원 정도가 든다. 단 거의 3주에 가까운 시간을 기다려야 했으니…. 직구를 처음해보는 나로써는 무진장 답답했다. 컴퓨터유니버스에서 독일우체국까지는 금방간다. 그런데 거기서 한국으로 오기까지 거의 열흘가까이가 걸렸다. 한국에 온 다음에는 2일인가 3일만에 도착.

여튼 무사히 도착했으니 박스 뜯으며 개봉.

img_1155

박스 크기가 거의 라면 박스 크기.

img_1156

내부에는 종이를 구겨서 완충재로 넣어놨다. 그덕분에 다행히 박스는 아주 깨끗한 모습으로 도착.

img_1157

상자를 열고 컴퓨터를 꺼낸다. 전원케이블 2개가 들어있다. 생각보다 컴퓨터가 무겁다.

img_1160

기본사양은 하드디스크가 들어있지 않기 때문에 따로 준비한다. 운영체제용으로는 얼마전 RMA 받은 히타치 500기가 하드디스크, 데이터 저장용으로 웨스턴디지털 4TB 하드디스크, 토렌트 돌릴 용도로 무상분양 받은 삼성 250GB 하드디스크를 캐디에 조립한다.

img_1158

서버 뒤의 핸드스크류를 돌린 다음 뚜껑을 뒤로 밀어서 연다. 옆쪽에 메모리 슬롯이 보이고 2GB ECC 메모리가 꽂혀있다. 미리 준비한 삼성 PC12800 ECC 8GB 메모리 2개를 꽂아서 16기가 메모리를 장착했다.

img_1161

작업방에 두고 세팅 중… 아내가 아주 오래전에 쓰던 모니터와 키보드도 연결했다. iodd를 연결해서  CentOS 설치. (이럴 때 느끼지만 정말 iodd는 잘 산 것 같다.) 운영체제는 CentOS 7을 설치했다. 6버전대가 익숙하긴한데 공부도 할겸 개인용도니까 7 버전으로 처음 설치.

처음 시동하면 지혼자 몇번 꺼졌다켜졌다 계속 반복한다. 일종의 초기화 과정으로 생각하고 가만히 내버려두면 된다.

내가 제일 중요하게 생각했던 소음 문제.

사용해보니 부팅시에는 굉장히 소음이 큰데 부팅이 완료되면 소음이 적다. 일반적인 사무실에서 조용할 때 나는 컴퓨터 소리 정도? 그냥 사무실이라고 생각하면 쓸 수 있을 것 같다. 하지만 집안에서라면 좀 어려울 것 같다. 집안에 아무런 전자기기나 TV도 작동하지 않는 조용할 때에는 소음이 들린다.

리눅스에서 4TB 하드디스크 파티션하고 포맷하는 방법

CentOS 7을 설치하고 가지고 있는 하드디스크들을 장착하고 파티셔닝을 진행했다.

500GB 하드디스크와 250GB 하드디스크는 fdisk 명령어로 파티션을 나누고 mkfs.xfs 명령어로 포맷하고 마운트하니 제대로 인식되고 사용 가능했다. 그런데 새로 구입한 4TB 하드디스크도 같은 방법으로 파티셔닝하고 파일시스템 생성 후 마운트하니 2TB로 잡혔다.

왜 이런가 찾아보다가 발견.

hdd

내용은 이 디스크는 4TB이며 parted를 이용하라는 말이다.

parted 사용법은 다음 링크를 참조했다.

parted를 통해서 무사히 파티셔닝을 마쳤다.

CentOS에서 SVN 서버 설정시 주의할 점

HTTP 프로토콜을 이용해 svn 서버를 운영하고 있었는데 이러다보니 아파치 서버가 없이는 svn을 사용할 수가 없는 상황이 되었다.

향후에는 nginx로 넘어가려고 하는데 아파치가 발목을 잡을 수 있어서 svn:// 프로토콜로 넘어가려고 해서 svnserve를 yum으로 설치했으나 svn에 연결이 되지 않았다. 외부 서버에서 접속이 안되는게 아니라 내부에서도 접속이 안되었기 때문에 뭔가 문제라고 생각했다.

곰곰이 생각해보니 svn 서버를 설정할 때 레포지토리 루트 경로를 설정한 적이 없어서 도대체 어디서 레포지토리 루트 경로를 잡고 있는지 궁금했는데 인터넷 검색을 하다가 찾았다.

http://blog.naver.com/haengro?Redirect=Log&logNo=40194678804

본문에 있던대로 /etc/sysconfig/svnserve 파일을 생성하고 옵션을 설정하니 정상적으로 접속이 되었다.

CentOS에서 Jenkins 설치하기

jenkins_logo

CentOS에서 Jenkins를 설치하기 위한 문서이다.

CentOS 6.4이고 Jenkins는 2013년 11월 17일 버전으로 한다.

젠킨스를 설치할 디렉토리를 설정하고 거기에 젠킨스 홈페이지인 http://jenkins-ci.org 에서 최신버전을 받아 넣는다. 현재 가장 최신 버전은 1.539 버전이다. 다운로드 받을려면 wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war 명령으로 war 파일을 받을 수 있다. 내 경우에는 /home/jenkins 디렉토리를 만들고 거기에 war 파일을 받아 넣었다.

톰캣의 환경설정을 한다. 내 경우에는 톰캣을 아파치와 연동해서 사용하고 있다.

톰캣의 서버 설정파일인 /etc/tomcat6/server.xml에 가서 다음의 내용르 추가한다.

<Host name="jenkins.도메인.com" appBase="/home/jenkins" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
 <Alias>jenkins.도메인.com</Alias>
 </Host>

난 Alias를 해놨기 때문에 Catalina 디렉토리의 jenkins.도메인.com 디렉토리의 ROOT.xml 파일을 수정해야했다. ROOT.xml 파일에는 다음의 내용을 넣는다.

<?xml version="1.0" encoding="UTF-8"?>
 <Context path="" docBase="" debug="1">
 </Context>

만약 Alias를 쓰지 않는다면 위의 server.xml 설정 파일 중 <Alias></Alias> 부분을 위의 내용으로 바꾸어주면 된다.

service tomcat6 restart 명령으로 톰캣을 재시작한다. 재시작하고 웹브라우저를 연다음 아까 설치한 http://jenkins.도메인.com:8080/jenkins 으로 접속해본다.

안된다…

방화벽의 8080 포트를 열어줘야한다. /etc/sysconfig/iptables 에서 8080 포트를 열어주고 service iptables restart 를 입력하여 방화벽을 재시작한다.

다시  http://jenkins.도메인.com:8080/jenkins 으로 접속하면 다음과 같은 화면이 뜬다.

jenkins_error

JENKINS_HOME이 설정되어 있지 않아 다른 디렉토리를 설정한다는 내용이다.

war 파일을 넣어놓은 디렉토리에 젠킨스 홈디렉토리롤 쓸 디렉토리를 추가한다. 내 경우에는 /home/jenkins/.jenkins 로 정했다.

그다음 /etc/profile에 다음의 내용을 추가한다.

export JENKINS_HOME=/home/jenkins/.jenkins

바로 적용을 위해서 source /etc/profile 을 입력한다. 내용이 적용되면 톰캣을 재시작한다.

다시 같은 위치로 들어가보면 다음처럼 젠킨스 사용 준비가 완료된다.

jenkins_ready

이제 젠킨스를 사용하면 된다.

CentOS에서 GIT 설치

회사의 형상관리시스템이 Subversion에서 GIT를 쓰기로 결정되어 GIT를 내 서버에 한번 설치해본다.

CentOS 6.4에서 yum으로 기본적인 패키지는 다 있을거란 가정하에 설치시작.

yum으로 설치하려 했으나 역시 공식 레포지토리에는 없다. 검색해보니 비공식 레포지토리를 이용해서 설치가 가능하긴하나 개인적으로 비공식 레포지토리는 EPEL을 제외하고는 좋아하지 않으므로 그냥 소스설치를 해보도록 한다. 페도라 EPEL에는 GIT가 있긴한데 그렇게 떙기진 않는다. ㅎㅎ

http://www.git-scm.com 에서 소스코드를 받아 압축을 푼다.

압축을 푼 후

make configure
 ./configure --prefix=/usr/local/git --with-openssl --with-libpcre --with-curl --with-expat --with-iconv --with-perl --with-python --with-zlib --with-tcltk
 make
 make install

하면 끝.

git라고 입력해보면 이제 git 명령이 잘 실행된다.

CentOS 에서 nginx 설치 #1

CentOS에서 nginx를 설치해본다.

nginx 사이트에서 레포지토리 파일을 받는다.

CentOS 6.4에서 yum으로 일단 편리하게 설치. php-fpm도 같이 설치한다.

php-fpm의 기본 설정 파일은 /etc/php-fpm.d 에 들어있다.

nginx 설정파일을 수정한다. php를 사용하기 위해 중요한 설정은 다음과 같다.

 

server {
listen 81;
server_name www.83rpm.com; 가상호스트가 쓸 도메인을 정의한다.

#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;

location / {
# root /usr/share/nginx/html;
root /home/sadasd/public_html/test/; 루트 경로를 지정한다.
index index.php index.html index.htm;
}

#location / {
# proxy_pass_header Server;
# proxy_set_header Host $http_host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Scheme $scheme;
# proxy_pass http://127.0.0.1:80;
#} 이렇게 설정하면 프록시 설정하여 특정 도메인의 접속을 아파치로 넘길 수 있다.

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /usr/share/nginx/html;
#}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
root /home/asdasd/public_html/test/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} PHP를 사용하기 위한 설정 root 경로를 주의한다.

# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
#
#location ~ /.ht {
# deny all;
#}
}

참고 URL : http://amuzr.blog.me/90169647032

시스템 코드페이지 변경

phpsysinfo를 업그레이드하고 나서 보니 Code Pages 부분 즉, 시스템코드페이지가 euc-kr로 나왔다.

왠만하면 서버의 모든 환경을 UTF-8로 맞추고 있는 실정이라 시스템코드페이지를 UTF-8로 변경하기로 결정.

/etc/sysconfig/i18n 파일을 열어서

LANG=”ko_KR.UTF-8″
SUPPORTED=”ko_KR.eucKR:ko_KR:ko”

이렇게 변경하고 저장한다.

완벽한 적용을 위해서 서버를 재부팅하면 완료.