# What is automation?

Automation software is software that can be used to automate tasks - such as server configuration/deployment.

====================================================================================

#### Agent-based automation 

Automation that requires an agent (software package specific to the automation system) that is responsible for performing automation tasks.

The typical process for using agent-based automation is to have Linux images saved with the agent pre-installed/configured.

- Typically not as versatile across Linux distros
- Tends to be more reliable in it's execution
- Verbose logging

puppet, chef

====================================================================================

#### Agentless automation 

Automation that does not require an agent to be installed. Instead, native system functionality is used to complete automation tasks.

- Typically more complex to configure
- More versatile in its configuration options

Ansible, Puppet: Bolt