Workshop wiki · English

Ansible Local Provisioner: Vagrant (EN)

Ansible im Gast als lokaler Provisioner.

Workshop examples as ZIP files
Learning progress in the web app

Mark chapters as read, view reading progress and check off practice modules after enabling the optional web app. Workshop progress is calculated from chapters across all document pages. Your choices stay on this device; there is no account or server sync. Installation is not required. Withdrawing your choice in Privacy settings deletes the progress.

Reading progress0%
0%
0 / 8 chapters read
Other language versionGerman ↗

Ansible Local Provisioner: Vagrant (EN)

Goal

Ansible im Gast als lokaler Provisioner.

Ansible Local Provisioner is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.

01 / 08

Files

  • Vagrantfile: declarative contract for box, provider, network, sync and provisioning
  • scripts/provision.sh: idempotent sample provisioner
  • scripts/verify.sh: local checks in the lab context
  • config/box-policy.yaml: box and provider policy
  • baseline.json: machine-readable expectation for review and CI
  • run.sh: non-destructive runner without VM start
02 / 08

Flow

bash
./run.sh
find work/evidence -maxdepth 1 -type f -print
03 / 08

Review Points

  • Which box is used, who maintains it and which version is approved?
  • Which provider is required and which host permissions does it need?
  • Which forwarded ports, private networks or public networks are opened?
  • Which files are synced between host and guest?
  • Which provisioners run with root privileges and are they idempotent?
  • Which plugins are required and how are they versioned?
  • Which host resources are consumed during vagrant up?
  • What is the recovery path for a broken VM, box regression or SSH failure?
04 / 08

Vagrantfile Snippet

ruby
Vagrant.configure("2") do |config|
  config.vm.box = ENV.fetch("VAGRANT_WORKSHOP_BOX", "bento/ubuntu-24.04")
  config.vm.network "forwarded_port", guest: 8080, host: 18080, host_ip: "127.0.0.1"
  config.vm.provision "shell", path: "scripts/provision.sh", privileged: false
end
05 / 08

Security Notes

  • The sample box is an exchangeable lab value. Real teams must document a maintained box with version, source and approval.
  • host_ip: "127.0.0.1" prevents forwarded ports from becoming visible on the LAN without review.
  • Synced folders must not contain SSH keys, tokens, .env files or customer data.
  • Provisioners must be repeatable; one-off shell hacks are not an operations standard.
06 / 08

Tasks

Task 01: Roll out box updates through controlled testing instead of implicit team upgrades

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 02: Treat plugins as supply-chain components and document their versions

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 03: Use snapshots as lab helpers, not as a backup replacement

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 04: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 05: Check the box source in the HCP Vagrant Registry or an internal registry

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 06: Version the Vagrantfile and review changes like infrastructure code

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 07: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 08: Bind forwarded ports to 127.0.0.1 by default and review public networks separately

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 09: Write provisioners idempotently and keep package installation reproducible

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 10: Limit synced folders to the minimum required paths and never sync secrets

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 11: Roll out box updates through controlled testing instead of implicit team upgrades

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 12: Treat plugins as supply-chain components and document their versions

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 13: Use snapshots as lab helpers, not as a backup replacement

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 14: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 15: Check the box source in the HCP Vagrant Registry or an internal registry

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 16: Version the Vagrantfile and review changes like infrastructure code

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 17: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 18: Bind forwarded ports to 127.0.0.1 by default and review public networks separately

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 19: Write provisioners idempotently and keep package installation reproducible

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 20: Limit synced folders to the minimum required paths and never sync secrets

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 21: Roll out box updates through controlled testing instead of implicit team upgrades

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 22: Treat plugins as supply-chain components and document their versions

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 23: Use snapshots as lab helpers, not as a backup replacement

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 24: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 25: Check the box source in the HCP Vagrant Registry or an internal registry

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 26: Version the Vagrantfile and review changes like infrastructure code

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 27: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 28: Bind forwarded ports to 127.0.0.1 by default and review public networks separately

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 29: Write provisioners idempotently and keep package installation reproducible

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 30: Limit synced folders to the minimum required paths and never sync secrets

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 31: Roll out box updates through controlled testing instead of implicit team upgrades

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 32: Treat plugins as supply-chain components and document their versions

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 33: Use snapshots as lab helpers, not as a backup replacement

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 34: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 35: Check the box source in the HCP Vagrant Registry or an internal registry

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 36: Version the Vagrantfile and review changes like infrastructure code

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 37: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 38: Bind forwarded ports to 127.0.0.1 by default and review public networks separately

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 39: Write provisioners idempotently and keep package installation reproducible

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 40: Limit synced folders to the minimum required paths and never sync secrets

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 41: Roll out box updates through controlled testing instead of implicit team upgrades

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 42: Treat plugins as supply-chain components and document their versions

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.

Task 43: Use snapshots as lab helpers, not as a backup replacement

  1. Check where this pattern is implemented or deliberately documented in the example.
  2. Run ./run.sh and open the evidence files.
  3. Record one improvement to the Vagrantfile or policy.
  4. Explain whether the change must be reviewed before vagrant up.
07 / 08

Practice Appendix: Ansible Local Provisioner detail cards

The following cards are intended for repetition, review and coaching. Each card has a concrete Vagrant angle and can be used as a short exercise, pairing prompt or pull-request comment.

Card 001: Check the box source in the HCP Vagrant Registry or an internal registry

  • Context: Check the box source in the HCP Vagrant Registry or an internal registry is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant init.
  • Review question: Which box is used, who maintains it and which version is approved?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 002: Version the Vagrantfile and review changes like infrastructure code

  • Context: Version the Vagrantfile and review changes like infrastructure code is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant validate.
  • Review question: Which provider is required and which host permissions does it need?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 003: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt

  • Context: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant up.
  • Review question: Which forwarded ports, private networks or public networks are opened?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 004: Bind forwarded ports to 127.0.0.1 by default and review public networks separately

  • Context: Bind forwarded ports to 127.0.0.1 by default and review public networks separately is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant status.
  • Review question: Which files are synced between host and guest?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 005: Write provisioners idempotently and keep package installation reproducible

  • Context: Write provisioners idempotently and keep package installation reproducible is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant ssh.
  • Review question: Which provisioners run with root privileges and are they idempotent?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 006: Limit synced folders to the minimum required paths and never sync secrets

  • Context: Limit synced folders to the minimum required paths and never sync secrets is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant ssh-config.
  • Review question: Which plugins are required and how are they versioned?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 007: Roll out box updates through controlled testing instead of implicit team upgrades

  • Context: Roll out box updates through controlled testing instead of implicit team upgrades is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant provision.
  • Review question: Which host resources are consumed during vagrant up?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 008: Treat plugins as supply-chain components and document their versions

  • Context: Treat plugins as supply-chain components and document their versions is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant reload.
  • Review question: What is the recovery path for a broken VM, box regression or SSH failure?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 009: Use snapshots as lab helpers, not as a backup replacement

  • Context: Use snapshots as lab helpers, not as a backup replacement is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant halt.
  • Review question: Which box is used, who maintains it and which version is approved?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 010: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs

  • Context: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant destroy.
  • Review question: Which provider is required and which host permissions does it need?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 011: Check the box source in the HCP Vagrant Registry or an internal registry

  • Context: Check the box source in the HCP Vagrant Registry or an internal registry is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant box list.
  • Review question: Which forwarded ports, private networks or public networks are opened?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 012: Version the Vagrantfile and review changes like infrastructure code

  • Context: Version the Vagrantfile and review changes like infrastructure code is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant box update.
  • Review question: Which files are synced between host and guest?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 013: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt

  • Context: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant plugin list.
  • Review question: Which provisioners run with root privileges and are they idempotent?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 014: Bind forwarded ports to 127.0.0.1 by default and review public networks separately

  • Context: Bind forwarded ports to 127.0.0.1 by default and review public networks separately is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant snapshot save.
  • Review question: Which plugins are required and how are they versioned?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 015: Write provisioners idempotently and keep package installation reproducible

  • Context: Write provisioners idempotently and keep package installation reproducible is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant init.
  • Review question: Which host resources are consumed during vagrant up?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 016: Limit synced folders to the minimum required paths and never sync secrets

  • Context: Limit synced folders to the minimum required paths and never sync secrets is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant validate.
  • Review question: What is the recovery path for a broken VM, box regression or SSH failure?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 017: Roll out box updates through controlled testing instead of implicit team upgrades

  • Context: Roll out box updates through controlled testing instead of implicit team upgrades is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant up.
  • Review question: Which box is used, who maintains it and which version is approved?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 018: Treat plugins as supply-chain components and document their versions

  • Context: Treat plugins as supply-chain components and document their versions is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant status.
  • Review question: Which provider is required and which host permissions does it need?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 019: Use snapshots as lab helpers, not as a backup replacement

  • Context: Use snapshots as lab helpers, not as a backup replacement is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant ssh.
  • Review question: Which forwarded ports, private networks or public networks are opened?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 020: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs

  • Context: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant ssh-config.
  • Review question: Which files are synced between host and guest?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 021: Check the box source in the HCP Vagrant Registry or an internal registry

  • Context: Check the box source in the HCP Vagrant Registry or an internal registry is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant provision.
  • Review question: Which provisioners run with root privileges and are they idempotent?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 022: Version the Vagrantfile and review changes like infrastructure code

  • Context: Version the Vagrantfile and review changes like infrastructure code is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant reload.
  • Review question: Which plugins are required and how are they versioned?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 023: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt

  • Context: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant halt.
  • Review question: Which host resources are consumed during vagrant up?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 024: Bind forwarded ports to 127.0.0.1 by default and review public networks separately

  • Context: Bind forwarded ports to 127.0.0.1 by default and review public networks separately is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant destroy.
  • Review question: What is the recovery path for a broken VM, box regression or SSH failure?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 025: Write provisioners idempotently and keep package installation reproducible

  • Context: Write provisioners idempotently and keep package installation reproducible is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant box list.
  • Review question: Which box is used, who maintains it and which version is approved?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 026: Limit synced folders to the minimum required paths and never sync secrets

  • Context: Limit synced folders to the minimum required paths and never sync secrets is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant box update.
  • Review question: Which provider is required and which host permissions does it need?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 027: Roll out box updates through controlled testing instead of implicit team upgrades

  • Context: Roll out box updates through controlled testing instead of implicit team upgrades is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant plugin list.
  • Review question: Which forwarded ports, private networks or public networks are opened?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 028: Treat plugins as supply-chain components and document their versions

  • Context: Treat plugins as supply-chain components and document their versions is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant snapshot save.
  • Review question: Which files are synced between host and guest?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 029: Use snapshots as lab helpers, not as a backup replacement

  • Context: Use snapshots as lab helpers, not as a backup replacement is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant init.
  • Review question: Which provisioners run with root privileges and are they idempotent?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 030: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs

  • Context: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant validate.
  • Review question: Which plugins are required and how are they versioned?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 031: Check the box source in the HCP Vagrant Registry or an internal registry

  • Context: Check the box source in the HCP Vagrant Registry or an internal registry is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant up.
  • Review question: Which host resources are consumed during vagrant up?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 032: Version the Vagrantfile and review changes like infrastructure code

  • Context: Version the Vagrantfile and review changes like infrastructure code is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant status.
  • Review question: What is the recovery path for a broken VM, box regression or SSH failure?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 033: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt

  • Context: Document provider assumptions explicitly, especially VirtualBox, Docker, Hyper-V, VMware and libvirt is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant ssh.
  • Review question: Which box is used, who maintains it and which version is approved?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 034: Bind forwarded ports to 127.0.0.1 by default and review public networks separately

  • Context: Bind forwarded ports to 127.0.0.1 by default and review public networks separately is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant ssh-config.
  • Review question: Which provider is required and which host permissions does it need?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 035: Write provisioners idempotently and keep package installation reproducible

  • Context: Write provisioners idempotently and keep package installation reproducible is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant provision.
  • Review question: Which forwarded ports, private networks or public networks are opened?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 036: Limit synced folders to the minimum required paths and never sync secrets

  • Context: Limit synced folders to the minimum required paths and never sync secrets is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant reload.
  • Review question: Which files are synced between host and guest?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 037: Roll out box updates through controlled testing instead of implicit team upgrades

  • Context: Roll out box updates through controlled testing instead of implicit team upgrades is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant halt.
  • Review question: Which provisioners run with root privileges and are they idempotent?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 038: Treat plugins as supply-chain components and document their versions

  • Context: Treat plugins as supply-chain components and document their versions is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant destroy.
  • Review question: Which plugins are required and how are they versioned?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 039: Use snapshots as lab helpers, not as a backup replacement

  • Context: Use snapshots as lab helpers, not as a backup replacement is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant box list.
  • Review question: Which host resources are consumed during vagrant up?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 040: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs

  • Context: Start troubleshooting with vagrant status, ssh-config, port, provision and provider-specific logs is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant box update.
  • Review question: What is the recovery path for a broken VM, box regression or SSH failure?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 041: Check the box source in the HCP Vagrant Registry or an internal registry

  • Context: Check the box source in the HCP Vagrant Registry or an internal registry is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant plugin list.
  • Review question: Which box is used, who maintains it and which version is approved?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.

Card 042: Version the Vagrantfile and review changes like infrastructure code

  • Context: Version the Vagrantfile and review changes like infrastructure code is always part of a local infrastructure contract in Vagrant. A Vagrantfile describes not only a VM but also provider assumptions, box provenance, networks, sync paths, provisioning and the allowed host working area. Changes should therefore be handled like infrastructure code: reproducible, reviewable, reversible and without hidden secrets.
  • Check command: vagrant snapshot save.
  • Review question: Which provider is required and which host permissions does it need?
  • Evidence: Record the Vagrantfile snippet, expected state, observed output and rollback decision.
  • Risk: Document whether host resources, network exposure, secrets, box trust or plugin supply chain are affected.
08 / 08

VAG · Orthevs Academy

31 modules as one continuous learning path.

The sequence remains unchanged: from the lab skeleton through technical foundations and operating models to final troubleshooting. The technical directory names are deliberately preserved.

Orthevs – Engineering the foundation for what comes next.

Orthevs as an app

Install Orthevs

The Orthevs web app can be installed on supported mobile devices and desktop browsers.

iPhone and iPad

Open Orthevs in Safari. Tap Share, then Add to Home Screen. Enable Open as Web App if offered, then tap Add.

Android

For the web app, open the browser menu and choose Install app or Add to Home screen. Confirm the installation.

Desktop browser

Open the browser menu or the install icon in the address bar, then choose Install app or Add to Dock.

Web app installation depends on your browser. If no install prompt appears, follow the browser steps shown above.