Skip to content
/ COACH Public

Windows focused Comprehensive Orchestration and Configuration Hub.

License

Notifications You must be signed in to change notification settings

j4m1n-t/COACH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COACH - Comprehensive Orchestration And Configuration Hub

COACH is a powerful, flexible, and extensible tool designed for configuration management and orchestration. Inspired by Ansible, COACH allows you to define and execute configuration tasks using a variety of configuration formats, including TOML, YAML, and CUE. While COACH is primarily designed for Windows environments, it can also be used for Unix/Linux systems.

Features

  • Multiple Configuration Formats: Define your plays in TOML, YAML, or CUE.
  • CLI-Based: Fully functional CLI tool with GUI development underway.
  • Versatile Protocol Support: Execute tasks over SSH, HTTP, HTTPS, and WMI.
  • Windows Focused: Optimized for Windows environments, with support for Unix/Linux systems.
  • Open Source and Community Driven: Contributions from the developer community are highly encouraged.

Getting Started

Prerequisites

  • Rust (latest stable version recommended)
  • Cargo (Rust's package manager)

Installation

Clone the repository:

git clone https://github.com/yourusername/coach.git
cd coach

Build the project:

cargo build --release

Add the binary to your PATH:

export PATH=$PATH:/path/to/coach/target/release

Usage

To execute a playbook, use the following command:

coach run -f /path/to/playbook.toml

COACH currently supports TOML, YAML, and CUE formats for playbooks. The format will be inferred from the file extension.

Example Playbook (TOML)

[playbook]
name = "Example Playbook for Windows"

[tasks]
[tasks.task1]
name = "Update Windows"
command = "Start-Process powershell -ArgumentList 'Install-Module PSWindowsUpdate -Force' -Verb RunAs; Import-Module PSWindowsUpdate; Get-WindowsUpdate -Install -AcceptAll -AutoReboot"

[tasks.task2]
name = "Install Chocolatey"
command = "Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"

[tasks.task3]
name = "Install Google Chrome"
command = "choco install googlechrome -y"

For more examples see examples.

Contributing

COACH is in the early stages of development, and contributions are welcome! Here’s how you can help:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Add some feature').
  5. Push to the branch (git push origin feature/your-feature).
  6. Open a Pull Request.

Issues

If you encounter any issues, please report them in the issue tracker.

Roadmap

  • Complete GUI Development
  • Add more modules for various configurations
  • Improve documentation and add more examples
  • Implement more security features
  • Have fun

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For any questions or suggestions, feel free to reach out to the project maintainers or open an issue on GitHub.


Thank you for using COACH! Happy configuring!