Skip to content

CowDogMoo/ansible-collection-workstation

Repository files navigation

Ansible Collection: CowDogMoo Workstation

License Pre-Commit Molecule Test Renovate

This Ansible collection provides a comprehensive setup for my workstation environment, covering various aspects, including user setup, package management, ZSH configuration, VNC setup, ASDF version manager, and various cybersecurity tools.

Architecture Diagram

Architecture

Requirements

  • Ansible 2.15 or higher

Installation

Install latest version of the Workstation collection:

ansible-galaxy collection install git+https://github.com/CowDogMoo/ansible-collection-workstation.git,main

Alternatively, you can build the collection locally and install it from the generated tarball:

ansible-galaxy collection build --force && \
  ansible-galaxy collection install cowdogmoo-workstation-*.tar.gz -p ~/.ansible/collections --force --pre

Roles

ASDF

Installs and configures ASDF, a version manager for multiple language runtimes.

User Setup

Sets up user accounts with optional sudo privileges on Unix-like systems.

Package Management

Manages package installations and cleanups on Debian-based and Red Hat-based systems.

Zsh Setup

Installs and configures Zsh with Oh-My-Zsh, setting up a robust shell environment.

VNC Setup

Configures VNC services for remote desktop access, including password management and service setup.

Logging

Creates logging directories and log rotation configurations for a provided path.

Usage

Include the roles from this collection in your playbook. Here's an example:

---
- name: Provision container
  hosts: localhost
  roles:
    - cowdogmoo.workstation.asdf
    - cowdogmoo.workstation.user_setup
    - cowdogmoo.workstation.package_management
    ...

Development

Setting Up Development Environment

To set up the development environment and install all required dependencies, including docsible for automatic documentation generation:

python3 -m pip install -r .hooks/requirements.txt

Documentation Generation

This project uses docsible to automatically generate documentation for Ansible roles. Documentation is generated automatically via pre-commit hooks when changes are made to role files.

Release Process

For information on creating new releases of this collection, see our Release Process Documentation.

License

This collection is licensed under the MIT License - see the LICENSE file for details.

Support

Authors

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5