I'm curious about how Python fits into the world of system administration. When dealing with breaking changes between new releases, how do you manage dependencies for your scripts or tools? Do you expect certain dependencies to be already present on the system, or do you create virtual environments for each script? I'm starting to feel like Python might not be the best choice for sysadmin tasks, and I'd love to hear others' experiences on this matter.
10 Answers
I actually package my Python scripts into a single executable to avoid installing Python on each server. That way, any updates are straightforward—just modify the code and redeploy!
You're right; Python wasn't always the go-to for sysadmin tasks. Over the years, as software development became more integrated with system administration, it gained popularity. My advice? Use what’s best for the task—bash, Python, PowerShell—whatever works for you!
For smaller scripts, I often just use the installed version of Python. But for anything complex, virtual environments are essential. Python may not be flawless for every sysadmin task, but it's versatile. When combined with containers, it becomes a lot more manageable!
Updating Python depends on the tools you're using; sometimes you can stick with an older version without issues. Just be cautious about what’s exposed in your environment.
Go is also a good choice; it compiles to a binary which you can easily deploy. But you're right about containers—they're a great solution for managing dependencies without the headache of constant updates.
True! Containers help keep everything tidy. But isn't this conversation really about how to manage systems effectively?
I use Python to interact with APIs, which is super handy. For me, it’s all about writing quick scripts while keeping things manageable, especially with virtual environments or containers for tougher tasks.
I usually keep a consistent version of Python installed on all machines that I manage.
For each project, I use virtual environments with a requirements.txt file to manage dependencies easily.
We have a similar setup, but we also encourage developers to set up their environments for machine learning tasks. It reduces conflicts between dependencies significantly.
Using Python with Ansible is a fantastic option! The modules are ready to go, and if you need something specific, you can write a custom module in Python.
It depends on what you're working with. We package our dependencies and maintain version control to ensure updates go smoothly. It allows us to run different versions alongside without conflicts.
Managing Python with containerization is a smart approach, allowing you to streamline environments and testing. It definitely simplifies things.

Absolutely! Sometimes avoiding Python and sticking to PowerShell, especially for vulnerability management, can be a better option.