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:

Installation

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!

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Glen Neff

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:

default:\
:passwd_format=sha512:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
: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.)

Glen Neff

Sorry, the comment editor butchered my whitespace & formatting.