เฟรมเวิร์กสำหรับเรียกใช้รถแทรกเตอร์ของพิกซาร์ด้วยการตรวจสอบ HTTPS ช่วยให้การเข้าสู่ระบบที่ปลอดภัยผ่าน FreeIPA หรือโมดูล PAM อื่น คอนเทนเนอร์ต้องการการเข้าถึงที่ได้รับสิทธิพิเศษเช่น
X-Forwarded-For ดังนั้นคอนเทนเนอร์พร็อกซีใช้เครือข่ายโฮสต์เพื่อทำหน้าที่เป็นพร็อกซีที่โปร่งใส บนเครื่องโฮสต์ (สิ่งนี้ได้รับการทดสอบด้วย 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
โคลน repo นี้ วางไฟล์การกำหนดค่าแทรคเตอร์ทั้งหมดของคุณใน config/ directory (ใน repo นี้) นี่คือรายการของ Files Tractor คาดว่า:
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 (หรือพอร์ตอื่นที่คุณเลือกคุณจะต้องกำหนดค่าด้วยตนเอง) ในการทำเช่นนี้ให้ตั้งค่า ListenerPort ใน config/tractor.config :
{
...
"ListenerPort" : 8080 ,
...
} สร้างไฟล์ชื่อ env ในไดเรกทอรีหลัก หากคุณวางแผนที่จะใช้โมดูล Sync Crew ให้กำหนด WRANGLER_GROUP และ ADMIN_GROUP ที่นี่ นี่คือชื่อกลุ่ม UNIX ที่บริการ Sync Crew จะตรวจสอบ หากคุณใช้ตัวแปร PIXAR_LICENSE_FILE คุณสามารถกำหนดได้ที่นี่ ตัวอย่างการกำหนดค่า:
ADMIN_GROUP=admin
PIXAR_LICENSE_FILE=9010@licenseserver
WRANGLER_GROUP=wrangler
สร้างไฟล์ชื่อ admin_user.txt สิ่งนี้มีข้อมูลรับรองว่าโมดูลซิงค์ลูกเรือจะใช้เพื่อปรับการกำหนดค่าลูกเรือโดยอัตโนมัติหลังจากที่กลุ่มได้รับการอัปเดตใน freeIPA ตรวจสอบให้แน่ใจว่าได้ตั้งค่าสิทธิ์ในไฟล์นี้อย่างเหมาะสมเพื่อให้สามารถเห็นได้โดยกลุ่ม docker และผู้ใช้งานที่จำเป็นอื่น ๆ :
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 ตรวจสอบการอัปเดตของกลุ่ม Unix ที่กำหนดไว้ในไฟล์ env และเติมไฟล์ 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 " ]
},
...
} หากต้องการปิดใช้งานโมดูล Sync Crew ให้แสดงความคิดเห็นบล็อก crew-sync ใน docker-compose.yml
ในที่สุดคุณควรจะสามารถสร้างและเริ่มคอนเทนเนอร์:
docker compose build
docker compose up -d
# check that things are running properly
docker compose logsเพื่อให้ใบมีดแทรคเตอร์สามารถสื่อสารกับเครื่องยนต์ผ่าน SSL ได้อย่างถูกต้องเราจำเป็นต้องใช้ Beta Python 3 Build of Tractor จากการเขียนนี้งานสร้างนี้สามารถดาวน์โหลดได้จากฟอรัมเรนเดอร์แมน Python 3 API นั้นมาพร้อมกับการติดตั้งเซิร์ฟเวอร์ Renderman Pro ล่าสุด
ไฟล์ TrHttpRPC.py จำเป็นต้องได้รับการแก้ไขเพื่อใช้การเชื่อมต่อที่ปลอดภัย SSL โดยใช้แพตช์ที่รวมอยู่ใน GIT repo นี้ ( TrHttpRPC.py.patch ) สิ่งนี้ขึ้นอยู่กับไลบรารี OpenSSL 10 ซึ่งสามารถติดตั้งผ่านตัวจัดการแพ็คเกจ (ด้านล่างคำสั่งที่ทดสอบบน Rocky 8.8)
ในการแก้ไขการติดตั้ง Renderman Pro Server:
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การอ้างอิง