categories
Updated on in

Top 7 Linux Software Deployment Tools

Author: Helga York
Helga York Article author

Software deployment is a task that most developers and system administrators face on a daily basis. You can deploy software for different reasons, like making a new release available for users, or installing a standard suite of tools on hundreds of workstations. Naturally, there are many tools available for deployment, some of them more fit for certain tasks than others.

1. HelpWire

HelpWire is a remote access tool that works on Windows, macOS, and Linux, with complete cross-platform support. It doesn’t operate on the scale of automated deployment tools, but rather, it’s a good option when you need to manually set up a single computer, or help a single customer or coworker with remote software installation.
You can easily start a HelpWire session in seconds, without the need to script, or any advanced setup on the remote computer. It works over the internet, meaning that the device can be anywhere – not just on premises. And to help with support, installation, or diagnostics, it has plenty of useful features, such as drag-and-drop file transfers and unattended access. Before getting into automatic deployment, try HelpWire.
  • • Free version available: Yes
  • • Intended uses: Remote support
  • • Interface: Full GUI

2. Perforce Puppet

Perforce Puppet

Perforce Puppet is one of the most widely available Linux deployment tools. The packages and settings that need to be installed on the target systems are compiled into catalogues, which consist of manifest files. These files are then distributed through a server-client architecture, or individually by simply transferring the file and running “puppet apply” on the system.

The open-source version can be found in any major Linux distribution, and is the de facto standard for the configuration management of multi-computer networks. However, it is not intended for software distribution. The same can be said about Puppet Enterprise – the main difference between the free and commercial versions is the intended scale of the managed network.

  • • Free version available: Yes
  • • Intended uses: Configuration management
  • • Interface: GUI available in Enterprise, otherwise CLI
  • • Integration: SDK available, code available for the open-source version

3. Octopus Deploy

Octopus Deploy

Octopus Deploy is a software delivery system, with a focus on the simplification of the deployment process. It automatically performs tasks that often require custom code to be written by developers – deployment automation to different environments, emergency operations, variable management, and others. It also offers tool integration, including Slack and Jira.

Octopus offers both cloud hosting, and self-hosting if you’d like more privacy. The self-hosted plans are significantly less expensive, but are still hundreds of USD at the minimum (360$ for the Starter plan at the moment of writing). A 30-day trial is available.

  • • Free version available: No
  • • Intended uses: Software deployment to users
  • • Interface: GUI, command-line API available
  • • Integration: Not available

4. Attune

Attune

Attune is a tool that can run scripts on remote nodes. While scripts can only be distributed from a macOS or Windows machine, Linux machines can act as nodes. Most of the automation, and scripting Linux deployment tools, is up to the user, with the app itself offering scheduling, storage management, logging, and error capturing. This adds flexibility to the application, and makes it suitable for almost any task, but not for software releases and updates for users.

The free, Community version of Attune includes most of the functionality, except for multi-user access. More advanced versions also improve the speed of distribution, making them more appropriate for larger networks.

  • • Free version available: Yes
  • • Intended uses: Process automation
  • • Interface: GUI available, but the scripts need to be created manually
  • • Integration: Not available

5. Salt Project

Salt Project

The Salt Project is an open-source project that allows a single server (master) to communicate with large amounts of clients (minions). It’s available on Linux, Windows, and macOS. The communication includes both sending commands and getting system data, which makes it possible to use as an application deployment tool. Scripts for Salt are called Execution Modules and are written in Python.

The choice of the scripting language, free availability, the abundance of learning materials, and active community engagement all contribute to Salt being a highly accessible automation and management tool. Although, it’s only intended for deployment to computers on your own network.

  • • Free version available: Yes
  • • Intended uses: Configuration management, process automation
  • • Interface: Fully CLI
  • • Integration: Via scripting

6. AWS CodeDeploy

The AWS CodeDeploy service is deeply integrated with the overall system of Amazon Web Services, and is mainly intended to deploy software in the form of various files to on-premise servers, Amazon virtual machines, containers, and FaaS services. The service is free for deployment to EC2, ECS, and Lambda, but charges $0.02 per update for on-premises deployment.

It provides a high degree of control over deployments, including the ability to quickly roll back, or to divide deployment targets into groups and introduce an update gradually. The distributed content does not affect the deployment service, and does not need to be modified to accommodate it.

• Free version available: Only as part of the cloud services
• Intended uses: Software distribution to Amazon VMs, containers, and servers
• Interface: Web console or CLI
• Integration: Compatible with a variety of non-Amazon services

7. Red Hat Ansible

Red Hat Ansible

Like many other automation tools, Ansible can be used to manage multiple remote systems from a central node. Remote hosts can be collected into files, categorized, and have commands executed on them in groups. This makes it suitable for deployment automation tasks. In addition to a range of built-in commands, Ansible supports modules that allow it to interact with various systems and services, such as VMWare, Azure, and AWS.

The free trial lasts up to 60 days and does not allow commercial use. Since the platform is fairly simple, and documentation is plentiful, it’s easy to pick up and start using in a project. Ansible can also be hosted on cloud infrastructure.

  • • Free version available: Trial only
  • • Intended uses: Process automation
  • • Interface: CLI
  • • Integration: Modules for a variety of services

 

What’s the best deployment tool?

You can use the scale of your project to decide how suitable each of these Linux software deployment tools is for it. If you deploy to a low number of computers, or if the server you’re deploying to is used by a few dozen people at most, try to look for free tools, such as Puppet or Salt, or tools for manual deployment like HelpWire. Remember that commercial-grade tools can cost thousands of USD per year, and will have stricter terms of use.