The controller machine will be used for deployment and remote administration. The controller stores all procedures (
roles) and configuration values (
vars) for your specific setup, and deploys it to remote hosts over SSH.
Any PC, dedicated server, VM or container where a SSH client, Python >=3.9 and Bash are available can be used as a controller.
Roles can be used from the
xsrv command-line tool, or as a collection in your own ansible playbooks.
# install requirements (example for debian-based systems)
sudo apt update && sudo apt install git bash python3-venv python3-pip python3-cryptography openssh-client pwgen wget
# download the main script and (optional) copy it to your $PATH
chmod a+x xsrv
sudo cp xsrv /usr/local/bin/
# (optional) download and install the tab/auto-completion script
chmod a+x xsrv-completion.sh
sudo cp xsrv-completion.sh /etc/bash_completion.d/
# generate a SSH key pair if not already done
ssh-keygen -b 4096
# authorize your SSH key on the remote user account
# replace 'deploy' with the user created during server preparation
# create a new project
You can then setup your first project.