An Ansible playbook set for my personal needs: configuring WSL (Arch Linux) and a single VDS server (Ubuntu/Debian).
- package installation and Docker setup
- connection of AUR and Chaotic-AUR for Arch Linux
- non-root user setup
- Fish shell configs for the user
- Pay Respects for user's shell (Fish or Bash)
- client- and server-side SSH setup
- ufw and Fail2Ban configs
-
Clone the repository and enter its directory.
-
Install the uv package manager using one of the available methods. For example, on Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | shYou can also use the package provided by your distribution's package manager, if exists (e.g. for Arch Linux).
- Install Ansible:
uv sync --no-devThen activate the .venv virtual environment.
You can also use Ansible packages provided by your distribution's package manager.
- Install the project's Ansible dependencies:
ansible-galaxy install -r requirements.yaml- Create
inventory/group_vars/all/secrets.yamlbased on the example. - Run playbooks with:
ansible-playbook -u root playbooks/<PLAYBOOK_FILE> # if the user has not been created yet
ansible-playbook playbooks/<PLAYBOOK_FILE> --ask-become-pass- Install the full dependency set:
uv sync- Install the pre-commit hook for linting Ansible and YAML files:
pre-commit install- To format code, run:
ansible-lint --fix
yamllint .