How to Run Orchestrator on FreeBSD

run Orchestrator on FreeBSDIn this post, I am going to show you how to run Orchestrator on FreeBSD. The instructions have been tested in FreeBSD 11.3 but the general steps should apply to other versions as well.

At the time of this writing, Orchestrator doesn’t provide FreeBSD binaries, so we will need to compile it.

Preparing the Environment

The first step is to install the prerequisites. Let’s start by installing git:

We also need the go and rsync packages in order to compile:

Compiling Orchestrator

Now it is time to clone the repository from GitHub:

The next step is to compile Orchestrator. According to the manual, we need to run script/build as follows:


Now, we have to move the compiled binary (and the additional files) to the final destination directory. In this case, I chose to use /usr/local/orchestrator.

We also need to create both an init script and operating system user for Orchestrator, for example:

We shouldn’t forget to set the proper permissions for the init script and the orchestrator directory:

Now let’s create a sample configuration file using the template available in GitHub:

Finally, let’s configure Orchestrator to start at boot time, and start the service:

Happy Orchestrating!

Share this post

Comments (3)

  • Glen Neff Reply

    One of the beauties of FreeBSD is the project actually follows its own hier(7) man page, unlike. . . just about every Linux Distribution or commercial UNIX platform. The “/” prefix is for for the OS utils to get the OS booted, filesystems mounted, and get on the network. The “/usr” prefix is the rest of the OS, and the “/usr/local” prefix is the default location for ports/package managed software. Your instructions to create a “/usr/local/orchestrator” directory, then break the prefix hierarchy created by it’s own build process, knock heads with this clean separation.

    I would instead recommend creating an “/opt” or “/usr/opt” prefix for manually built/installed or commercial software. (I’ll stick with “/usr/opt” for this example.)

    Your orchestrator & resources binaries can go into /usr/opt/bin/. Your init script can be “/usr/opt/etc/rc.d/orchestrator” then you can tell the OS about this location by placing this line in /etc/rc.conf:

    local_startup=”/usr/local/etc/rc.d /usr/opt/etc/rc.d” # startup script dirs.

    You can then add the /usr/opt/bin directory to the system path, if you wish, by modifying /etc/login.conf:

    :path=/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin /usr/opt/bin ~/bin:\

    (Don’t forget to run ‘cap_mkdb /etc/login.conf’ to make it official.)

    February 19, 2020 at 10:25 am
    • Glen Neff Reply

      Sorry, the comment editor butchered my whitespace & formatting.

      February 19, 2020 at 10:26 am
      • Ivan Groenewold Reply

        Hi Glen, thanks for chiming in. I will update the tutorial based on your comments when I get a chance.

        February 24, 2020 at 6:54 am

Leave a Reply