




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
## Part 1: Puppet Program Certification (Foundation/Developer Level) — Continuous 250-Question Exam (Based on Puppet 7/8 DSL, Resource Abstraction Layer, PuppetDB, and Hiera) Question 1 What is the primary function of the Resource Abstraction Layer (RAL) in Puppet? A) To encrypt data in transit B) To provide a unified interface for managing system resources across different operating systems C) To compile manifests into catalogs D) To manage the Puppet server configuration Answer: B Explanation: The RAL allows the same Puppet code to work on different OS by abstracting system specifics (e.g., `package` resource handles `apt` vs `yum`).
Typology: Exams
1 / 284
This page cannot be seen from the preview
Don't miss anything!





























































































(Based on Puppet 7/8 DSL, Resource Abstraction Layer, PuppetDB, and Hiera) Question 1 What is the primary function of the Resource Abstraction Layer (RAL) in Puppet? A) To encrypt data in transit B) To provide a unified interface for managing system resources across different operating systems C) To compile manifests into catalogs D) To manage the Puppet server configuration Answer: B Explanation: The RAL allows the same Puppet code to work on different OS by abstracting system specifics (e.g., package resource handles apt vs yum).
Question 2 In the Puppet resource declaration file { '/etc/ssh/sshd_config': ensure => file, }, what is 'file' in this context? A) The title B) The attribute C) The resource type D) The value Answer: C Explanation: file is the resource type. The title is /etc/ssh/sshd_config. ensure is the attribute. file is the value.
Question 3 A Puppet agent requests a catalog from the primary server. Which port does it typically use for secure communication? A) 80 (HTTP)
Explanation: The recommended approach is using facts (e.g., $facts['os']['family']) inside a case or if statement to set variables based on the operating system.
Question 5 In the Puppet code if $facts['os']['name'] == 'Ubuntu' { include ubuntu_config }, what is $facts['os']['name']? A) A global variable set by the manifest author B) A custom fact defined in a module C) A built-in (core) fact collected by Facter D) An environment variable Answer: C Explanation: Facter collects system facts. $facts['os']['name'] is a core fact returning the OS name.
Question 6
How does a Puppet agent determine which environment to request from the primary server? A) The agent's puppet.conf file sets the environment parameter B) The agent asks the user every time C) The primary server randomly assigns one D) It is hardcoded to production Answer: A Explanation: The agent's configuration file (puppet.conf) can set a default environment. This can be overridden by the primary server's node classifier.
Question 7 What is the correct syntax to install the nginx package via Puppet? A) package { install 'nginx': } B) apt { 'nginx': ensure => present } C) package { 'nginx': ensure => installed } D) yum { 'nginx': ensure => latest }
Question 9 When applying a manifest using puppet apply, where is the catalog compiled? A) On a remote primary server B) On the local machine where the command is run C) In a central PuppetDB instance D) It is not compiled; it is interpreted line by line Answer: B Explanation: puppet apply runs a local primary server in memory to compile the catalog and enforce it locally without needing a remote server.
Question 10 In Hiera, what is the purpose of the lookup function? A) To look up a DNS record B) To retrieve a value from the Hiera data hierarchy C) To inspect the contents of a class D) To find the IP address of a node
Answer: B Explanation: The lookup function is used within Puppet code to retrieve data (like parameters) from Hiera data files (YAML/JSON).
Question 11 Given the Hiera hierarchy ['osfamily/%{facts.os.family}', 'common'] and a node running Ubuntu (osfamily = Debian), which file is looked up first for key ntp::servers? A) data/osfamily/Debian.yaml B) data/common.yaml C) data/Ubuntu.yaml D) data/osfamily/Ubuntu.yaml Answer: A Explanation: The hierarchy interpolates %{facts.os.family} which equals Debian. It looks for osfamily/Debian.yaml first.
D) ensure => 'MaxClients 150' Answer: B Explanation: The content attribute sets the exact content of the file. ensure => present only checks existence.
Question 14 What problem does the ~> (notification) chaining arrow solve? A) It orders resources and sends a refresh signal to the chained resource if the first resource changes. B) It orders resources in reverse. C) It makes resources run simultaneously. D) It is used for mathematical operations. Answer: A Explanation: ~> orders resources. If the first resource changes, it triggers a refresh event (e.g., restart) on the second resource.
Question 15 Which of the following is the correct syntax for a Puppet class parameter? A) class ntp ($servers = ['pool.ntp.org']) { ... } B) class ntp { $servers = ['pool.ntp.org'] - > ... } C) class ntp { param $servers = ['pool.ntp.org'] } D) class ntp inherits servers { ... } Answer: A Explanation: Class parameters are defined in parentheses after the class name.
Question 16 What is the effect of the subscribe => File['/etc/ntp.conf'] metaparameter on a Service['ntpd'] resource? A) The service will start before the file is written. B) The service will restart if the file changes. C) The service will ignore changes to the file.
Question 18 Which directory in a standard Puppet module holds the main init.pp manifest? A) /files B) /templates C) /manifests D) /lib Answer: C Explanation: The manifests directory contains Puppet code. The class defined in init.pp must match the module name (e.g., class apache).
Question 19 The function file('apache/vhost.conf') retrieves a file from where? A) The module's files directory
B) The templates directory C) The Puppet server's global files directory D) The agent's local file system Answer: A Explanation: The file function reads static content from the files directory of a module.
Question 20 What is the primary purpose of the puppetlabs-stdlib module? A) To manage the Ruby standard library B) To provide a collection of helper functions and custom resource types C) To replace the need for Hiera D) To manage Windows registry Answer: B
Question 22 What is the purpose of the default hierarchy level in Hiera? A) To store encrypted secrets B) To provide fallback values if no other hierarchy level matches C) To override all other levels D) To store OS-specific values Answer: B Explanation: The common or default level is the last level in the hierarchy, providing default values when specific ones are not found.
Question 23 Given the resource file { '/tmp/test.txt': ensure => file, owner => 'root', group => 'root', mode => '0644' }, what does 0644 represent? A) The size of the file B) The file permissions in octal C) The MD5 checksum of the file D) The SELinux context
Answer: B Explanation: 0644 is the octal representation of standard file permissions: rw-r--r--.
Question 24 What does the command puppet parser validate site.pp do? A) It applies the manifest to the current system B) It checks the syntax of the manifest without enforcing it C) It encrypts the manifest D) It optimizes the manifest for performance Answer: B Explanation: The parser validate command checks syntax (e.g., missing braces, commas, invalid types).
Question 25
Answer: A Explanation: require is a chaining parameter. File['/etc/config'] - > Service['daemon'] is equivalent to Service['daemon'] { require => File['/etc/config'] }.
Question 27 A Puppet Enterprise (PE) console shows a node with a "No-op" status. What does this mean? A) The node failed to apply the catalog B) The node applied the catalog in a dry-run mode C) The node is offline D) The primary server refused the connection Answer: B Explanation: "No-op" indicates that the agent ran in --noop mode (dry run), showing changes that would have occurred without making them.
Question 28 Which Facter fact would you use to conditionally apply a configuration only to virtual machines? A) $facts['is_virtual'] B) $facts['hostname'] C) $facts['processorcount'] D) $facts['memorysize'] Answer: A Explanation: The is_virtual fact returns true if the node is a virtual machine (VMware, VirtualBox, KVM, etc.) and false for physical hardware.
Question 29 What is the function of PuppetDB? A) It serves as a load balancer for primary servers B) It stores data about the infrastructure, including catalogs, facts, and reports