No description
Find a file
Jesus Alejandro Sanchez Davila ca424da065 Added net-tools as standard package
2026-05-28 13:22:18 +02:00
.claude Initial commit 2026-05-18 18:23:28 +02:00
changelogs Initial commit 2026-05-18 18:23:28 +02:00
meta Initial commit 2026-05-18 18:23:28 +02:00
molecule Initial commit 2026-05-18 18:23:28 +02:00
playbooks Initial commit 2026-05-18 18:23:28 +02:00
plugins Initial commit 2026-05-18 18:23:28 +02:00
roles Added net-tools as standard package 2026-05-28 13:22:18 +02:00
.ansible-lint Initial commit 2026-05-18 18:23:28 +02:00
.gitlab-ci.yml Initial commit 2026-05-18 18:23:28 +02:00
AGENT.md Initial commit 2026-05-18 18:23:28 +02:00
CHANGELOG.md Initial commit 2026-05-18 18:23:28 +02:00
galaxy.yml Initial commit 2026-05-18 18:23:28 +02:00
README.md Initial commit 2026-05-18 18:23:28 +02:00

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

  1. Follow the conventions in CLAUDE.md for task naming, variable prefixes, and file structure.
  2. Use FQCN for all modules (ansible.builtin.*).
  3. Run ansible-lint before submitting changes.
  4. Update the relevant README.md and CLAUDE.md when modifying a role.