For most people, computers don’t stay the same. Software is added, removed, and updated. Configurations are changed. Think about the changes you’ve made to your computer since the first time you booted it up. Now imagine making those changes to 10, 100, or 1,000 more computers. Software/Server/System Configuration Management (SCM) tools are what make implementing and enforcing these changes possible.

not to be confused with Source Control Management (SCM)

Software/Server/System Configuration Management is all processes to manage all the changes of the software:

  • development (Version Control System (VCS))
  • delivery release (VCS)
  • bug tracking
  • software settings
  • host/network settings
  • version/settings of the other software interacting with…

SCM - Language Types

Types

Description

Example

imperative

  • declares how to do it
  • provides more flexibility
If node['platform'] == "debian"
   execute "install apache2" do
      command "apt-get install apache2 -y"
   end
end

declarative

  • declares what it wants at the end (ignoring how it got there)
  • easier to implement and read
package `apache2`

SCM - Frameworks