HTTPS 인증이있는 Pixar 트랙터를 실행하기위한 프레임 워크로 FreeIPA 또는 다른 PAM 모듈을 통해 보안 로그인 할 수 있습니다. 컨테이너는 특권 액세스가 필요합니다
X-Forwarded-For 헤더를 존중하지 않으므로 프록시 컨테이너는 투명한 TLS와의 말하기 프록시로 사용하기 위해 호스트 네트워크를 사용합니다. 호스트 컴퓨터에서 (이것은 Rocky 8.8로 테스트되었습니다) Docker 및 Docker Compose를 설치하십시오. FreeIPA 또는 다른 인증 서비스에 호스트를 등록하십시오. 이 구성은 HBAC (호스트 기반 액세스 제어) 규칙을 사용하여 모든 사용자가 tractor-sssd 라는 사용자 정의 서비스를 통해 로그인 할 수 있습니다. 이를 통해 트랙터 웹 콘솔 로그인이 가능하지만 SSH를 통해 로그인을 제한합니다.
Nginx 컨테이너는 iptables를 사용하여 투명한 프록시를 구성하지만 호스트 시스템에서 필요한 커널 모듈에 대한 modprobe 이 없습니다. 실행중인 시스템에서이를 활성화하려면 sudo modprobe iptable_mangle x_tables xt_mark 실행하십시오.
부팅에서 이러한 모듈을 활성화하려면 다음 내용이있는 /etc/modules-load.d/tractor-https.conf 파일을 만듭니다.
iptable_mangle
x_tables
xt_mark
이 저장소를 복제하십시오. 모든 트랙터 구성 파일을 config/ 디렉토리에 배치하십시오 (이 repo). 다음은 트랙터가 기대하는 파일의 목록입니다.
blade.config
crews.config
db.config
limits.config
menus.config
postgresql.conf
shared.linux.envkeys
shared.macosx.envkeys
shared.windows.envkeys
tractor.config
trSiteDashboardFunctions.js
trSiteFunctions.py
trSiteLdapLoginValidator.py
trSiteLoginValidator.py
포트 80에서 호스트 네트워크 프록시 컨테이너와 충돌하지 않으려면 트랙터 엔진이 포트 8080 (또는 선택한 다른 포트에서 실행해야합니다 .이를 수동으로 구성해야 함). 이렇게하려면 config/tractor.config 에서 ListenerPort 설정하십시오.
{
...
"ListenerPort" : 8080 ,
...
} 기본 디렉토리에서 env 라는 파일을 만듭니다. 승무원 동기화 모듈을 사용할 계획이라면 여기에서 WRANGLER_GROUP 및 ADMIN_GROUP 정의하십시오. Crew Sync Service가 확인할 UNIX 그룹 이름입니다. PIXAR_LICENSE_FILE 변수를 사용하는 경우 여기에서 정의 할 수도 있습니다. 예제 구성 :
ADMIN_GROUP=admin
PIXAR_LICENSE_FILE=9010@licenseserver
WRANGLER_GROUP=wrangler
admin_user.txt 라는 파일을 만듭니다. 여기에는 Crew Sync 모듈이 그룹이 FreeIPA에서 업데이트 된 후 승무원 구성을 자동으로로드하는 데 사용할 자격 증명이 포함되어 있습니다. docker Group 및 기타 필요한 관리자 만 볼 수 있도록이 파일에 대한 권한을 적절하게 설정하십시오.
username
password
트랙터 설치 RPM을 Pixar에서 tractor-base 폴더에 배치하십시오. (Docker는 Tractor-2.4.x86_64.rpm 이라는 파일을 찾습니다)
SSL 인증서 파일 cert.crt 및 cert.key 의 이름을 지정하여 certs 폴더에 배치하십시오.
이 결국 디렉토리는 다음과 같습니다.
.
├── admin_user.txt
├── certs
│ ├── cert.crt
│ └── cert.key
├── config
│ ├── blade.config
│ ├── crews.config
│ ├── db.config
│ ├── limits.config
│ ├── menus.config
│ ├── postgresql.conf
│ ├── shared.linux.envkeys
│ ├── shared.macosx.envkeys
│ ├── shared.windows.envkeys
│ ├── tractor.config
│ ├── trSiteDashboardFunctions.js
│ ├── trSiteFunctions.py
│ ├── trSiteLdapLoginValidator.py
│ └── trSiteLoginValidator.py
├── crew-sync.sh
├── docker-compose.yml
├── env
├── proxy
│ ├── networking.sh
│ └── nginx.conf
├── README.md
├── tractor-base
│ ├── Dockerfile
│ ├── sssd-tractor
│ └── Tractor-2.4.x86_64.rpm
└── TrHttpRPC.py.patch
config/crews.config 에서 ValidLogins 외부 로그인으로 변경하고 SitePasswordValidator internal:PAM:sssd-tractor :
{
...
"Crews" : {
"ValidLogins" : [ " @externlogins " ],
...
},
...
"SitePasswordValidator" : " internal:PAM:sssd-tractor "
} Crew-Sync 모듈은 env 파일에 정의 된 UNIX 그룹에 대한 업데이트를 확인하고 해당 사용자 이름과 함께 파일 config/admins 및 config/wranglers 채 웁니다. 이러한 파일을 config/crews.config 에 포함 시키려면 다음을 변경하십시오.
{
...
"Crews" : {
...
"Wranglers" : [ " @merge('wranglers') " , " hard-coded users or other config " ],
"Administrators" : [ " @merge('admins') " , " hard-coded users or other config " ]
},
...
} 승무원 동기화 모듈을 비활성화하려면 docker-compose.yml 에서 crew-sync 블록에 주석하십시오.
마지막으로 컨테이너를 빌드하고 시작할 수 있어야합니다.
docker compose build
docker compose up -d
# check that things are running properly
docker compose logs트랙터 블레이드가 SSL을 통해 엔진과 올바르게 통신하려면 베타 파이썬 3 트랙터 빌드를 사용해야합니다. 이 글을 쓰는 시점 에서이 빌드는 Renderman 포럼에서 다운로드 할 수 있습니다. Python 3 API는 최근 Renderman Pro Server 설치에도 포함되어 있습니다.
TrHttpRPC.py 파일은이 git repo ( TrHttpRPC.py.patch )에 포함 된 패치를 사용하여 SSL에 해당하는 연결을 사용하기 위해 패치해야합니다. 이는 Package Manager를 통해 설치할 수있는 OpenSSL 10 라이브러리에 의존합니다 (Rocky 8.8에서 테스트 된 아래 명령).
Renderman Pro 서버 설치를 패치하려면 :
dnf install -y compat-openssl10
patch /opt/pixar/RenderManProServer-XX.Y/bin/tractor/base/TrHttpRPC.py ./TrHttpRPC.py.patch트랙터 3 베타 블레이드 패치 :
dnf install -y compat-openssl10
# as of this writing, the beta build is `tractor-blade3b1.2308.pyz`
# unzip the tractor-blade python executable
mkdir tractor-blade3b1.2308
unzip tractor-blade3b1.2308.pyz -d tractor-blade3b1.2308
cd tractor-blade3b1.2308
# patch the file
patch ./TrHttpRPC.py path/to/TrHttpRPC.py.patch
# re-zip the executable (this assumes that you have rmanpy3 in your PATH)
cd ../
rmanpy3 -m zipapp tractor-blade3b1.2308 -p ' /usr/bin/env rmanpy3 ' tractor-blade 프로세스 (Sysconfig를 통해 구성)에 대한 플래그에서 트랙터 엔진의 포트 번호와 완전한 자격을 갖춘 호스트 이름을 지정하십시오 (SSL은 호스트 이름이 완전히 자격을 갖추어야 함), 예를 들어
path/to/tractor-blade3b1.pyz --engine=tractor-engine.example.com:443참조