The most straightforward method of automating.

Breaks down a manual task into discrete steps, define each step in code with any scripting language (Bash, Python, Ruby), and execute the script on the server.

Great for small, one-off tasks.

Problems:

  • Using general-purpose programming language gives flexibility, but also brings possible chaos when each developer will write script in its own manner.
  • Idempotence is difficult to implement.
  • Costly to implement in a way to manage a large number of servers, instead of a local one.