Skip to content

lvnacy/lvnatic.debian

ephemeralrogue.debian-emblem

lvnatic.debian

lvnatic.debian is an Ansible collection written to provision
Debian 12+ virtual machines locally.



The Quick and Dirty

This collection is written for the express purpose of provisioning Debian v12+ virtual machines (VM) locally. The primary playbook prepares the environment for and installs the following packages:

and configures Docker to run in Rootless Mode and git with my preferred options. Additionally, other playbooks are provided to install:

That's pretty much it at the moment!

Note

This isn't lunatic in any sense. I just liked the name.

Contents

Usage

This collection is not yet ready to be uploaded to Ansible Galaxy, therefore the best way to make use of it at the moment is to clone it to the machine on which you want to locally run playbooks.
note: the {{ user }} variable assumes you are using the same username on your system as you will use for git.

  1. To get started, you'll need to set up passwordless sudo:

    sudo visudo

    running a playbook will assume passwordless sudo, as Ansible will not prompt you to enter a password at each juncture it requires. if you like, you can return and turn off passwordless sudo once you've completed running the playbooks.

    visudo provides checks on this file to ensure syntax is appropriate. use other edits at your own discretion, caution, peril, whatever. find the line defining the sudo group's permissions and change it to:

    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL

    save and exit.

  2. Install Ansible on the machine you want to provision, as the playbooks are all written to run locally (hosts: localhost):

    sudo apt update
    sudo apt install ansible
  3. Clone this repository and navigate to its directory:

    git clone https://github.com/ephemeralrogue/ephemeralrogue.debian.git
    cd /path/to/repository/
  4. Copy vars.yaml.template and rename to vars.yaml. Fill in the blanks.


back to contents

Running Playbooks Locally

The main playbook is provision_debian.yaml and can be run as such:

ansible-playbook -i 127.0.0.1, playbooks/provision_debian_bookworm.yaml

where "127.0.0.1" sets the targe as localhost. also, that comma is fucking necessary. i failed to run this so many times when i was testing it because i didn't know about that stupid comma. this playbook will provide a basic set of development tools for both Bookworm and Trixie.

Other playbooks you can run to install apps independently are:

  • install_code.yaml
  • install_docker.yaml
  • install_gh.yaml
  • install_kdeconfigsddm.yaml
  • install_kubectl.yaml
  • install_kvantum.yaml
  • install_minikube.yaml
  • install_protonvpn.yaml
  • install_warp.yaml

To install VS Code, Docker, GitHub CLI, kde-config-sddm (for Debian Trixie), kubectl, Kvantum Manager (for Debian Trixie), Minikube, ProtonVPN, and Warp Terminal, respectively. note that kubectl will be installed as part of the Minikube playbook. in addtion, the following playbooks can be run on their own:

  • git_config.yaml
  • load_apt_keys.yaml
  • remove_apt_packages.yaml
  • rootless_docker.yaml

More playbooks will be added as other tools become more prominent in my development, design, or general enjoyment process.

Note

When running the main provisioning or git config playbooks, you will be prompted to designate default branch and remote names.

back to contents

Running Playbooks On Remote Hosts

if you want to run these playbooks on remote nodes, you'll need to edit the hosts directive on the playbooks. checkout a new branch, make your changes, and run from there. instead of passing an IP address with the inventory flag -i, you can pass an inventory file or hosts directive.

back to contents

Project Updates

  • warp terminal tasks were added to retrieve gpg key and add apt repository to source list. Warp install is now automated.
  • with some exception, command and shell tasks were migrated to their respective get_url and apt_repository modules.
  • playbooks and tasks were entirely refactored to accommodate the setup and installation of individual apps and provide a framework for adding new playbooks.
  • ansible-lint GitHub Actions workflow was added to improve adherence to Ansible community guidelines for Ansible Collections.
  • created playbook to set up rootless Docker
  • created playbook to install configuration settings for SDDM when using KDE Plasma 6 on Debian testing version
  • created playbook to enable clipboard and directory sharing through VirtFS with, UTM when spinning up VMs
  • reconfigured project to support Debian 12+

See CHANGELOG for full details.

back to contents

Future Development

  • Find cmake module with support for current Ansible versions
  • Write unit and integration tests where applicable
  • Set up debug points and prompts where applicable
  • Review existing cmake modules for possible inclusion

back to contents

Contributing

if you would like to contribute to this project, feel free to fork and write! please adhere to most best practices as developed by the Ansible community. submit a PR when you feel your work is ready. and please adhere to the code of conduct and contributing guidelines when discussing issues and proposed changes.

back to contents

About

Ansible collection for automated provisioning of local Debian 12+ virtual machines

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors