Dependencies on operator’s machine

In order to operate a wire-server installation, you’ll need a bunch of software like Ansible, kubectl and Helm.

Together with a matching checkout of the wire-server-deploy repository, containing the Ansible Roles and Playbooks, you should be good to go.

Checkout the repository, including its submodules:

git clone --branch master https://github.com/wireapp/wire-server-deploy.git
cd wire-server-deploy
git submodule update --init --recursive

We provide a container containing all needed tools for setting up and interacting with a wire-server cluster.

Ensure you have Docker >= 20.10.14 installed, as the glibc version used is incompatible with older container runtimes.

Your Distro might ship an older version, so best see how to install docker.

To bring the tools in scope, we run the container, and mount the local wire-server-deploy checkout into it.

Replace the container image tag with the commit id your wire-server-deploy checkout is pointing to.

WSD_COMMIT_ID=cdc1c84c1a10a4f5f1b77b51ee5655d0da7f9518 # set me
WSD_CONTAINER=quay.io/wire/wire-server-deploy:$WSD_COMMIT_ID

sudo docker run -it --network=host \
     -v ${SSH_AUTH_SOCK:-nonexistent}:/ssh-agent \
     -v $HOME/.ssh:/root/.ssh \
     -v $PWD:/wire-server-deploy \
     -e SSH_AUTH_SOCK=/ssh-agent \
     $WSD_CONTAINER bash

# Inside the container
bash-4.4# ansible --version
ansible 2.9.12

Once you’re in there, you can move on to installing kubernetes.

(Alternative) Installing dependencies using Direnv and Nix

Warning

This is an alternative approach to the above “wrapping container” one, which you should only use if you can’t get above setup to work.

  1. Install Nix

  2. Install Direnv

  3. Optionally install the Wire cachix cache to download binaries

Now, enabling direnv should install all the dependencies and add them to your PATH. Every time you cd into the wire-server-deploy directory, the right dependencies will be available.

direnv allow

ansible --version
ansible 2.9.12