This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these template messages)
|
In computing, ISconf is a software tool to manage a network of servers.
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.
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.
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.
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.
In telecommunication, provisioning involves the process of preparing and equipping a network to allow it to provide new services to its users. In National Security/Emergency Preparedness telecommunications services, "provisioning" equates to "initiation" and includes altering the state of an existing priority service or capability.
In software development, Make is a command-line interface (CLI) software tool that performs actions ordered by configured dependencies as defined in a configuration file called a makefile. It is commonly used for build automation to build executable code from source code. But, not limited to building, Make can perform any operation available via the operating system shell.
IBM DevOps Code ClearCase (also known as IBM 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.
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.
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.
Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by The Apache Software Foundation, where it was formerly part of the Jakarta Project.
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 practice of building software systems in an relatively unattended fashion. The build is configured to run with minimized or no software developer interaction and without using a developer's personal computer. Build automation encompasses the act of configuring the build system as well the resulting system itself.
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.
Puppet is a software configuration management tool developed by Puppet Inc. Puppet is used to manage stages of the IT infrastructure lifecycle.
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.
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.
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, rather than maintaining the code through manual processes. The code in the definition files may use either scripts or declarative definitions, but IaC more often employs declarative approaches.