You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.6 KiB

  1. # -*- mode: ruby -*-
  2. # vi: set ft=ruby :
  3. VAGRANT_CONFIG_VERSION = "2"
  4. Vagrant.configure(VAGRANT_CONFIG_VERSION) do |config|
  5. config.vm.box = "debian/bookworm64"
  6. # Main application folder
  7. config.vm.synced_folder "tildes/", "/opt/tildes/"
  8. config.vm.synced_folder "ansible/", "/srv/ansible"
  9. config.vm.network "forwarded_port", guest: 443, host: 4443
  10. config.vm.network "forwarded_port", guest: 9090, host: 9090
  11. config.vm.provision "ansible_local" do |ansible|
  12. ansible.install = true
  13. ansible.install_mode = "pip"
  14. ansible.version = "10.6.0"
  15. ansible.pip_install_cmd = "sudo apt-get install -y python3-pip"
  16. ansible.pip_args = "--break-system-packages"
  17. # put the VM into the "dev" and "app_server" Ansible groups
  18. ansible.groups = {
  19. "dev" => ["default"],
  20. "app_server" => ["default"],
  21. }
  22. ansible.galaxy_role_file = "ansible/requirements.yml"
  23. ansible.playbook = "ansible/playbook.yml"
  24. end
  25. config.vm.provider "virtualbox" do |vb|
  26. vb.memory = "4096"
  27. vb.cpus = "4"
  28. end
  29. config.vm.provider "docker" do |d, override|
  30. # Docker does not require config.vm.box
  31. override.vm.box = nil
  32. # Instead, specify build_dir where Dockerfile is located.
  33. d.build_dir = "./docker"
  34. d.dockerfile = "Dockerfile-for-vagrant"
  35. # Keep Docker container running indefinitely
  36. d.remains_running = true
  37. d.create_args = ["--detach", "--tty"]
  38. # SSH configuration
  39. d.has_ssh = true
  40. # Tell user to restart Docker container after Ansible provisioning
  41. override.vm.provision "shell", path: "./docker/tell-user-to-reboot-vagrant.sh"
  42. end
  43. end