# apenella/go-ansible

Go-ansible is a Go package that enables the execution of ansible-playbook or ansible commands directly from Golang applications. It supports a wide range of options for each command, enabling smooth integration of Ansible functionality into your projects.

Repository: https://github.com/apenella/go-ansible
Canonical: https://ross.abutalabs.com/products/go-ansible
Language: Go
License: MIT
License Family: permissive
Topics: ansible, golang, golang-library, ansible-playbook
Last push: 2026-09-02T07:46:49+00:00

## Health v2 (maintenance only)
Score: 85/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 100, release rhythm 56, longevity 100
- inputs: {"age_days": 2648, "days_push": 0, "days_rel": 293, "gap_med": 23, "n_releases_24m": 6}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1118, forks 146 (observed 2026-09-03T02:15:09.228726+00:00)

## What it is
go-ansible is a Go library that wraps the Ansible CLI so Go applications can execute commands like ansible-playbook, ansible, ansible-galaxy, and ansible-inventory. It supports workflow chaining, vault secrets, flexible configuration, and extensible output handling.

## Use cases
- run ansible playbooks from a go application
- execute ansible commands programmatically in golang
- chain ansible-galaxy installs and playbook runs in a workflow
- manage ansible vault secrets from go code
- capture ansible output as json in a go service
- build a custom automation tool on top of ansible

## When to choose
- you are building a Go application that needs to drive Ansible automation
- you need to orchestrate multiple Ansible commands sequentially from Go
- you want structured (JSON) handling of Ansible command output
- you need programmatic control over Ansible environment variables and vault passwords

## When to avoid
- you just need to run Ansible from shell scripts or CI pipelines
- you want to reimplement Ansible's logic natively in Go rather than wrapping the CLI
- your project is not in Go and you can invoke Ansible directly
- you need an Ansible replacement rather than a wrapper

## Facets
- artifact type: library
- maturity: active
- function: workflow-automation, developer-tools, configuration-management, deployment
- domain: developer-tools, infrastructure-as-code
- platform: go, windows, cli
- tags: ansible, ansible-playbook, wrapper, provisioning, infrastructure-automation, vault, executor, automation, devops, linux, macos

## Member repositories
- apenella/go-ansible (main) score 85

## Provenance
- Observed fields: from GitHub, fetched 2026-09-03T02:15:09.228726+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:41:52.271886+00:00, confidence not recorded.
  - readme: https://github.com/apenella/go-ansible (fetched 2026-09-03T02:15:09.228726+00:00, sha dedf8273eb17)
- Data as of 2026-08-30T08:39:29.467469+00:00.
