Use network locations for AYON launcher and addons

TL;DR

You only need to set AYON_LAUNCHER_STORAGE_DIR to a network location.

Use Case: To use network locations for all render nodes.

The following guide was brought from Render node pull Ayon launcher from network | Discord
Many many thanks to @sjt for sharing us his setup.

Layout

/network/path/ayon
                |- addons
                |    |- ftrack_0.2.1
                |    |- openpype_3.17.4
                |    |- openpype_3.18.0
                |    `- ...
                |- builds
                |    |- ayon-launcher
                |    |    |- AYON-1.0.0-beta.3-linux
                |    |    |- AYON-1.0.0-beta.6-linux
                |    |    |- current_linux
                |    |    `- ...
                |    |- openpype_3.17.4
                |    |- openpype_3.18.2-rvx.5
                |    `- ...
                |- dependencies
                |    |- ayon_[date]_linux.zip
                |    `- ...
                `- run.sh

Step by step guide

I matched this layout on myside (windows).

  1. I created 3 empty folders in this path \\storage\studio\ayon : addons , builds , dependencies

  2. Installed ayon app in \\storage\studio\ayon\builds
    Screenshot 2024-01-18 211920

  3. Created a bat file to set my env vars and launch the app

    Deprecated

  4. Test it in CMD. It worked fine and ayon_launcher fetched necessary addons and dependencies in the specified paths in the bat file.

  5. Finally, Set Ayon Executable in deadline ayon plugin settings.

Thanks for this guide !
The same method could also be useful for workstations (not only render-farm).

Also, the shared location cannot be read-only, as this appears in your logs :
“Extracting \storage.…\openpype_3.18.2\client.zip \storage.…\openpype_3.18.2”
It may be a problem if you want to avoid people messing with server stuff.
Maybe a solution would be to execute it elsewhere the first time, then move it to the read-only share, but it would only work if the first process/extraction does not write the path somewhere in the processed files (absolute paths).

1 Like

The purpose of the build folder is a hacky one. What I further set up is that I threw out the contents of the addons (after Ayon downloads them) and put a symlink pointing to a folder within the build folder.
e.g.
/network/path/ayon/addons/openpype_3.18.2/openpype --> /network/path/ayon/builds/openpype_3.18.2-rvx.5 (in actuality I use relative symlinks, which work for windows clients, this is just clearer)

I can then update the folder /network/path/ayon/builds/openpype_3.18.2-rvx.5 rapidly (with rsync). So for smaller changes I can just update that build folder and not have to go through the package-upload-copy bundle-copy settings-mark bundle as production-have everyone restart ayon to download the new addon step.

However you can get into sketchy territory here having the addon 3.18.0 point to something like 3.19.1 which can be very confusing. so that is something to keep in mind.

1 Like