{"id":35627366,"url":"https://github.com/kpeacocke/souschef","last_synced_at":"2026-05-04T23:04:43.536Z","repository":{"id":331976981,"uuid":"1126993229","full_name":"kpeacocke/souschef","owner":"kpeacocke","description":"Chef to Ansible converter for enterprise automation: migrate Chef cookbooks, recipes, and data bags (Vault), convert InSpec to Testinfra, generate Ansible playbooks/roles and AWX/AAP workflows via an AI-powered MCP server.","archived":false,"fork":false,"pushed_at":"2026-01-27T06:49:44.000Z","size":3325,"stargazers_count":1,"open_issues_count":47,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-27T08:32:47.438Z","etag":null,"topics":["aap","ai","ansible","ansible-automation-platform","ansible-web-executable","awx","chef","chef-to-ansible","cookbooks","devops","inspec","mcp","migration","testinfra"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kpeacocke.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-03T00:38:04.000Z","updated_at":"2026-01-27T00:53:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kpeacocke/souschef","commit_stats":null,"previous_names":["kpeacocke/souschef"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/kpeacocke/souschef","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpeacocke%2Fsouschef","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpeacocke%2Fsouschef/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpeacocke%2Fsouschef/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpeacocke%2Fsouschef/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kpeacocke","download_url":"https://codeload.github.com/kpeacocke/souschef/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpeacocke%2Fsouschef/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28828776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T23:29:49.665Z","status":"ssl_error","status_checked_at":"2026-01-27T23:25:58.379Z","response_time":168,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aap","ai","ansible","ansible-automation-platform","ansible-web-executable","awx","chef","chef-to-ansible","cookbooks","devops","inspec","mcp","migration","testinfra"],"created_at":"2026-01-05T08:13:09.087Z","updated_at":"2026-05-04T23:04:43.529Z","avatar_url":"https://github.com/kpeacocke.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SousChef: Multi-Platform to Ansible Migration + Ansible Upgrade Planning\n\nTransform Chef, SaltStack, Puppet, PowerShell, and Bash automation to Ansible, and plan Ansible version upgrades. Works with any AI assistant via MCP (Model Context Protocol)—Claude, GPT-4, GitHub Copilot, Red Hat AI, local models, and more.\n\n**Quick Facts:** MIT License | Python 3.10+ | 95 MCP Tools | 91% Test Coverage\n\n[![GitHub release](https://img.shields.io/github/release/kpeacocke/souschef)](https://github.com/kpeacocke/souschef/releases)\n[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Test Coverage](https://img.shields.io/badge/coverage-91%25-green.svg)](htmlcov/index.html)\n[![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)\n[![Type Checked: mypy](https://img.shields.io/badge/type%20checked-mypy-blue.svg)](http://mypy-lang.org/)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=kpeacocke_souschef\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=kpeacocke_souschef)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=kpeacocke_souschef\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=kpeacocke_souschef)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=kpeacocke_souschef\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=kpeacocke_souschef)\n\n---\n***Warning***\nI did not hand craft 100k lines of code in two days while doing my actual day job (which, for the record, isn’t this). A lot of this is AI generated. Architected, hand edited, and personally sworn at yes, but the heavy hand of AI is all over this repo.\n\nI’ve pushed it to include a *lot* of tests, and I run it through its paces before pushing, but some things may break, or may have always been broken. If you find something, raise it and I’ll fix it.\n\nA fair bit of this relies on mocked Chef/AWX/AAP APIs because *shockingly* I don’t have a fleet of enterprise grade installs with enterprise grade data sitting around to test against. Buyer beware (doubly so, since you didn’t actually buy anything).\n\n---\n\n## What It Does\n\n**Chef-to-Ansible Migration** — Convert cookbooks, recipes, custom resources, data bags, and Habitat plans to Ansible playbooks, roles, and containers. Supports infrastructure, applications, and day-2 operations.\n\n**SaltStack-to-Ansible Migration** — Convert Salt states, pillars, and top.sls targeting to Ansible roles, variable files, Ansible Vault, and INI inventory. Assess complexity, generate phased migration plans, and produce executive reports.\n\n**Puppet to Ansible Migration** — Convert Puppet manifests and module directories to Ansible playbooks using idiomatic `ansible.builtin` modules. Recognises 14 Puppet resource types; maps 10 to Ansible modules with AI-assisted conversion for complex constructs.\n\n**PowerShell to Ansible Migration** — Convert Windows PowerShell provisioning scripts to idiomatic `ansible.windows` playbooks, roles, WinRM inventories, and AWX/AAP job templates.\n\n**Bash Script Migration** — Convert provisioning Bash scripts to Ansible playbooks and roles with quality scoring, sensitive data detection, and AAP readiness hints.\n\n**Ansible Upgrade Planning** — Assess compatibility, plan version upgrades, validate collections, identify breaking changes, and generate testing strategies.\n\n## Installation \u0026 Setup\n\n```bash\n# Install from PyPI\npip install mcp-souschef\n\n# Configure your MCP client (Claude Desktop example)\ncp config/claude-desktop.json ~/Library/Application\\ Support/Claude/claude_desktop_config.json\n\n# Restart your AI assistant and start using\n# Ask: \"What migration tools are available?\"\n```\n\n**Other MCP clients:** See [config/CONFIGURATION.md](config/CONFIGURATION.md) for VS Code Copilot, custom setups, and Docker deployment.\n\n## Key Features\n\n- **95 MCP tools** for Chef migration, SaltStack migration, Puppet migration, PowerShell migration, Bash script migration, and Ansible upgrades\n- **Web UI** with interactive migration planner and visualisation (including Salt, Puppet, PowerShell, and Bash tabs)\n- **CLI** for automation and CI/CD integration\n- **Production-ready** with 91% test coverage and comprehensive validation\n- **Model-agnostic** — works with any AI assistant supporting MCP\n- **Chef Server ingestion** with dependency closure and offline bundle export\n\n### Common Use Cases\n\n**Chef Migration:**\n- Convert cookbooks to Ansible playbooks and roles\n- Migrate Chef Habitat apps to Docker containers\n- Transform data bags to Ansible Vault\n- Generate AWX/AAP job templates and workflows\n- Convert InSpec tests to Ansible validation tasks\n- Fetch cookbooks from Chef Server with run_list or policy selection\n\n**SaltStack Migration:**\n- Parse SLS state files and extract states, pillars, and grain references\n- Convert Salt states to Ansible playbooks and role task files\n- Migrate pillar data to Ansible `group_vars/` and Ansible Vault\n- Generate Ansible inventory from `top.sls` targeting rules\n- Batch-convert a full Salt state tree to an Ansible roles structure\n- Assess migration complexity and generate phased migration plans\n\n**Puppet Migration:**\n- Convert Puppet manifests (`.pp`) and module directories to Ansible playbooks\n- Recognise 14 Puppet resource types; map 10 to idiomatic `ansible.builtin` modules (`package`, `service`, `file`, `user`, `group`, `exec`, `cron`, `host`, `mount`, `ssh_authorized_key`)\n- Warn about unsupported constructs (Hiera lookups, exported resources, `create_resources`) with manual-review guidance\n- AI-assisted conversion for complex Puppet DSL that cannot be mapped automatically\n- Convert individual Puppet resource declarations to standalone Ansible tasks\n\n**PowerShell Migration:**\n- Convert Windows PowerShell provisioning scripts to idiomatic Ansible playbooks\n- Generate full Ansible roles with WinRM inventory and `group_vars`\n- Map 28+ PowerShell patterns to `ansible.windows.*`, `community.windows.*`, `chocolatey.chocolatey.*`\n- Generate AWX/AAP Windows job templates with WinRM credentials\n- Analyse migration fidelity (0–100 %) with actionable recommendations\n- Create complete `requirements.yml` for required Windows collections\n\n**Bash Script Migration:**\n- Convert provisioning Bash scripts to idiomatic Ansible playbooks\n- Generate full Ansible roles from Bash scripts (tasks, handlers, defaults, meta)\n- Detect and flag hardcoded secrets with ansible-vault guidance\n- Identify CM escape calls (Salt, Puppet, Chef) embedded in Bash\n- Get AAP-ready job template hints with Execution Environment recommendations\n- Score migration quality (A–F) with ranked improvement suggestions\n\n**Ansible Upgrades:**\n- Assess Python and Ansible version compatibility\n- Plan upgrades with breaking change analysis\n- Validate collection compatibility\n- Generate testing strategies\n- Track end-of-life dates\n\n**Both Infrastructure \u0026 Applications:**\n- Infrastructure provisioning and configuration\n- Application deployment automation\n- Day-2 operations (backups, scaling, updates)\n- CI/CD pipeline migration\n- Multi-cloud automation\n\n### Command-Line Examples\n\n```bash\n# Chef migration\nsouschef-cli recipe /path/to/recipe.rb\nsouschef-cli template /path/to/template.erb\nsouschef-cli convert package nginx --action install\n\n# SaltStack migration\nsouschef-cli salt assess /srv/salt/states/\nsouschef-cli salt convert /srv/salt/states/webserver/init.sls\nsouschef-cli salt inventory /srv/salt/top.sls\nsouschef-cli salt batch-convert /srv/salt/states/ --output-dir ./ansible-roles/\n\n# PowerShell migration\nsouschef-cli powershell-parse scripts/setup.ps1\nsouschef-cli powershell-convert scripts/setup.ps1 --output playbook.yml\nsouschef-cli powershell-role scripts/setup.ps1 --output-dir ./ansible-role\n\n# Puppet migration\nsouschef-cli puppet parse manifests/site.pp\nsouschef-cli puppet convert manifests/site.pp --output playbook.yml\nsouschef-cli puppet convert-module modules/myapp --output-dir ./ansible-role\n\n# Bash script migration\nsouschef bash parse scripts/bootstrap.sh\nsouschef bash convert scripts/deploy.sh --output playbook.yml\nsouschef bash role scripts/setup.sh --role-name myapp --output-dir ./roles\n\n# Ansible upgrades\nsouschef ansible assess --environment-path /path/to/ansible\nsouschef ansible plan --current 2.9 --target 2.17\nsouschef ansible validate-collections --requirements-file requirements.yml\n\n# Web UI\nsouschef ui  # Launch interactive dashboard\n```\n\n## Documentation\n\n### Start Here\n\n- **[Quick Start Guide](docs/getting-started/quick-start.md)** — Get running in 5 minutes\n- **[Production Safety](docs/migration-guide/safety-and-validation.md)** — Validate migrations before deploying ⚠️\n- **[User Guide](docs/user-guide/mcp-tools.md)** — All 95 tools explained with examples\n- **[Chef Migration Guide](docs/migration-guide/overview.md)** — Step-by-step Chef-to-Ansible migration process\n- **[Salt Migration Guide](docs/migration-guide/salt-migration.md)** — Step-by-step SaltStack-to-Ansible migration process\n- **[Bash Migration Guide](docs/migration-guide/bash-migration.md)** — Step-by-step Bash provisioning script migration process\n- **[Puppet Migration Guide](docs/migration-guide/puppet-migration.md)** — Puppet to Ansible conversion\n- **[PowerShell Migration Guide](docs/migration-guide/powershell-migration.md)** — PowerShell to Windows Ansible conversion\n- **[Ansible Upgrades](docs/user-guide/ansible-upgrades.md)** — Version upgrade planning workflows\n\n### Reference\n\n- **[API Documentation](docs/api-reference/)** — Complete technical reference\n- **[Architecture Guide](docs/ARCHITECTURE.md)** — Code structure and design decisions\n- **[Contributing Guide](CONTRIBUTING.md)** — Development standards and workflow\n- **[Security Policy](SECURITY.md)** — Vulnerability reporting and security features\n- **[Changelog](CHANGELOG.md)** — Complete release history\n\n## Recent Updates\n\n**v7.0.0** — First-class multi-platform migration documentation for SaltStack, Bash, PowerShell, and Puppet\n\n**v6.0.0** — v2 core foundation with enhanced migration capabilities\n\n**v5.1.4** — Modular architecture, 91% test coverage, full type safety, production-ready\n\n**v5.0.0** — Complete Ansible upgrade planning with version matrices and EOL tracking\n\n## Contributing\n\n```bash\n# Development setup\ngit clone https://github.com/kpeacocke/souschef.git \u0026\u0026 cd souschef\npoetry install\npoetry run pytest           # Run tests\npoetry run ruff check .     # Lint\npoetry run mypy souschef    # Type check\n\n# If you change terraform-provider/\ncd terraform-provider\ngo test ./...               # Run Go tests\n```\n\n**Standards:** Zero warnings policy, type hints required, 90%+ test coverage, Australian English spelling.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for complete guidelines.\n\n## Support\n\n- **Issues:** [GitHub Issues](https://github.com/kpeacocke/souschef/issues)\n- **Discussions:** [GitHub Discussions](https://github.com/kpeacocke/souschef/discussions)\n- **Security:** See [SECURITY.md](SECURITY.md)\n\n## License\n\nMIT License — see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpeacocke%2Fsouschef","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkpeacocke%2Fsouschef","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpeacocke%2Fsouschef/lists"}