Anyone here automating sysadmin tasks or server workflows using Rust?

Not strictly a Rust language question, but I’ve been wondering:

Has anyone used Rust to build tooling for server automation — like patch management, multi-host orchestration, or log rotation?
We’re mostly using Ansible and PowerShell right now, but looking for something faster, maybe compiled, and less Python-dependent.

Just curious if Rust has a role here, or if you're combining it with other tools like Terraform, Jenkins, or something more task-specific.

I've been slowly replacing a bunch of bash, PowerShell and python scripts with small Rust programs over the years. At some point I started collecting many of these small programs into a few of local crates and build them all together into a program that I call "butler" (not published). It handles various sysadmin tasks on both servers and clients. Lately I have added features to allow it to communicate with other instances of butler; in particular in order to be able to allow a VM host to communicate with guests and inform them that their guest additions can be updated.

I started on this journey many years ago when I was playing around with the duct crate and thought it felt ergonomic enough to be able to replace a shell script, and I was happy with the results and basically just kept going.

I still have a fair amount of bash, PowerShell and python scripts, but these days it's mostly "butler" that launches them.

So using Rust in place of where one would probably use scripts does happen, but I'm not sure how common it is, and it definitely wasn't a plan. If someone would have suggested it as some sort of structured project, I would probably have rejected it. I ended up where I am because it happened incrementally.

I am happy with it -- it feels very robust. But it has taken a lot of time to build and one could argue that time would have been better spent on other things.

4 Likes

Funny timing, we recently added Rust to our ops stack in a few small ways.

That said, our full automation setup looks like this:

Chef for environment provisioning

Rust: Used for small compiled agents that gather system metrics and handle local validations before triggering jobs

PowerShell for Windows bits, and some Python remains in legacy scripts

Attune as the orchestration layer, schedules and runs multi-step jobs across nodes (including Rust binaries, Bash, PowerShell, etc.)

Logs and health checks routed via Prometheus + Loki

Rust is great for writing small, reliable binaries in this context.

3 Likes

I have a "forever" project, Peace, which is a framework to create really safe and understandable automation tools.

The best introduction is to read this blog post:

Perhaps check back in a year for whether it's got a stable API, which is my primary concern before using it for work.

Enjoy

1 Like

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.