Awesome Nomad › Tools and Utilities
42wim/nomadctld
⭐ 71
Go
repository created 2018-04-09
nomadctld is an SSH server designed to provide controlled access to a HashiCorp Nomad cluster. It acts as an intermediary between users and the Nomad cluster, enabling users to perform various operations on Nomad jobs and containers they own, without granting them full access to the cluster. This setup enhances security by limiting user permissions while still allowing essential management tasks.
The server running nomadctld must have network access to the Nomad server (typically on port 4646) and the Docker daemon on all Nomad nodes. Currently, TLS is not supported. The tool supports Nomad ACL tokens for secure access control and authenticates users via SSH keys. Authorization is managed based on Nomad job prefixes, ensuring users can only interact with jobs they are permitted to access.
nomadctld supports a range of commands that allow users to list jobs, execute commands inside containers, view and tail logs, stop and restart jobs, inspect job and container details, and run raw Nomad commands. It provides detailed job status and debugging information, including allocation health and failure reasons, which helps in monitoring and troubleshooting Nomad jobs.
The project includes a configuration system using a TOML file where administrators can define SSH host keys, Docker daemon settings, Nomad cluster URLs, job prefixes, ACL tokens, user SSH keys, and access prefixes. This flexible configuration allows fine-grained control over user permissions and cluster access.
nomadctld also comes with a helper bash script, nomadctl, which simplifies interaction with the SSH server by wrapping SSH commands. The tool is useful for teams managing Nomad clusters who want to delegate limited access to users for operational tasks like monitoring, debugging, and managing containerized workloads securely and efficiently.
https://github.com/42wim/nomadctld
access-controlacl-tokenscliconfigurationcontainer-managementdebuggingdockerdocker-daemonexechashicorp-nomadjob-monitoringjob-prefixesjob-statuslogsnomadnomad-clusternomad-jobrestartssh-serverstopuser-authentication
Also in Tools and Utilities
Nomad-tools is a set of command-line tools and utilities designed to simplify and enhance interaction with the HashiCorp Nomad scheduling solution, providing features for job deployment, monitoring, node attribute management, and CI/CD integration.
Trek is a CLI and ncurses-based explorer tool designed to manage and explore HashiCorp Nomad clusters, providing detailed insights into jobs, task groups, allocations, and tasks with customizable output formats.