Skip to content

haydenk/ansible-role-security

Repository files navigation

Ansible Role: Security

Security hardening role for Linux systems.

Requirements

  • mise - Tool version manager
  • uv - Python package manager
  • Docker (for Molecule testing)

Quick Start

1. Install mise

curl https://mise.run | sh

2. Install uv

curl -LsSf https://astral.sh/uv/install.sh | sh

3. Set up the development environment

mise run setup

This will:

  • Install Python 3.14 and Ansible via mise
  • Create a virtual environment
  • Install all Python dependencies

Available Tasks

Run tasks using mise run <task>:

mise run setup          # Set up development environment
mise run install        # Install Python dependencies
mise run lint           # Run linters (ansible-lint, yamllint)
mise run test           # Run full Molecule test suite
mise run test-converge  # Run Molecule converge (faster for development)
mise run clean          # Clean up generated files and caches

You can also use mise tasks to see all available tasks.

Development Workflow

  1. Set up your environment:

    mise run setup
  2. Make changes to the role:

    • Edit files in tasks/, defaults/, handlers/, etc.
  3. Lint your changes:

    mise run lint
  4. Test with Molecule:

    # Quick iteration
    mise run test-converge
    
    # Full test suite
    mise run test
  5. Install pre-commit hooks (optional but recommended):

    uv run pre-commit install

Role Structure

ansible-role-security/
├── defaults/       # Default variables
├── tasks/          # Task definitions
├── handlers/       # Handler definitions
├── templates/      # Jinja2 templates
├── files/          # Static files
├── vars/           # Other variables
├── meta/           # Role metadata
└── molecule/       # Molecule test scenarios
    └── default/    # Default test scenario

Role Variables

Available variables are listed below, along with default values (see defaults/main.yml):

security_enabled: true

Dependencies

None.

Example Playbook

- hosts: servers
  become: true
  roles:
    - role: ansible-role-security

Testing

This role uses Molecule for testing.

Run all tests

mise run test

Quick iteration during development

mise run test-converge

Manual Molecule commands

uv run molecule create      # Create test instance
uv run molecule converge    # Run the role
uv run molecule verify      # Run verification tests
uv run molecule destroy     # Destroy test instance

License

GPL-3.0

Author Information

This role was created by [your_name].

About

Ansible role for Linux security hardening — supports Ubuntu, Debian, and RHEL/CentOS with Molecule testing

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

 
 
 

Contributors

Languages