Lpi 701-100 Practice Exams
Last updated on Oct 21,2026- Exam Code: 701-100
- Exam Name: Linux Professional Institute DevOps Tools Engineer Exam 701
- Certification Provider: Lpi
- Latest update: Oct 21,2026
What is the primary advantage of using a container over a traditional Virtual Machine (VM)?
- A . Containers provide better security by using separate kernels for each application
- B . Containers require separate operating systems, making them more flexible
- C . Containers share the host OS kernel, making them lightweight and faster to start
- D . Containers include a full hypervisor, allowing them to run multiple operating systems
C
Explanation:
Unlike VMs, which run a separate operating system, containers share the host OS kernel, making them faster, lightweight, and more efficient. This allows for quick startup and lower resource usage.
Your company has deployed a centralized logging system using ELK Stack (Elasticsearch, Logstash, Kibana). However, you notice that the Elasticsearch index size is growing too fast, consuming too much disk space.
What is the BEST way to manage this issue?
- A . Delete all log entries manually every day
- B . Enable log rotation and set an index retention policy in Elasticsearch
- C . Move all logs to an external database
- D . Store logs in plain text files instead of Elasticsearch
B
Explanation:
Elasticsearch allows configuring index lifecycle management (ILM) to automatically delete or archive old logs.
Example of setting an ILM policy in Elasticsearch:
{
"policy": {
"phases": {
"delete": {
"min_age": "30d",
"actions": {
"delete": {}
}
}
}
}
}
Option A is incorrect because manually deleting logs is inefficient.
Option C is incorrect because moving logs to a database does not solve the problem of excessive data growth.
Option D is incorrect because plain text files are harder to search and analyze.
A DevOps team is using Prometheus and Grafana to monitor infrastructure performance. They need to configure Prometheus to collect CPU usage metrics from multiple Linux servers.
What is the correct way to achieve this?
- A . Install Prometheus on each server and configure it separately
- B . Use Prometheus Node Exporter to collect system metrics and configure it as a target
- C . Configure Grafana to pull data directly from the Linux servers without Prometheus
- D . Use Logstash to collect CPU metrics and send them to Prometheus
B
Explanation:
– Prometheus Node Exporter is used to collect CPU, memory, disk, and network metrics from Linux servers.
– Correct Prometheus configuration (prometheus.yml):
– scrape_configs:
– – job_name: ‘node_exporter’
– static_configs:
– – targets: [‘192.168.1.10:9100’, ‘192.168.1.11:9100’]
– Option A is incorrect because Prometheus follows a pull-based model from exporters, not multiple instances.
– Option C is incorrect because Grafana only visualizes data; it does not collect metrics.
– Option D is incorrect because Logstash is not a Prometheus-compatible exporter.
Which Terraform resource type is used to deploy an AWS EC2 instance?
- A . aws_ec2_instance
- B . aws_instance
- C . terraform_ec2
- D . ec2_vm
B
Explanation:
– aws_instance is the correct Terraform resource for creating an AWS EC2 instance.
– aws_ec2_instance, terraform_ec2, and ec2_vm are not valid Terraform resource names.
A security audit reveals that one of your containerized applications is running with unnecessary root privileges.
What is the BEST way to enhance security?
- A . Modify the Dockerfile to include USER 1000
- B . Add –privileged flag to grant full access to the container
- C . Use docker exec -u root to manually switch users inside the container
- D . Run the container as a non-root user inside Kubernetes using runAsUser: 0
A
Explanation:
By default, Docker containers run as the root user, which can pose a security risk.
– Best Practice: Always run containers with a non-root user to limit access to the host system.
– Solution: Modify the Dockerfile:
– FROM ubuntu:latest
– RUN useradd -m appuser
– USER appuser
– CMD ["./app"]
– This ensures that the container runs with limited privileges, reducing security risks.
You are deploying a web application using Kubernetes. Your Pods start successfully, but users cannot access the application.
What is the MOST likely reason for this issue?
- A . The application is using an incorrect image
- B . The Pods do not have enough memory allocated
- C . There is no Kubernetes Service exposing the application
- D . The application is missing environment variables
C
Explanation:
In Kubernetes, a Pod is an internal component and does not expose its services by default. To allow external access, a Kubernetes Service is needed.
– Solution:
o Create a Service to expose the application:
– apiVersion: v1
– kind: Service
– metadata:
– name: myservice
– spec:
– selector:
– app: myapp
– ports:
– – protocol: TCP
– port: 80
– targetPort: 8080
– type: LoadBalancer
o Apply the service using:
– kubectl apply -f service.yaml
– This makes the application accessible to users.
You deploy a database in a container and need to ensure that its data persists even after the container is deleted.
What should you use?
- A . A Kubernetes Deployment
- B . A Docker Bind Mount
- C . A Docker Volume
- D . A Dockerfile
C
Explanation:
Docker Volumes allow persistent data storage independent of the container’s lifecycle. Unlike bind mounts, volumes are managed by Docker and provide better security and flexibility.
Which Kubernetes command is used to deploy a Pod using a YAML configuration file?
- A . kubectl create -f mypod.yaml
- B . kubectl run -f mypod.yaml
- C . kubectl start pod mypod.yaml
- D . kubectl apply -f mypod.yaml
D
Explanation:
The kubectl apply -f command is used to create or update resources based on a YAML definition file. This is the recommended approach for declarative Kubernetes management.
A DevOps engineer is using Terraform to manage AWS infrastructure.
What command should they run first to initialize Terraform?
- A . terraform apply
- B . terraform plan
- C . terraform init
- D . terraform destroy
C
Explanation:
– terraform init initializes the Terraform project and downloads necessary provider plugins.
– terraform plan shows the execution plan but does not initialize Terraform.
– terraform apply deploys infrastructure after initialization.
– terraform destroy removes infrastructure.
A company is using Ansible to configure web servers. The playbook needs to install and configure Nginx but should allow for future updates without reinstalling the package every time the playbook runs.
What is the correct way to achieve this?
- A . Use state: latest in the Ansible task
- B . Use state: absent and then state: present in two separate tasks
- C . Manually check if Nginx is installed before running the playbook
- D . Use the ignore_errors directive to continue even if Nginx is missing
A
Explanation:
– The correct approach in Ansible is to set state: latest, which ensures that Nginx is installed and updates it if a newer version is available.
– Option B is incorrect because removing and reinstalling the package every time is inefficient.
– Option C is incorrect because Ansible can handle this automatically.
– Option D is incorrect because ignoring errors does not ensure proper package installation.