Kerangka kerja untuk menjalankan traktor Pixar dengan otentikasi HTTPS, memungkinkan login aman melalui freeipa atau modul PAM lainnya. Wadah membutuhkan akses istimewa, seperti
X-Forwarded-For , sehingga wadah proxy menggunakan jaringan host untuk berfungsi sebagai proxy yang transparan dan terminasi TLS Pada mesin host (ini telah diuji dengan Rocky 8.8), instal Docker dan Docker Compose. Daftarkan host di freeipa atau layanan otentikasi lainnya. Konfigurasi ini menggunakan aturan HBAC (Host Based Access Control) yang memungkinkan semua pengguna masuk melalui layanan khusus bernama tractor-sssd . Ini memungkinkan login konsol web traktor tetapi membatasi login melalui SSH.
Wadah Nginx menggunakan iptables untuk mengonfigurasi proxy transparannya, tetapi tidak memiliki izin untuk modul kernel yang dibutuhkan modprobe pada sistem host. Untuk mengaktifkannya pada sistem yang sedang berjalan, jalankan sudo modprobe iptable_mangle x_tables xt_mark
Untuk mengaktifkan modul ini saat boot, buat file /etc/modules-load.d/tractor-https.conf dengan konten berikut:
iptable_mangle
x_tables
xt_mark
Klone repo ini. Tempatkan semua file konfigurasi traktor Anda di config/ Directory (dalam repo ini). Berikut adalah daftar file yang diharapkan traktor:
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
Untuk menghindari konflik dengan wadah proxy jaringan host yang mendengarkan pada port 80, mesin traktor harus berjalan di port 8080 (atau port lain pilihan Anda, Anda perlu mengkonfigurasi ini secara manual). Untuk melakukan ini, atur ListenerPort di config/tractor.config :
{
...
"ListenerPort" : 8080 ,
...
} Buat file bernama env di direktori utama. Jika Anda berencana untuk menggunakan modul Sinkronisasi Kru, tentukan WRANGLER_GROUP dan ADMIN_GROUP di sini. Ini adalah nama grup UNIX yang akan diperiksa oleh layanan sinkronisasi kru. Jika Anda menggunakan variabel PIXAR_LICENSE_FILE , Anda juga dapat mendefinisikannya di sini. Contoh konfigurasi:
ADMIN_GROUP=admin
PIXAR_LICENSE_FILE=9010@licenseserver
WRANGLER_GROUP=wrangler
Buat file bernama admin_user.txt . Ini berisi kredensial yang akan digunakan oleh modul sinkronisasi kru untuk secara otomatis memuat konfigurasi kru setelah grup diperbarui di freeipa. Pastikan untuk mengatur izin dengan tepat pada file ini sehingga hanya dapat dilihat oleh grup docker dan pengguna admin yang diperlukan lainnya:
username
password
Tempatkan RPM instalasi traktor Anda yang diperoleh dari Pixar di folder tractor-base . (Docker mencari file bernama Tractor-2.4.x86_64.rpm )
Beri nama file sertifikat SSL Anda cert.crt dan cert.key dan letakkan di folder certs
Setelah semua ini, direktori Anda harus terlihat seperti ini:
.
├── 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
Dalam config/crews.config , ubah ValidLogins menjadi login eksternal, dan atur SitePasswordValidator ke internal:PAM:sssd-tractor :
{
...
"Crews" : {
"ValidLogins" : [ " @externlogins " ],
...
},
...
"SitePasswordValidator" : " internal:PAM:sssd-tractor "
} Modul kru-sync memeriksa pembaruan ke grup UNIX yang ditentukan dalam file env dan mengisi file config/admins dan config/wranglers dengan nama pengguna tersebut. Untuk memasukkan file -file ini ke dalam config/crews.config Anda. Config Buat perubahan berikut:
{
...
"Crews" : {
...
"Wranglers" : [ " @merge('wranglers') " , " hard-coded users or other config " ],
"Administrators" : [ " @merge('admins') " , " hard-coded users or other config " ]
},
...
} Untuk menonaktifkan modul sinkronisasi kru, komentari blok crew-sync di docker-compose.yml .
Akhirnya, Anda harus dapat membangun dan memulai wadah:
docker compose build
docker compose up -d
# check that things are running properly
docker compose logsAgar bilah traktor berkomunikasi dengan baik dengan mesin melalui SSL, kita perlu menggunakan beta python 3 build traktor. Pada tulisan ini, build ini dapat diunduh dari forum Renderman. API Python 3 juga disertakan dengan instalasi Renderman Pro Server baru -baru ini.
File TrHttpRPC.py perlu ditambal untuk memanfaatkan koneksi yang dijamin SSL menggunakan tambalan yang termasuk dalam repo git ini ( TrHttpRPC.py.patch ). Ini bergantung pada perpustakaan OpenSSL 10, yang dapat diinstal melalui manajer paket (di bawah perintah yang diuji pada Rocky 8.8).
Untuk menambal instalasi Renderman Pro Server:
dnf install -y compat-openssl10
patch /opt/pixar/RenderManProServer-XX.Y/bin/tractor/base/TrHttpRPC.py ./TrHttpRPC.py.patchUntuk menambal traktor 3 beta bilah:
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 ' Dalam bendera untuk proses tractor-blade (dikonfigurasi melalui sysconfig atau sebaliknya), pastikan untuk menentukan nomor port dan nama host yang memenuhi syarat dari mesin traktor (SSL mengharuskan nama host untuk memenuhi syarat sepenuhnya), misalnya
path/to/tractor-blade3b1.pyz --engine=tractor-engine.example.com:443Referensi