HTTPS認証を使用してPixarのトラクターを実行するためのフレームワーク。Freeipaまたは別のPAMモジュールを介して安全なログインを可能にします。コンテナには、特権的なアクセスが必要です
X-Forwarded-Forヘッダーを尊重しないため、プロキシコンテナはホストネットワークを使用して、透明なTLS終了プロキシとして機能しますホストマシン(これはRocky 8.8でテストされています)で、DockerとDocker Composeをインストールします。フリーパまたは別の認証サービスでホストを登録します。この構成は、HBAC(ホストベースのアクセス制御)ルールを使用して、すべてのユーザーがtractor-sssdという名前のカスタムサービスを介してログインできるようにします。これにより、トラクターWebコンソールのログインが可能になりますが、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/ディレクトリに配置します(このリポジトリで)。トラクターが期待するファイルのリストは次のとおりです。
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を定義してください。これらは、乗組員同期サービスがチェックするUNIXグループの名前です。 PIXAR_LICENSE_FILE変数を使用する場合は、ここで定義することもできます。構成の例:
ADMIN_GROUP=admin
PIXAR_LICENSE_FILE=9010@licenseserver
WRANGLER_GROUP=wrangler
admin_user.txtという名前のファイルを作成します。これには、グループがFreeIPAで更新された後、乗組員同期モジュールが乗組員を自動化するために使用する資格情報が含まれています。このファイルにアクセス許可を適切に設定して、 dockerグループやその他の必要な管理者ユーザーによってのみ表示されるようにしてください。
username
password
tractor-baseフォルダーのPixarから取得したトラクターのインストールRPMを配置します。 (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 "
}クルーシンクモジュールは、 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を介してエンジンと適切に通信するには、トラクターのベータPython 3ビルドを使用する必要があります。この執筆時点で、このビルドはRendermanフォーラムからダウンロードできます。 Python 3 APIは、最近のRenderman Proサーバーのインストールにも含まれています。
ファイルTrHttpRPC.pyは、このgitリポジトリ( TrHttpRPC.py.patch )に含まれるパッチを使用して、SSL-secured接続を使用するためにパッチを適用する必要があります。これは、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参照