ISconf

Last updated

In computing, ISconf is a software tool to manage a network of servers.

Contents

ISconf operates on a pull model, meaning even servers that are not up when a change is made will receive the change once they come back up. As of version 4, ISconf requires no central server, though it does expect all servers to start identically, which is easiest to accomplish using some form of automated install which may require a central server.

Theory

ISconf comes from the "InfraStructure administration" movement which created and defined most of the OS-side backgrounds (in theory terms) of what is now making up the DevOps sphere. It is based on the idea that the best way to keep servers from diverging is to apply the same set of operations in the same order.

This is in contrast to the "convergence" theory of system automation, which attempts to "converge" servers to known states from arbitrary states using sets of rules such as "if a package outside of this set is installed, uninstall it", "if package X is not installed, install it", or "if daemon X is not running, start it". According to Steve Traugott, there is no way to guarantee that a given set of rules will actually be able to converge from any given state.

ISconf enforces the order of operations by assuming only commands issued through it change the state of the system. As a result, if a package or file is installed on a system manually, it will stay there, which may eventually cause problems such as version conflicts. ISconf is targeted at environments where configurations must remain identical. In such environments, it is typical to give only a few systems administrators root access to hosts. This minimizes the risk of manual changes because it is easy to train a small group of people to only make changes through ISconf.

ISconf was inspired by, and originally implemented as, Makefiles. However, Makefiles specify dependencies and not a total ordering of operations. ISconf version 1 dealt with this by making each operation dependent on the previous one, but this was tedious and poorly suited to Make. More recent versions of ISconf use a simple append-only journal.

Major versions

The major version in common use apparently were ISconf2 and ISconf3, while ISconf4 stayed in a very long beta period. It had in fact been finished and put to use in larger environments but due to the delay saw limited community adoption.

Trivia

Luke Kanies later switched to CFengine2, until finally authored and released Puppet. As a result, one could consider ISconf an ancestor of Puppet, though both CFengine and Puppet implement the "convergence" model of configuration management, essentially the opposite of the "order of operations" model implemented by at least ISconf versions 1, 2, and 4.

See also

Related Research Articles

In software development, Make is a build automation tool that builds executable programs and libraries from source code by reading files called makefiles which specify how to derive the target program. Though integrated development environments and language-specific compiler features can also be used to manage a build process, Make remains widely used, especially in Unix and Unix-like operating systems.

Rational ClearCase is a family of computer software tools that supports software configuration management (SCM) of source code and other software development assets. It also supports design-data management of electronic design artifacts, thus enabling hardware and software co-development. ClearCase includes revision control and forms the basis for configuration management at large and medium-sized businesses, accommodating projects with hundreds or thousands of developers. It is developed by IBM.

<span class="mw-page-title-main">Otter (software)</span>

Otter is an infrastructure automation tool that runs under Microsoft Windows, designed by the software company Inedo. Otter utilizes Infrastructure as Code to model infrastructure and configuration.

Information technology management or IT management is the discipline whereby all of the information technology resources of a firm are managed in accordance with its needs and priorities. Managing the responsibility within a company entails many of the basic management functions, like budgeting, staffing, change management, and organizing and controlling, along with other aspects that are unique to technology, like software design, network planning, tech support etc.

CFEngine is a configuration management system, written by Mark Burgess. Its primary function is to provide automated configuration and maintenance of large-scale computer systems, including the unified management of servers, desktops, consumer and industrial devices, embedded network devices, mobile smartphones, and tablet computers.

Software deployment is all of the activities that make a software system available for use.

Ports collections are the sets of makefiles and patches provided by the BSD-based operating systems, FreeBSD, NetBSD, and OpenBSD, as a simple method of installing software or creating binary packages. They are usually the base of a package management system, with ports handling package creation and additional tools managing package removal, upgrade, and other tasks. In addition to the BSDs, a few Linux distributions have implemented similar infrastructure, including Gentoo's Portage, Arch's Arch Build System (ABS), CRUX's Ports and Void Linux's Templates.

Build automation is the process of automating the creation of a software build and the associated processes including: compiling computer source code into binary code, packaging binary code, and running automated tests.


This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator.

Microsoft Application Virtualization is an application virtualization and application streaming solution from Microsoft. It was originally developed by Softricity, a company based in Boston, Massachusetts, acquired by Microsoft on July 17, 2006. App-V represents Microsoft's entry to the application virtualization market, alongside their other virtualization technologies such as Hyper-V, Microsoft User Environment Virtualization (UE-V), Remote Desktop Services, and System Center Virtual Machine Manager.

Bcfg2 is a configuration management tool developed in the Mathematics and Computer Science Division of Argonne National Laboratory. Bcfg2 aids in the infrastructure management lifecycle – configuration analysis, service deployment, and configuration auditing. It includes tools for visualizing configuration information, as well as reporting tools that help administrators understand configuration patterns in their environments.

<span class="mw-page-title-main">Puppet (software)</span> Open source configuration management software

Puppet is a software configuration management tool which includes its own declarative language to describe system configuration. It is produced by Puppet Inc., founded by Luke Kanies in 2005. Its primary product, Puppet Enterprise, is a proprietary and closed-source version of its open-source Puppet software. They use Puppet's declarative language to manage stages of the IT infrastructure lifecycle, including the provisioning, patching, configuration, and management of operating system and application components in data centers and cloud infrastructures.

Progress Chef is a configuration management tool written in Ruby and Erlang. It uses a pure-Ruby, domain-specific language (DSL) for writing system configuration "recipes". Chef is used to streamline the task of configuring and maintaining a company's servers, and can integrate with cloud-based platforms such as Amazon EC2, Google Cloud Platform, Oracle Cloud, OpenStack, IBM Cloud, Microsoft Azure, and Rackspace to automatically provision and configure new machines. Chef contains solutions for both small and large scale systems.

PTC IntegrityLifecycle Manager is a software system lifecycle management (SSLM) and application lifecycle management (ALM) platform developed by MKS Inc. and was first released in 2001. The software is client/server, with both desktop (java/swing) and web client interfaces. It provides software development organizations with a collaborative environment in which they can manage the end-to-end processes of development, from requirements management, engineering change management, revision control, and build management to test management and software deployment, as well as associated reports and metrics.

HP Cloud Service Automation is cloud management software from Hewlett Packard Enterprise (HPE) that is used by companies and government agencies to automate the management of cloud-based IT-as-a-service, from order, to provision, and retirement. HP Cloud Service Automation orchestrates the provisioning and deployment of complex IT services such as of databases, middleware, and packaged applications. The software speeds deployment of application-based services across hybrid cloud delivery platforms and traditional IT environments.

OpenLMI provides a common management infrastructure for Linux systems. Available operations include configuration of various operating system parameters and services, hardware components configuration, and monitoring of system resources. Services provided by OpenLMI can be accessed both locally and remotely, using multiple programming languages and standardized APIs.

<span class="mw-page-title-main">Automation Master</span> Open source community maintained project

Automation Master is an open source community maintained project. Automation Master was created to assist in the design, implementation and operation of an automated system.

Infrastructure as code (IaC) is the process of managing and provisioning computer data center resources through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. The IT infrastructure managed by this process comprises both physical equipment, such as bare-metal servers, as well as virtual machines, and associated configuration resources. The definitions may be in a version control system. The code in the definition files may use either scripts or declarative definitions, rather than maintaining the code through manual processes, but IaC more often employs declarative approaches.