Working in the IT industry, everyone, including System Administrators, encounters challenges in their everyday work. Today, we will highlight a few tools and tips for sysadmins who are intended to improve their skills and make their working process more efficient.
The skills and technologies needed for an efficient system administrator are derived from their responsibilities. Thus, let’s take a brief look at these.
- Monitoring the systems working properly;
- User roles, permissions, and services assignment;
- Maintaining the company’s secureness (e.g. two-factor authentication configuration and so on);
- Corporate software timely updating;
- Documentation and policies upkeeping;
- Incident detection and post-incident reviews.
What skills does a SysAdmin need for efficient working?
System admins are the key individuals in maintaining the reliability and uptime for both soft- and hardware in a company. To be an efficient system administrator, one should be familiar with many of the modern technologies, and also be skilled enough to use those.
- Automating and managing the configuration. It helps automate some tasks and configurations along the release lifecycle, which saves a lot of time for developers, allowing them to spend it on developing new applications and services instead of reworking projects.
- Cloud infrastructure managing. Since nearly every application uses cloud services nowadays, one of the most important skills for a SysAdmin is the ability to manage it. Thus, it is mandatory for a SysAdmin to be well aware of the cloud systems working processes.
- Versions control via Git. That is essential for reliable CI/CD pipeline providing, as well as for providing project visibility across all engineering teams. SysAdmins should control versions in order to identify issues and fix them on time.
- Scripting and coding. Though many still argue with that, programming has become an integral part of system administrators’ work cycle, since it helps much. For example, being able to read, follow and understand the code developers write, it becomes much easier to work together to fix a problem or to resolve a technical challenge. Therefore, knowledge of at least 2 programming languages is a must for an efficient SysAdmin.
- Maintaining a backup. The company data is a valuable asset that literally is a pillar for any company. SysAdmin’s responsibility is to protect it, so ensuring the backups work is also a skill an efficient admin should obtain.
- Making it working before the optimization. This saves a lot of time that would be spent on premature optimization. This tip may be applied to both complicated (e.g. putting together a network architecture) and easy (e.g. writing configuration management code) tasks.
What tools should an effective SysAdmin use?
Here is a list of the useful tools to be well acquainted with:
A group of tools useful for configuration automatization and management: Chef, Puppet, and Ansible.
Chef is very helpful for server infrastructure automation via Chef clients installed on each node of a network. Its constant compliance checking also helps greatly in recovering the system in case any manual changes are made by sysadmins. Chef is a great choice if you work with Ruby.
Puppet Labs is a tool that allows servers’ declarative configuration via the tool’s ruby DSL. Same as the previously mentioned Chef, it works great with Ruby.
Ansible is a simple way of IT provisioning tasks automation. The tool is easy to understand and fits best if you are working with Python. Ansible Playbooks is a method of running the bundling instructions and replay them on any number of servers that are connected to over SSH.
Windows Sysinternals Suite is a bundle of general useful tools for networking, security, files and discs, collecting system information, and others.
WireShark is probably the world’s most used protocol analyzer. It lets us see what’s happening on a network at a microscopic level.
Fiddler is a proxy server that runs locally and allows developers to debug web applications.
Cliforgot is interactive documentation that can be copied and pasted. It helps generate full line commands and options for Windows commands.
Clonezilla fits best for administering a large number of computers. Its multicast feature allows updating machines in massive parallel batches.
Clusto is a server cluster management tool. It helps maintain an abstracted interface for interacting with an infrastructure. It also stores data in any database that can be interacted with via SQLAlchemy, which eases its management.
Dnsmasq is a lightweight DNS resolver for local networks and suits best for low resource environments, e.g. routers.
Netcat helps with anything connected to sending and receiving network port information.