Building SSHUI: A Terminal Launcher for Ansible Inventories Built a small tool to solve a problem I kept running into. Managing multiple Ansible inventory YAML files and jumping between hosts for routine work was becoming inefficient. I often needed to do simple SSH access, quick telnet tests, basic file upload/download, and quick port forwarding, but that usually meant switching between separate tools or maintaining multiple workflows. So I built SSHUI — a keyboard-driven terminal launcher for working with inventory hosts from one interface. It lets me work from inventory files directly and avoid juggling separate applications just to perform common operational tasks. Built with Python and Textual, it combines several everyday infrastructure tasks into a simpler terminal workflow. Currently it is built and tested on Windows only. If anyone tries it on Linux or other operating systems, I’d appreciate feedback and compatibility testing. GitHub: https://lnkd.in/gz3ScVvb Feedback welcome from people working with automation, Linux, or infrastructure tooling. #Python #Ansible #DevOps #Linux #OpenSource
More Relevant Posts
-
At some point, scripts stop being about commands… and start being about data. One of the most useful patterns in Bash is reading files line by line. while IFS= read -r line That single pattern lets you: • process logs • parse configs • handle real input You’re no longer just running commands… you’re working with data. #Bash #Linux #Terminal #DevOps #Programming CoderCo
To view or add a comment, sign in
-
Exploring #Linux #Daemons 🐧 Moving beyond manual process management with systemd. Managing backend processes manually via terminal multiplexers like Screen or Tmux is a fine stopgap, but it lacks the resilience required for a stable environment. I’ve recently been standardizing my deployment workflow using systemd services, and the benefits for uptime and observability are significant. By wrapping my backend in a Linux daemon, I’m able to offload several critical tasks to the OS kernel: Process Resilience: Defining Restart=always ensures that if the application encounters a runtime error or a memory leak, the system recovers automatically without manual intervention. Initialization: The service is tied to the multi-user.target, meaning the application boots alongside the server—eliminating downtime after maintenance reboots. Standardized Logging: Using journalctl or designated log files provides a structured way to audit application health rather than chasing terminal output. Security Scoping: It allows for strict control over the User and Group directives, ensuring the process runs with the least privilege necessary. For anyone still running their development or staging environments in an open terminal session, I highly recommend migrating to a formal service configuration. It shifts the focus from "keeping the app running" to "building the app." How are you handling process orchestration in your current stack? #DevOps #Linux #BackendEngineering #Python #SystemsAdministration #Infrastructure
To view or add a comment, sign in
-
-
Just wrapped up a fun utility project! 💻🐧 If you spend a lot of time in the Linux terminal, you know that managing users and groups via standard commands can be repetitive. I wanted to streamline this process, so I built a Terminal User Interface (TUI) using Bash and `whiptail`. Instead of memorizing flags for `usermod` or `groupadd`, this script provides an interactive, menu-driven experience directly in your terminal. Key features include: ✅ Adding, modifying, and deleting users/groups ✅ Locking and unlocking accounts instantly ✅ Scrollable views of current system users and groups ✅ Changing user passwords securely It’s lightweight, requires zero heavy dependencies, and is perfect for homelab setups or quick sysadmin tasks. I want to extend a huge thank you to Eng. Romany Nageh for his incredible guidance and instruction during our Bash scripting course. Check out the code on my GitHub: https://lnkd.in/dTEU479Q #Linux #Bash #SysAdmin #OpenSource #DevOps #Scripting #ITI
To view or add a comment, sign in
-
-
Most people use Linux. Few truly understand it. I used Linux for 3 years before I realized I was just copying commands from Stack Overflow. Then one question changed everything: "What actually happens when you type ls and press Enter?" 5 things that separated me from Linux beginners: 1. Everything is a file — even your keyboard /dev/input/event0 is reading your keystrokes right now. 2. Processes are trees, not lists PID 1 (systemd/init) is the parent of everything on your system. 3. Permissions are 3 numbers, not mystery chmod 755 = owner rwx | group r-x | world r-x. Decode it once, use forever. 4. Pipes | are the most powerful operator you own ps aux | grep python | awk '{print $2}' — that's 3 tools in one line. 5. man is the best teacher — not Google man curl has 3,000+ lines. Most engineers have read 0. Linux isn't an OS. It's a philosophy — do one thing, do it well. ♻ Repost if Linux changed how you think about computers. #Linux #DevOps #OpenSource #SoftwareEngineering #Tech
To view or add a comment, sign in
-
-
𝐃𝐚𝐲 𝟑𝟐= 𝐋𝐢𝐧𝐮𝐱 𝐒𝐞𝐫𝐢𝐞𝐬 = 𝐌𝐚𝐬𝐭𝐞𝐫 𝐋𝐢𝐧𝐮𝐱: 𝐂𝐨𝐦𝐩𝐫𝐞𝐬𝐬 𝐅𝐢𝐥𝐞𝐬 𝐋𝐢𝐤𝐞 𝐚 𝐏𝐫𝐨 𝐢𝐧 𝟔𝟎 𝐒𝐞𝐜𝐨𝐧𝐝𝐬! https://lnkd.in/gKVPXwft Stop wasting time manually moving files. If you're working in a Linux environment, mastering the zip command is a total game-changer for your workflow 📁 Zip Specific Files: zip my_files.zip file1 file2 (Combines and compresses them instantly!) 📂 Zip an Entire Directory: zip -r backup.zip * (The -r flag is your best friend for recursive compression.) 🔍 Peek Inside Without Unzipping: unzip -l backup.zip (Check your files without the extracting everything.) What’s your most-used Linux terminal shortcut? Let’s discuss below! 👇 #Linux #DevOps #Programming #CodingTips #TerminalSkills #TechTutorial #SoftwareEngineering
To view or add a comment, sign in
-
-
Struggling to remember shell variables? 🤔 Here’s a simple cheat sheet that covers the most important ones used in real-world scripting. Save it for later — you’ll thank yourself! 👇 #Linux #DevOps #ShellScript #Automation #Tech
To view or add a comment, sign in
-
-
If you script in Bourne, Korn, or Bash, stop sleeping on the special variables. $0, $1, $#, "$@", $?, $$, and $! are tiny, but they turn throwaway commands into real tools. They help your scripts take input cleanly, report success or failure, and behave like grown-up automation. And if you live in other shell families, go investigate argv and its cousins. Same big idea. Different dialect. Small syntax. Big leverage. HTH
Struggling to remember shell variables? 🤔 Here’s a simple cheat sheet that covers the most important ones used in real-world scripting. Save it for later — you’ll thank yourself! 👇 #Linux #DevOps #ShellScript #Automation #Tech
To view or add a comment, sign in
-
-
🔧 A small but important detail when working with tr in Bash: When converting lowercase to uppercase using tr 'a-z' 'A-Z', always quote your ranges. Why? Without quotes, single-letter ranges like a-z can be interpreted as potential filename globs — and that's a subtle bug waiting to happen. One line. One pair of quotes. One less headache. tr 'a-z' 'A-Z' The best practices aren't always the big architectural decisions — sometimes they live in the small details of a shell script. #Bash #Linux #DevOps
To view or add a comment, sign in
-
-
Most engineers use Linux every day. But only a few really understand what happens when a command is executed. For Example: uvicorn main:app --reload (A simple way to run a Python FastAPI app) Linux does much more than simply “run” it. Behind the scenes, it: → Creates a new process using fork() → Replaces it with your application using exec() → Optimizes memory using Copy-On-Write (COW) → Tracks everything using PID & PPID These are not just low-level OS concepts. They are the same foundations behind: → Docker containers → Kubernetes pods → Modern backend systems Once you understand this layer, debugging, performance tuning, and system design become much clearer. Sometimes, going deeper into the basics gives you the biggest advantage.
To view or add a comment, sign in
-
-
Hit an issue while building my file automation script. The script worked fine…until I ran it multiple times. It kept overwriting files instead of preserving data. Turns out I was using > instead of >>. Small difference, big impact: • > overwrites files • >> appends to them Fixed it and added better handling for existing files. Big takeaway: In Bash, small details can completely change behaviour. CoderCo #DevOps #BashScripting #Automation #Linux #ProblemSolving
To view or add a comment, sign in
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development