Correct Answers: B and D
There are agent-based and agentless configuration tools. Agent (service or daemon) runs in the background and provides information about the configuration status of the environment. Chef and Puppet have agents that supply such information. On the contrary, Ansible is an agentless tool. It uses SSH/WinRM to connect to the VM and Python to run the necessary configuration setups. Option B is correct. Chef is an automation tool that manages infrastructure in the cloud, on-premises, or a hybrid environment. It uses recipes (scripts) that are based on Ruby to keep configuration from a drift. Chef uses an agent for applying configuration changes and reports the status.
Option D is correct. Puppet is an automation tool that runs manifest files to maintain the required configuration. It is also based on Ruby.
Option A is incorrect. Ansible is an open-source configuration management, provision, and application deployment tool. It uses Playbook - a YAML file for creating and supporting a desired configuration. It does not use an agent but connects directly to the virtual machine and utilizes Python for its operating needs.
Option C is incorrect. Terraform is an infrastructure and services management tool. It uses Terraform Script written in Hashicorp Configuration Language (HCL) to define an infrastructure or services in any cloud in a declarative way, similar to ARM templates. Terraform is not a configuration management tool.
Option E is incorrect. Cloud-init is a Linux init configuration file that installs packages or configures users during system boot. It installs all required configuration settings on the VM`s boot and does not use an agent for monitoring the system.
For more information about the configuration management tools, please visit the below URLs:
https://docs.microsoft.com/en-us/learn/modules/configure-infrastructure-azure-pipelines/2-what-is-configuration-as-code
https://docs.microsoft.com/en-us/learn/modules/configure-infrastructure-azure-pipelines/3-tools-overview