centos7 기준입니다.
ranger-admin 2.4.0 버전을 설치해보도록 하겠습니다.
사전에 postgreSQL, solr, jdk8이 설치되어있고, ranger 소스 빌드가 완료된 것을 가정합니다.
저의 환경에서는 mast02서버에 postgreSQL, mast01,mast02,mast03서버에 solr cloud모드로 실행중입니다.
postgreSQL 설치
https://developer-woong.tistory.com/41
jdk8 설치
https://developer-woong.tistory.com/38
solr 설치
https://developer-woong.tistory.com/92
ranger 빌드
https://developer-woong.tistory.com/95
0. 구축 환경
- postgreSQL: mast02:14325
- solr: mast01,mast02,mast03:8983
- ranger-admin: mast02 설치 진행, 실행 계정은 hadoop
- ranger 소스 빌드 파일: mast02 서버 내 위치
1. 사전준비 (PostgreSQL DB 생성)
action server: mast02
user: postgres
pwd: -
cmd:
# pg 콘솔 접속
psql -p 14325
# ranger 유저 및 DB 생성
create user ranger password 'ranger';
create database ranger owner ranger;
grant all privileges on database ranger to ranger;
2. 사전준비 (solr collection생성)
action server: mast02
user: root
pwd: -
cmd:
* 이전 설치한 solr cloud에서 ranger가 사용할 컬렉션을 생성합니다.
* 저의 환경에서는 solr가 바라보는 zk_hosts가 mast01:2181,mast02:2181,mast03:2181/solr-cloud로
* solr-cloud라는 이름의 znode가 존재하는 환경입니다.
* 이 znode에 ranger가 사용할 solr 컬렉션의 config파일을 올리고, solr ui내에서 컬렉션을 생성하겠습니다.
# ranger용 컬렉션 폴더를 생성합니다.
mkdir /opt/apps/solr-8.11.2/ranger_audits_conf
# 이전 포스팅에서 mast02서버에서 ranger 소스를 빌드하였습니다. 빌드 폴더 내 파일이 존재합니다.
# ranger-2.4.0-solr_audit_conf.tar.gz 파일을 해당 경로에 위치시킵니다.
cp /opt/apps/ranger/target/ranger-2.4.0-solr_audit_conf.tar.gz /opt/apps/solr-8.11.2/ranger_audits_conf
# 권한 부여 후 계정 전환합니다.
chown -R hadoop:hadoop /opt/apps/solr-8.11.2
su - hadoop
cd /opt/apps/solr-8.11.2/ranger_audits_conf
# 압축 해제
tar xvfz ranger-2.4.0-solr_audit_conf.tar.gz
# 기존 압축 파일 삭제
rm -f ranger-2.4.0-solr_audit_conf.tar.gz
# config 폴더를 solr-cloud znode에 추가
/opt/apps/solr-8.11.2/server/scripts/cloud-scripts/zkcli.sh \
-cmd upconfig \
-zkhost mast01:2181,mast02:2181,mast03:2181/solr-cloud \
-confname ranger_audits \
-confdir /opt/apps/solr-8.11.2/ranger_audits_conf
정상적으로 config 폴더가 업로드되었을 시 solr ui에서 인식합니다. mast01,mast02,mast03:8983
혹은 zookeeper cli를 통해 확인할 수 있습니다. /opt/apps/zookeeper-3.5.10/bin/zkCli.sh -> ls /solr-cloud/configs
3. 사전준비 (solr collection생성 2)
action server: mast02
user: hadoop
pwd: /opt/apps/solr-8.11.2/ranger_audits_conf
cmd:
solr cloud중 한 서버의 ui로 들어갑니다.
mast01:8983 or mast02:8983 or mast03:8983
우측 Collections -> Add Collection 클릭 후 다음과 같이 생성하였습니다.
(zookeeper, solr가 3대여서 복제 생성 및 저장하였습니다.)
4. ranger-admin 파일 압축 해제
action server: mast02
user: root
pwd: /opt/apps/
cmd:
# ranger-admin파일 역시 ranger 소스를 빌드한 폴더 내 존재합니다.
# mast02서버에서 ranger 소스를 빌드하였습니다.
cp /opt/apps/ranger/target/ranger-2.4.0-admin.tar.gz /opt/apps/
cd /opt/apps
# 압축 해제 및 권한 부여
tar xvfz ranger-2.4.0-admin.tar.gz
chown -R hadoop:hadoop ./ranger-2.4.0-admin/
# 계정 전환 및 경로 이동
su - hadoop
cd /opt/apps/ranger-2.4.0-admin/
5. ranger-admin 설정파일 수정 및 파일, 폴더 생성
action server: mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-admin
cmd:
# 아래 값 수정
vi install.properties
PYTHON_COMMAND_INVOKER=python2
DB_FLAVOR=POSTGRES
SQL_CONNECTOR_JAR=/opt/apps/ranger-2.4.0-admin/postgresql-42.2.6.jar
db_root_user=postgres
db_root_password=postgres
db_host=mast02:14325
db_name=ranger
db_user=ranger
db_password=ranger
audit_solr_urls=http://mast02:8983/solr/ranger_audits
audit_solr_password=
audit_solr_zookeepers=mast01:2181,mast02:2181,mast03:2181/solr-cloud
audit_solr_collection_name=ranger_audits
audit_solr_config_name=ranger_audits
audit_solr_configset_location=
audit_solr_no_shards=3
audit_solr_no_replica=3
# ranger admin 웹 UI
policymgr_external_url=http://mast02:6080
unix_user=hadoop
unix_user_pwd=hadoop
unix_group=hadoop
hadoop_conf=/opt/apps/hadoop-3.3.5/etc/hadoop
RANGER_PID_DIR_PATH=/opt/apps/ranger-2.4.0-admin/pids
# 저장
# 위 설정 값대로 파일 복사
cp postgresql-42.2.6.jar /opt/apps/ranger-2.4.0-admin
# pid폴더 생성
mkdir /opt/apps/ranger-2.4.0-admin/pids
6. ranger-admin setup
action server: mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-admin
cmd:
./setup.sh
* 기본적으로 ranger 설치 시 /etc/init.d에 등록하려고합니다.
* 해당 가이드에서는 ranger admin을 hadoop 계정으로 실행시키기 위해 hadoop 계정으로 설치하였으며
* 위 명령어 실행 시, 여러 에러가 나오지만 대부분 /etc/init.d 등록 등 root권한이 없기때문에 발생하는 에러입니다.
* root로 설치 시 ranger-admin이라는 변수가 환경변수로 등록됩니다.
* 재차 말씀드리지만 본 가이드에서는 hadoop계정으로 ranger admin을 실행시킬 것 이기떄문에 hadoop 계정으로 설치합니다.
setup 완료 확인
ll
# table 생성 확인
su - postgres
psql -p 14325
\c ranger
\dt
7. ranger-admin 설정 파일 추가
action server: mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-admin
cmd:
# ranger-admin 로그 시간대를 설정합니다.
vi conf/ranger-admin-env-timezone.sh
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Seoul"
# 실행권한을 부여합니다.
chmod +x conf/ranger-admin-env-timezone.sh
8. ranger-admin 실행
action server: mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-admin
cmd:
/opt/apps/ranger-2.4.0-admin/ews/ranger-admin-services.sh start
mast02:6080 접속 확인 (admin/admin)
다음 포스팅에서 ranger-usersync를 연동해보도록 하겠습니다.
감사합니다.