---
tags:
- devops
- l1
- flashcard-deck
- ansible
---
<!-- wiki:breadcrumb:start -->
[Portal](../../../../library/portal/index.md) | **Level:** [L1: Foundations](../../../../library/portal/levels.md) | **Topics:** [Ansible](../../../../library/portal/topics.md) | **Domain:** DevOps & Tooling
<!-- wiki:breadcrumb:end -->

id	category	difficulty	tags	question	answer	source_path
puppet/00190f97b3f5	puppet	medium	puppet,manifest,conditionals	How does Puppet handle conditional execution of resources?	Puppet uses if/elsif/else, unless, case, and selector statements in manifests. Conditions evaluate Facter facts and variables to control which resources are applied. Example: conditionally install different packages per OS.\n\nRemember: "Puppet = declare the WHAT, not the HOW." You describe desired state; Puppet figures out the steps.\n\nExample: package { 'nginx': ensure => installed } — works on apt, yum, or any supported provider.	projects/knowledge/interview/puppet/015-how-does-puppet-handle-conditional-execution-of-re.txt
puppet/02f59ccc02a3	puppet	medium	puppet,catalog,idempotency	How does Puppet ensure idempotence in configurations?	Puppet ensures idempotency through resource abstraction (declare desired state, not steps), catalog compilation (compares current to desired), and idempotent resource types (only act on differences). Repeated runs produce the same result.\n\nExample: A manifest (.pp file) contains resource declarations. site.pp is the main entry point.\n\nRemember: "Manifest = Puppet source code, Catalog = compiled plan."	projects/knowledge/interview/puppet/004-how-does-puppet-ensure-idempotence-in-configuratio.txt
puppet/07f8bc2d7f69	puppet	easy	puppet,resource,types	What is the purpose of the Puppet External Node Classifier (ENC)?	Core resource types: file, package, service, user, group, exec, cron, mount, notify. Each declares desired state. Resources are idempotent -- Puppet only changes what differs from declared state.\n\nRemember: "Facter gathers FACTS, Puppet uses them." Example: $facts['os']['family'] returns 'Debian' or 'RedHat'.\n\nExample: facter os.family on the command line shows the OS family.	projects/knowledge/interview/puppet/028-what-is-the-purpose-of-the-puppet-external-node-cl.txt
puppet/08b50be9bf14	puppet	easy	puppet,overview,architecture	What is the role of the Puppet Catalog Compiler?	Puppet is a declarative configuration management tool. Agent-server model: Puppet Server compiles catalogs, agents apply them. Uses its own DSL for manifests. Key components: manifests, modules, Facter, Hiera, and the catalog.\n\nExample: class profiles::webserver { include nginx; include firewall } — a profile composes multiple modules into a role.\n\nRemember: "Roles = what a node IS, Profiles = what a node DOES."	projects/knowledge/interview/puppet/020-what-is-the-role-of-the-puppet-catalog-compiler.txt
puppet/09bf78486b35	puppet	medium	puppet,module,structure	Discuss Puppet's approach to handling secrets and sensitive data securely.	Standard module layout: manifests/init.pp (main class), templates/ (EPP/ERB), files/ (static), lib/facter/ (custom facts), lib/puppet/ (types/providers), data/ (Hiera), spec/ (rspec tests). Install community modules with puppet module install.\n\nExample: node 'web01.example.com' { include role::webserver } — the catalog compiler matches node names to definitions.\n\nGotcha: Node names are typically the certname, which defaults to the FQDN.	projects/knowledge/interview/puppet/054-discuss-puppets-approach-to-handling-secrets-and-s.txt
puppet/0aac1ca1a4bf	puppet	hard	puppet,types-providers,custom	Describe the differences between Puppet apply and Puppet agent modes.	Custom types define new resource abstractions; providers implement them per platform. Types define parameters/properties, providers handle create/destroy/exists? methods. Modern alternative: Resource API (Puppet 6+) or Bolt tasks.\n\nRemember: "Puppet Agent pulls, Puppet Server compiles." Agent sends facts → Server compiles catalog → Agent applies catalog.\n\nExample: puppet agent -t triggers an immediate run (test mode).	projects/knowledge/interview/puppet/034-describe-the-differences-between-puppet-apply-and-.txt
puppet/0c3112c1fedb	puppet	medium	puppet,class,manifest	Explain the concept of facts in Puppet.	Classes group related resources. Parameterized classes accept configuration values. Declare with include nginx or class { 'nginx': workers => 8 }. Parameters can have defaults and type constraints.\n\nExample: File["/etc/nginx/nginx.conf"] ~> Service["nginx"] — the tilde-arrow means "notify" (restart service when file changes).\n\nRemember: "-> = order, ~> = order + notify."	projects/knowledge/interview/puppet/008-explain-the-concept-of-facts-in-puppet.txt
puppet/0e1a10883ef3	puppet	easy	puppet,facter,system-info	Explain how Puppet integrates with other DevOps tools in the toolchain.	Facter collects system facts: OS, IPs, memory, CPU, hostname. Access in manifests as $facts['os']['family']. Run facter on CLI to see all. Custom facts extend detection for app-specific data.\n\nExample: class { 'ntp': servers => ['pool.ntp.org'] } — passes the servers parameter to the ntp class.\n\nRemember: "Parameterized classes = reusable modules with knobs."	projects/knowledge/interview/puppet/052-explain-how-puppet-integrates-with-other-devops-to.txt
puppet/13aac978fa2f	puppet	hard	puppet,hiera,data-lookup	Explain the role of the PuppetDB in a Puppet infrastructure.	Hiera is Puppet's data lookup system separating data from code. Hierarchy defined in hiera.yaml (per-node, per-OS, common). Automatic parameter lookup: class params match Hiera keys by convention. Supports YAML, JSON, and eyaml (encrypted) backends.\n\nExample: file { '/etc/motd': ensure => file, content => template('mymodule/motd.erb') } uses an ERB template with embedded Ruby.\n\nGotcha: EPP templates (Puppet language) are preferred over ERB in modern Puppet.	projects/knowledge/interview/puppet/039-explain-the-role-of-the-puppetdb-in-a-puppet-infra.txt
puppet/24662c475fd4	puppet	medium	puppet,agent,server	How can Puppet be used for managing Docker containers?	Agent-server workflow: 1) Agent sends facts to server, 2) Server compiles catalog, 3) Agent receives and applies catalog, 4) Agent sends report. Runs every 30 min by default. Catalog is a dependency graph of resources.\n\nRemember: "Hiera = external data, separated from code." Hierarchy: per-node → per-environment → per-OS → common.\n\nExample: In hiera.yaml, hierarchy levels use facts as lookup keys.	projects/knowledge/interview/puppet/037-how-can-puppet-be-used-for-managing-docker-contain.txt
puppet/26c40433372b	puppet	hard	puppet,environments,r10k	Describe the process of using Puppet in a masterless (standalone) mode.	Puppet environments map to git branches for code isolation. r10k deploys environments from git: Puppetfile declares module versions, r10k deploy environment syncs modules per branch. Enables GitOps workflow for infrastructure code.\n\nExample: environments/production/modules/ vs environments/staging/modules/ — each environment has its own code and data.\n\nGotcha: Agent environment is set in puppet.conf or via ENC.	projects/knowledge/interview/puppet/030-describe-the-process-of-using-puppet-in-a-masterle.txt
puppet/27bf1c71ebff	puppet	easy	puppet,manifest,basics	Explain the Puppet data in modules (data in code) approach.	Manifests (.pp files) contain Puppet code defining resources. Site manifest (site.pp) is the entry point. Node definitions assign classes to specific nodes. Resources declare desired state in Puppet DSL.	projects/knowledge/interview/puppet/046-explain-the-puppet-data-in-modules-data-in-code-ap.txt
puppet/28a8c0de962b	puppet	medium	puppet,template,erb-epp	Discuss the impact of Puppet changes on system performance during a run.	Puppet supports EPP (Puppet language) and ERB (Ruby) templates. EPP uses <%= $variable %> syntax. Templates live in module's templates/ directory. Prefer EPP over ERB for new code. Pass variables explicitly.	projects/knowledge/interview/puppet/045-discuss-the-impact-of-puppet-changes-on-system-per.txt
puppet/2d7ceac18a4b	puppet	hard	puppet,catalog,compilation	Discuss Puppet orchestration and its role in complex infrastructures.	Catalog compilation: Server receives facts, evaluates node classifier/site.pp, resolves Hiera data, compiles all resources into a JSON dependency graph (catalog), sends to agent. Catalogs are cacheable and can be diffed between runs.\n\nRemember: "Module layout: manifests/, files/, templates/, lib/, spec/." The init.pp in manifests/ is the main class.\n\nExample: puppet module generate author-modulename scaffolds the structure.	projects/knowledge/interview/puppet/048-discuss-puppet-orchestration-and-its-role-in-compl.txt
puppet/36e7832b14db	puppet	easy	puppet,package-resource,management	How can you extend Puppet functionality using custom facts and functions?	Package resource manages software: ensure => installed, latest, absent, or specific version string. Provider auto-detected per platform (apt, yum). Use ensure => latest cautiously in production.\n\nExample: puppet apply --noop site.pp shows what WOULD change without applying. Always noop before apply in production.\n\nRemember: "noop = dry run = safety net."	projects/knowledge/interview/puppet/029-how-can-you-extend-puppet-functionality-using-cust.txt
puppet/37027bd51bce	puppet	medium	puppet,relationships,ordering	Explain the Puppet automatic parameter lookup feature.	Resource ordering: require (run after), before (run before), notify (trigger refresh on change), subscribe (refresh when dependency changes). Arrow syntax: Package['nginx'] -> File['/etc/nginx.conf'] ~> Service['nginx'].\n\nRemember: "30 minutes is the default agent interval." puppet agent runs as a daemon, checking in every 30 minutes.\n\nGotcha: For immediate changes, use puppet agent -t (test/one-shot mode).	projects/knowledge/interview/puppet/049-explain-the-puppet-automatic-parameter-lookup-feat.txt
puppet/3c019667b610	puppet	hard	puppet,bolt,orchestration	What is exported resources in Puppet, and how are they used?	Bolt is an agentless orchestration tool. Run commands, scripts, tasks, and plans across nodes via SSH/WinRM without Puppet agent. Plans are YAML or Puppet language workflows. Bolt can apply manifests without a server.\n\nExample: exec { 'apt-update': command => '/usr/bin/apt-get update', refreshonly => true } — only runs when notified.\n\nGotcha: Exec resources are not idempotent by default — always add unless, onlyif, or creates.	projects/knowledge/interview/puppet/024-what-is-exported-resources-in-puppet-and-how-are-t.txt
puppet/3d9b194ddd2d	puppet	easy	puppet,service-resource,management	How can you enforce a specific configuration state using Puppet?	Service resource: ensure => running/stopped, enable => true/false. Commonly combined with subscribe to restart on config changes. Provider auto-selects (systemd, init, upstart).\n\nRemember: "Augeas = surgical config editing." Instead of replacing entire files, Augeas modifies specific settings.\n\nExample: augeas { 'sshd_config': context => '/files/etc/ssh/sshd_config', changes => 'set PermitRootLogin no' }	projects/knowledge/interview/puppet/021-how-can-you-enforce-a-specific-configuration-state.txt
puppet/45a4adb09016	puppet	medium	puppet,defined-type,reuse	What is Puppet and how does it manage infrastructure configuration?	Defined types are reusable manifest blocks. Unlike classes, they can be declared multiple times with different titles. Accept parameters like classes. Use for patterns that repeat with different values (e.g., vhosts, users).	projects/knowledge/interview/puppet/001-what-is-puppet.txt
puppet/4750a97b1b4d	puppet	hard	puppet,testing,rspec	How can you troubleshoot and debug Puppet manifests and configurations?	Test Puppet code with rspec-puppet for unit tests. Pipeline: puppet-lint (style) -> rspec-puppet (unit) -> Litmus/Beaker (integration) -> acceptance tests. \nExample: it { is_expected.to contain_package('nginx') }.	projects/knowledge/interview/puppet/050-how-can-you-troubleshoot-and-debug-puppet-manifest.txt
puppet/50d50fc6fa00	puppet	easy	puppet,file-resource,management	Explain the Puppet report processors and their significance.	File resource manages files, directories, and symlinks. Properties: ensure (file/directory/link), source, content, owner, mode. source uses puppet:///modules/name/path for files from modules.\n\nRemember: "PDK = Puppet Development Kit." It generates modules, runs unit tests, and validates metadata.\n\nExample: pdk new module mymodule && cd mymodule && pdk validate	projects/knowledge/interview/puppet/032-explain-the-puppet-report-processors-and-their-sig.txt
puppet/558417f7bd59	puppet	medium	puppet,enc,node-classifier	Explain the difference between Puppet and other configuration management tools.	External Node Classifiers (ENCs) assign classes and parameters via external scripts/tools. Server calls ENC with certname, receives YAML with classes and parameters. Puppet Enterprise Console, Foreman are common ENCs.\n\nExample: Package['nginx'] -> File['/etc/nginx/nginx.conf'] ~> Service['nginx'] — install, then configure, then restart.\n\nRemember: "The Puppet trinity: Package → File → Service."	projects/knowledge/interview/puppet/002-explain-the-difference-between-puppet-and-other-co.txt
puppet/62d0c3dc6fd1	puppet	hard	puppet,puppetdb,infrastructure	Explain the role of Puppet roles and profiles in a modular architecture.	PuppetDB stores catalogs, facts, and reports. Enables exported resources (cross-node config), fact-based queries, and infrastructure-wide reporting. Backed by PostgreSQL. Essential for multi-node orchestration patterns.	projects/knowledge/interview/puppet/043-explain-the-role-of-puppet-roles-and-profiles-in-a.txt
puppet/649454bf59bb	puppet	easy	puppet,variable,scope	What is the purpose of the Puppet catalog?	Variables use $name syntax and are immutable once set. Scopes: local (class/defined type), node, top-scope ($::variable). Access out-of-scope with $classname::variable. Hiera variables available as class parameters.	projects/knowledge/interview/puppet/006-what-is-the-purpose-of-the-puppet-catalog.txt
puppet/676e9e3613c0	puppet	medium	puppet,exec-resource,commands	What is the Puppet Bolt project, and how is it used?	Exec runs commands (use sparingly, prefer native resources). Use creates, unless, onlyif guards for idempotency. Set refreshonly => true for notification-triggered-only execution. Always specify path.	projects/knowledge/interview/puppet/038-what-is-the-puppet-bolt-project-and-how-is-it-used.txt
puppet/83ff0c715b71	puppet	hard	puppet,exported-resources,cross-node	How does Puppet handle file content updates without replacing the entire file?	Exported resources let one node define resources applied on others. Uses PuppetDB for storage. Syntax: @@resource_type for export, Resource_type <<| |>> for collection. Common for LB backends, monitoring registration, DNS.	projects/knowledge/interview/puppet/040-how-does-puppet-handle-file-content-updates-withou.txt
puppet/87e892809922	puppet	easy	puppet,forge,community	How do you install Puppet on a system?	Puppet Forge (forge.puppet.com) hosts community modules. Install with puppet module install. Modules have quality scores and supported/approved badges. Use r10k Puppetfile for version-pinned management.	projects/knowledge/interview/puppet/011-how-do-you-install-puppet-on-a-system.txt
puppet/88754dbbafb2	puppet	medium	puppet,node-definition,classification	What are the considerations for migrating from Puppet 3 to Puppet 4 or later versions?	Node definitions in site.pp assign classes to specific nodes by name or regex. Modern approach: use ENCs, Hiera, or role/profile pattern instead of node blocks. node default catches unmatched nodes.	projects/knowledge/interview/puppet/053-what-are-the-considerations-for-migrating-from-pup.txt
puppet/8d09ccf1759d	puppet	hard	puppet,performance,tuning	How can you implement Puppet code testing and linting in a development workflow?	Tune Puppet: increase Server JRuby instances, optimize PuppetDB PostgreSQL settings, reduce agent interval for large fleets, minimize Hiera lookup depth, profile slow catalog compilations. Use cached catalogs cautiously.	projects/knowledge/interview/puppet/055-how-can-you-implement-puppet-code-testing-and-lint.txt
puppet/8d98cad57d16	puppet	easy	puppet,user-resource,management	What is the purpose of Puppet environments, and how are they configured?	User resource: ensure => present/absent. Properties: uid, home, managehome, shell, groups. managehome => true creates the home directory with the user.\n\nRemember: "require = before + auto-subscribe, subscribe = notify in reverse." Both create ordering relationships.\n\nExample: service { 'nginx': subscribe => File['/etc/nginx/nginx.conf'] } — restarts when config changes.	projects/knowledge/interview/puppet/031-what-is-the-purpose-of-puppet-environments-and-how.txt
puppet/8f8f74d50e9d	puppet	medium	puppet,role-profile,pattern	What is the Puppet DSL (Domain Specific Language)?	Roles compose profiles: profiles are technology-specific (profile::nginx), roles are business-function (role::webserver includes profiles). Nodes get exactly one role. Separates technology from business logic.	projects/knowledge/interview/puppet/010-what-is-the-puppet-dsl-domain-specific-language.txt
puppet/91d68eaa90d3	puppet	hard	puppet,troubleshooting,debugging	What is the role of the notify resource type in Puppet?	Debug Puppet: puppet agent -t --debug for verbose output, check /var/log/puppetlabs/. Common issues: duplicate resource declarations, dependency cycles, Hiera lookup failures, certificate problems (puppet ssl clean).	projects/knowledge/interview/puppet/022-what-is-the-role-of-the-notify-resource-type-in-pu.txt
puppet/94603fee16bf	puppet	easy	puppet,cron-resource,scheduling	What is a Puppet manifest?	Cron resource manages cron jobs. Properties: command, hour, minute, user, weekday, month. ensure => absent removes the job. Manages entries in user's crontab.	projects/knowledge/interview/puppet/003-what-is-a-puppet-manifest.txt
puppet/9955accfc861	puppet	medium	puppet,augeas,config-editing	Explain the Puppet best practices for writing maintainable manifests.	Augeas edits config files using a tree-based API (no regex/full-file replacement). Supports many file formats. Safer than exec sed. \nExample: set PermitRootLogin to no in sshd_config.	projects/knowledge/interview/puppet/036-explain-the-puppet-best-practices-for-writing-main.txt
puppet/9c7731a3d231	puppet	hard	puppet,migration,upgrade	How does Puppet handle sensitive data such as passwords?	Upgrade Puppet: test in dev, check deprecation warnings, update modules for API compatibility, verify Hiera config (v3 to v5 migration), test with --noop, roll out incrementally starting with non-critical nodes.	projects/knowledge/interview/puppet/019-how-does-puppet-handle-sensitive-data-such-as-pass.txt
puppet/9cee61f1daf8	puppet	easy	puppet,notify-resource,debugging	What is Hiera in Puppet, and how is it used?	Notify resource outputs messages during catalog application. Useful for debugging manifest flow. Use puppet agent --test for interactive verbose output with real-time resource status.\n\nExample: puppet resource user root shows the current state of the root user as Puppet code. Useful for reverse-engineering existing configs.\n\nRemember: "puppet resource = read system state as Puppet code."	projects/knowledge/interview/puppet/009-what-is-hiera-in-puppet-and-how-is-it-used.txt
puppet/a0a1a95663d4	puppet	medium	puppet,data-types,validation	Explain the concept of Puppet facts and how they are collected.	Puppet supports typed parameters: String, Integer, Array[String], Optional, Enum, Boolean, Hash, etc. Type mismatches cause catalog compilation failure. Enforces correctness at compile time.	projects/knowledge/interview/puppet/025-explain-the-concept-of-puppet-facts-and-how-they-a.txt
puppet/a15c9981c6f8	puppet	hard	puppet,deferred-functions,agent-side	What is the role of Facter in Puppet?	Deferred functions run on the agent during catalog application (not at compile time). Used for secrets that shouldn't appear in the catalog. \nExample: Deferred('vault_lookup::lookup', ['secret/app']). Available since Puppet 6.	projects/knowledge/interview/puppet/012-what-is-the-role-of-facter-in-puppet.txt
puppet/a324663433b0	puppet	easy	puppet,mount-resource,filesystem	How can you implement Puppet in a high availability (HA) configuration?	Mount resource: ensure => mounted (mount + fstab), defined (fstab only), unmounted (remove from fstab). Properties: device, fstype, options.\n\nGotcha: Custom facts must be in lib/facter/ inside a module. They are synced to agents via pluginsync.\n\nRemember: "Facts run on the agent, functions run on the server."	projects/knowledge/interview/puppet/042-how-can-you-implement-puppet-in-a-high-availabilit.txt
puppet/af92a6a6a1e9	puppet	medium	puppet,functions,custom	Describe the architecture of a large-scale Puppet deployment.	Custom functions add reusable logic. Modern API (Puppet 4+) is type-safe. Write in Ruby, place in lib/puppet/functions/. Call in manifests as module::function_name(). Also supports Puppet language functions.	projects/knowledge/interview/puppet/041-describe-the-architecture-of-a-large-scale-puppet-.txt
puppet/b0f4a92385e6	puppet	hard	puppet,scaling,architecture	How does Puppet support role-based access control (RBAC)?	Scale Puppet: compile masters behind load balancer, tune PuppetDB connection pool, shard PuppetDB for very large deployments, use Code Manager or r10k for code deployment, implement report processors for external reporting.	projects/knowledge/interview/puppet/026-how-does-puppet-support-role-based-access-control-.txt
puppet/be6edbb1a980	puppet	easy	puppet,group-resource,management	How does Puppet support custom resource types and providers?	Group resource: ensure => present/absent. Properties: gid, members. Use for managing system groups. Often paired with user resources.\n\nRemember: "r10k = Puppet environment deployer." It syncs Git branches to Puppet environments and deploys modules from a Puppetfile.\n\nExample: r10k deploy environment production pulls the production branch.	projects/knowledge/interview/puppet/044-how-does-puppet-support-custom-resource-types-and-.txt
puppet/c528bda7e476	puppet	medium	puppet,iteration,each	How does Puppet handle dependencies between resources?	Puppet supports iteration (4+): each, map, filter, reduce, slice. Iterate over arrays and hashes to create resources dynamically. \nExample: ['nginx','vim'].each |$pkg| { package { $pkg: ensure => installed } }.	projects/knowledge/interview/puppet/007-how-does-puppet-handle-dependencies-between-resour.txt
puppet/c712af6d6f3b	puppet	hard	puppet,security,ssl-certificates	Describe the Puppet Forge. How can modules be shared and obtained from Puppet Forge?	Puppet uses SSL for all agent-server communication. CA managed by Puppet Server. Key commands: puppetserver ca list/sign, puppet ssl clean. Rotate CA before expiry. Use policy-based autosigning over open autosigning.	projects/knowledge/interview/puppet/016-describe-the-puppet-forge-how-can-modules-be-share.txt
puppet/c9ee4af64e27	puppet	easy	puppet,host-resource,dns	Explain the Puppet resource type and provide examples.	Host resource manages /etc/hosts entries. Properties: ensure, ip, host_aliases. Useful for local DNS overrides and service discovery in environments without full DNS.	projects/knowledge/interview/puppet/013-explain-the-puppet-resource-type-and-provide-examp.txt
puppet/ca3a8a4b4cc8	puppet	medium	puppet,report-processors,monitoring	What is the purpose of the Puppet Hiera hierarchy?	Report processors handle agent run reports. Built-in: log, store, http. Custom processors send data to monitoring/alerting systems. Configure in puppet.conf: reports = store,http.	projects/knowledge/interview/puppet/017-what-is-the-purpose-of-the-puppet-hiera-hierarchy.txt
puppet/d81605967a00	puppet	hard	puppet,facts,custom-external	How do you enforce periodic Puppet agent runs?	Custom facts: Ruby-based (lib/facter/) with Facter.add, or external facts (drop scripts/files in /etc/facter/facts.d/ as YAML, JSON, or executable). Structured facts return hashes/arrays for complex data.	projects/knowledge/interview/puppet/023-how-do-you-enforce-periodic-puppet-agent-runs.txt
puppet/dbad3d9912dc	puppet	easy	puppet,noop-mode,dry-run	What are Puppet modules, and how do they promote reusability?	Noop mode shows what Puppet would change without applying: puppet agent -t --noop. Reports each resource as in-sync or would-change. Essential for validating changes before production. Can be set in puppet.conf.	projects/knowledge/interview/puppet/014-what-are-puppet-modules-and-how-do-they-promote-re.txt
puppet/eb4a62658565	puppet	medium	puppet,virtual-resources,realization	How can you integrate Puppet with version control systems like Git?	Virtual resources are declared but not applied unless realized with realize() or collector syntax (<| |>). Avoids duplicate declaration errors when multiple classes need the same resource.	projects/knowledge/interview/puppet/033-how-can-you-integrate-puppet-with-version-control-.txt
puppet/ee5db9af7c8a	puppet	hard	puppet,code-manager,deployment	Discuss the use of Puppet with continuous integration/continuous deployment (CI/CD) pipelines.	Code Manager (PE) automates code deployment from git. Triggered by webhook on push. Deploys environments, installs Puppetfile modules. Open-source alternative: r10k with custom deployment scripts.	projects/knowledge/interview/puppet/051-discuss-the-use-of-puppet-with-continuous-integrat.txt
puppet/f0a46d70520f	puppet	easy	puppet,puppet-apply,local	Explain the Puppet relationships metaparameter and its usage.	puppet apply runs manifests locally without a server. Useful for testing, bootstrapping, masterless setups. Supports --noop for dry runs. \nExample: puppet apply -e 'package { nginx: ensure => installed }'.	projects/knowledge/interview/puppet/027-explain-the-puppet-relationships-metaparameter-and.txt
puppet/f5c90d44d213	puppet	medium	puppet,concat-module,files	What is the Puppet Resource Abstraction Layer (RAL)?	Concat module assembles files from fragments contributed by different classes. Each fragment has an order value for sorting. Useful when multiple modules contribute sections to a single config file.	projects/knowledge/interview/puppet/035-what-is-the-puppet-resource-abstraction-layer-ral.txt
puppet/f86fba597411	puppet	hard	puppet,resource-api,modern	Explain the differences between include, require, and contain in Puppet.	Resource API (Puppet 6+) is the modern way to write types and providers. Simpler than legacy type/provider pattern with automatic data type validation. Define attributes declaratively with types and defaults.	projects/knowledge/interview/puppet/018-explain-the-differences-between-include-require-an.txt
puppet/f905c25d023d	puppet	medium	puppet,windows,cross-platform	Describe the Puppet Master and Puppet Agent components.	Puppet on Windows: package (MSI/Chocolatey), service, file (NTFS via ACL module), registry_key, scheduled_task, exec (PowerShell), dsc resources. Use $facts['os']['family'] == 'windows' guards for cross-platform modules.	projects/knowledge/interview/puppet/005-describe-the-puppet-master-and-puppet-agent-compon.txt
puppet/fb6f35cb7a53	puppet	hard	puppet,idempotency,troubleshooting	How does Puppet support multi-cloud or hybrid cloud environments?	Non-idempotent resources usually involve exec without guards. Fix: add creates, unless, onlyif, refreshonly. Other causes: file resources with dynamic content, notify chains that always trigger, broken provider exists? methods.	projects/knowledge/interview/puppet/047-how-does-puppet-support-multi-cloud-or-hybrid-clou.txt

<!-- wiki:related:start -->
---

## Wiki Navigation

### Related Content

- [Ansible Automation](../../../../library/topics/ansible/index.md) (Topic Pack, L1) — Ansible
- Ansible Core Flashcards *(CLI)* (flashcard_deck, L1) — Ansible
- [Ansible Deep Dive](../../../../library/topics/ansible-deep-dive/index.md) (Topic Pack, L2) — Ansible
- [Ansible Drills](../../../../library/drills/ansible_drills.md) (Drill, L1) — Ansible
- Ansible Exercises (Quest Ladder) *(CLI)* (Exercise Set, L1) — Ansible
- Ansible Lab: Conditionals and Loops *(CLI)* (Lab, L1) — Ansible
- Ansible Lab: Facts and Variables *(CLI)* (Lab, L0) — Ansible
- Ansible Lab: Install Nginx (Idempotency) *(CLI)* (Lab, L1) — Ansible
- Ansible Lab: Ping and Debug *(CLI)* (Lab, L0) — Ansible
- Ansible Lab: Roles *(CLI)* (Lab, L1) — Ansible

<!-- wiki:related:end -->
