- Jinja 100%
| .claude | ||
| changelogs | ||
| meta | ||
| molecule | ||
| playbooks | ||
| plugins | ||
| roles | ||
| .ansible-lint | ||
| .gitlab-ci.yml | ||
| AGENT.md | ||
| CHANGELOG.md | ||
| galaxy.yml | ||
| README.md | ||
Ansible Collection — silvarion.base
Description
The silvarion.base collection installs foundational Linux tools, runtime environments, and system services. It is designed to run early in a provisioning pipeline to establish a consistent baseline across Debian, Ubuntu, and Red Hat family systems before application-specific roles are applied.
Author: Jesus Alejandro Sanchez Davila Maintainer: Jesus Alejandro Sanchez Davila Email: jsanchez.consultant@gmail.com License: MIT
Supported Platforms
| Distribution | Versions |
|---|---|
| Alma Linux | 8, 9 |
| Rocky Linux | 8, 9 |
| Ubuntu | 20.04, 22.04, 24.04 |
| Debian | 11 (bullseye), 12 (bookworm) |
Roles
| Role | Description | Depends on |
|---|---|---|
tools |
Base CLI tools, editors, monitoring packages, user management | — |
snapd |
Snapcraft daemon installation and service management | — |
python3 |
Python 3, pip, and virtualenv | silvarion.base.tools |
java |
OpenJDK (JDK and/or JRE) | — |
nodejs |
Node.js via NVM (system-wide) | — |
homebrew |
Homebrew (Linuxbrew) | — |
Installation
From a Git Repository (requirements.yml)
Add the collection to your requirements.yml:
collections:
- name: https://gitlab.com/silvarion/ansible/collections/silvarion/base.git
type: git
version: main
Then install:
ansible-galaxy collection install -r requirements.yml
Directly via ansible-galaxy
ansible-galaxy collection install git+https://gitlab.com/silvarion/ansible/collections/silvarion/base.git
Usage
Minimal Playbook
---
- name: Provision baseline
hosts: all
gather_facts: true
become: true
roles:
- role: silvarion.base.tools
- role: silvarion.base.snapd
Full Example with All Roles
---
- name: Full workstation setup
hosts: workstations
gather_facts: true
become: true
roles:
- role: silvarion.base.tools
vars:
extra_users:
- name: devuser
password: "{{ 'secure-password' | password_hash }}"
shell: /bin/bash
groups:
- sudo
- users
create_home: true
passwordless_users:
- devuser
monitoring_tools:
- htop
- iotop
- role: silvarion.base.snapd
- role: silvarion.base.python3
vars:
python3_pip: true
python3_venv: true
- role: silvarion.base.java
vars:
java_jdk_install: true
java_jdk_version: 21
- role: silvarion.base.nodejs
vars:
nodejs_nvm_version: "0.39.5"
nodejs_nvm_node_version: "20.0.0"
- role: silvarion.base.homebrew
Using Specific Tags
Run only package installation tasks:
ansible-playbook playbook.yml --tags tools,common
Run only monitoring package installation:
ansible-playbook playbook.yml --tags monitoring
Run only user management:
ansible-playbook playbook.yml --tags users
Run only repository setup:
ansible-playbook playbook.yml --tags repos
Variables Summary
For a complete variable reference, see each role's README:
Testing
The collection was developed with Molecule using the Docker driver. To run tests locally:
cd roles/<role_name>
molecule test
Contributing
- Follow the conventions in CLAUDE.md for task naming, variable prefixes, and file structure.
- Use FQCN for all modules (
ansible.builtin.*). - Run
ansible-lintbefore submitting changes. - Update the relevant
README.mdandCLAUDE.mdwhen modifying a role.