إطار لتشغيل جرار Pixar مع مصادقة HTTPS ، مما يسمح بتسجيل الدخول الآمن عبر Freeipa أو وحدة PAM أخرى. تحتاج الحاويات إلى بعض الوصول المميز ، مثل
X-Forwarded-For ، وبالتالي فإن حاوية الوكيل تستخدم الشبكة المضيفة من أجل العمل كبديل شفاف وإنهاء TLS على الجهاز المضيف (تم اختبار هذا باستخدام Rocky 8.8) ، وتثبيت Docker و Docker. تسجيل المضيف في Freeipa أو خدمة مصادقة أخرى. يستخدم هذا التكوين قاعدة HBAC (التحكم في الوصول المستند إلى المضيف) مما يسمح لجميع المستخدمين بتسجيل الدخول عبر خدمة مخصصة تسمى tractor-sssd . هذا يسمح بتسجيل الدخول إلى وحدة التحكم في الجرار ولكن يقيد تسجيل الدخول عبر SSH.
تستخدم حاوية NGINX IPTABLES لتكوين وكيلها الشفاف ، ولكن ليس لديها إذن إلى modprobe تحتاج إلى وحدات kernel على نظام المضيف. لتمكينهم على نظام التشغيل ، قم بتشغيل sudo modprobe iptable_mangle x_tables xt_mark
لتمكين هذه الوحدات على التمهيد ، قم بإنشاء ملف /etc/modules-load.d/tractor-https.conf مع المحتويات التالية:
iptable_mangle
x_tables
xt_mark
استنساخ هذا الريبو. ضع جميع ملفات تكوين الجرار في 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
لتجنب النزاعات مع حاوية الوكيل المشهورة بالشبكة التي تستمع إلى المنفذ 80 ، يجب تشغيل محرك الجرار على المنفذ 8080 (أو منفذ آخر من اختيارك ، ستحتاج إلى تكوين هذا يدويًا). للقيام بذلك ، قم بتعيين ListenerPort في config/tractor.config :
{
...
"ListenerPort" : 8080 ,
...
} إنشاء ملف يسمى env في الدليل الرئيسي. إذا كنت تخطط لاستخدام وحدة Sync Crew ، حدد WRANGLER_GROUP و ADMIN_GROUP هنا. هذه هي أسماء مجموعة UNIX التي ستتحقق منها خدمة مزامنة الطاقم. إذا كنت تستخدم متغير PIXAR_LICENSE_FILE ، فيمكنك أيضًا تحديده هنا. مثال التكوين:
ADMIN_GROUP=admin
PIXAR_LICENSE_FILE=9010@licenseserver
WRANGLER_GROUP=wrangler
إنشاء ملف اسمه admin_user.txt . يحتوي هذا على بيانات الاعتماد التي ستستخدمها وحدة Sync Crew لإعادة التحميل تلقائيًا إلى تكوين الطواقم بعد تحديث المجموعات في Freeipa. تأكد من تعيين أذونات على هذا الملف بشكل مناسب حتى لا يمكن رؤيته إلا من قبل مجموعة docker وغيرهم من مستخدمي المسؤولين اللازمة:
username
password
ضع عملية تثبيت الجرار الخاصة بك تم الحصول عليها من 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 " ]
},
...
} لتعطيل وحدة مزامنة الطاقم ، قم بالتعليق على كتلة 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 من الجرار. اعتبارًا من كتابة هذه السطور ، يمكن تنزيل هذا البناء من منتديات Renderman. يتم تضمين Python 3 API أيضًا مع تثبيتات Renderman Pro Server الحديثة.
يجب تصحيح ملف TrHttpRPC.py للاستفادة من اتصال SSL المضمّن باستخدام التصحيح المدرج في هذا git repo ( TrHttpRPC.py.patch ). يعتمد هذا على مكتبات 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 (تم تكوين
path/to/tractor-blade3b1.pyz --engine=tractor-engine.example.com:443مراجع