Compare commits
	
		
			1 Commits
		
	
	
		
			vagrantfil
			...
			proxy_scri
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 8455a0e2d0 | 
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| .playbook | ||||
| .vagrant* | ||||
| .vagrant | ||||
| .vscode | ||||
| /environments/ | ||||
							
								
								
									
										53
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							| @@ -1,45 +1,43 @@ | ||||
| # -*- mode: ruby -*- | ||||
| # vi: set ft=ruby : | ||||
|  | ||||
| require 'yaml' | ||||
| settings_path = '.vagrant.yml' | ||||
| settings = {} | ||||
|  | ||||
| if File.exist?(settings_path) | ||||
|   settings = YAML.load_file(settings_path) | ||||
| SSH_FORWARD=ENV["SSH_FORWARD"] | ||||
| if !(SSH_FORWARD == "true") | ||||
|   SSH_FORWARD = false | ||||
| end | ||||
|  | ||||
| VAGRANT_BOX  = settings['VAGRANT_BOX']  || 'debian/bookworm64' | ||||
| VAGRANT_CPUS = settings['VAGRANT_CPUS'] || 2 | ||||
| VAGRANT_MEM  = settings['VAGRANT_MEM']  || 2048 | ||||
| SSH_FORWARD  = settings['SSH_FORWARD']  || false | ||||
|  | ||||
| # Default to shell environment variable: PLAYBOOK (priority #1) | ||||
| PLAYBOOK=ENV["PLAYBOOK"] | ||||
| if !PLAYBOOK || PLAYBOOK.empty? | ||||
|   # PLAYBOOK setting in .vagrant.yml (priority #2) | ||||
|   PLAYBOOK = settings['PLAYBOOK'] || false | ||||
|   if !PLAYBOOK || PLAYBOOK.empty? | ||||
|     puts "[VAGRANTFILE ERROR]: Set PLAYBOOK setting in .vagrant.yml" | ||||
|     abort | ||||
| if !PLAYBOOK | ||||
|   if File.exist?('.playbook') | ||||
|     PLAYBOOK = IO.read('.playbook').split("\n")[0] | ||||
|   end | ||||
|  | ||||
|   if !PLAYBOOK || PLAYBOOK.empty? | ||||
|     PLAYBOOK = "\nERROR: Set env PLAYBOOK" | ||||
|   end | ||||
| else | ||||
|   File.write(".playbook", PLAYBOOK) | ||||
| end | ||||
|  | ||||
| Vagrant.configure("2") do |config| | ||||
|   config.vm.box = VAGRANT_BOX | ||||
|   config.vm.box = "debian/bullseye64" | ||||
|   config.vm.network "private_network", type: "dhcp" | ||||
|   config.vm.synced_folder ".", "/vagrant", disabled: true | ||||
|   config.vm.synced_folder "./scratch", "/vagrant/scratch" | ||||
|   config.ssh.forward_agent = SSH_FORWARD | ||||
|  | ||||
|   # Libvrit provider | ||||
|   config.vm.provider :libvirt do |libvirt| | ||||
|     libvirt.cpus   = VAGRANT_CPUS | ||||
|     libvirt.memory = VAGRANT_MEM | ||||
|   # Machine Name | ||||
|   config.vm.define :moxie do |moxie| # | ||||
|   end | ||||
|  | ||||
|   # Virtualbox provider | ||||
|   config.vm.provider :virtualbox do |vbox| | ||||
|     vbox.cpus   = VAGRANT_CPUS | ||||
|     vbox.memory = VAGRANT_MEM | ||||
|   config.vm.provider :libvirt do |libvirt| | ||||
|     libvirt.cpus = 2 | ||||
|     libvirt.memory = 4096 | ||||
|     libvirt.default_prefix = "" | ||||
|   end | ||||
|  | ||||
|   config.vm.provider "virtualbox" do |vbox| | ||||
|     vbox.memory = 4096 | ||||
|   end | ||||
|  | ||||
|   # Provision with Ansible | ||||
| @@ -48,4 +46,5 @@ Vagrant.configure("2") do |config| | ||||
|     ansible.compatibility_mode = "2.0" | ||||
|     ansible.playbook = "dev/" + PLAYBOOK + ".yml" | ||||
|   end | ||||
|  | ||||
| end | ||||
|   | ||||
							
								
								
									
										46
									
								
								run-proxy.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								run-proxy.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Find private key file | ||||
| PRIVATE_KEY="$(find .vagrant -name "private_key")" | ||||
|  | ||||
| # Does the private_key file exist? | ||||
| if [ ! -f "$PRIVATE_KEY" ]; then | ||||
|   echo "[ERROR] File not found at \"$PRIVATE_KEY\"" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| # Is the private_key a valid SSH key? | ||||
| echo "Checking validity of private key at $(pwd)/$PRIVATE_KEY" | ||||
| if ! ssh-keygen -l -f "$PRIVATE_KEY"; then | ||||
|   echo "[Error] The private key at \"$PRIVATE_KEY\" is invalid (CODE: $?)" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| # Find an IP on the VM for the SSH tunnel | ||||
| HOST_IP="$(vagrant ssh -c "hostname -I | cut -d' ' -f${HOSTNAME_FIELD:-1}" 2>/dev/null | sed 's/.$//')" | ||||
|  | ||||
| # SSH command to match in processes table | ||||
| CMD="ssh -fNT -i $PRIVATE_KEY -L 8443:localhost:8443 -L 80:localhost:80 -L 443:localhost:443.*vagrant@$HOST_IP" | ||||
|  | ||||
| # Not just after PIDs | ||||
| # shellcheck disable=SC2009 | ||||
| PS_TUNNELS="$(ps aux | grep -e "$CMD" | grep -v grep)" | ||||
| PS_COUNTER="$(echo "$PS_TUNNELS" | wc -l)" | ||||
|  | ||||
| if [ "$PS_COUNTER" -gt 0 ]; then | ||||
|   echo "[ERROR] Tunnel(s) already seems to exist (counted $PS_COUNTER)" | ||||
|   echo \""$PS_TUNNELS"\" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| # Create an SSH tunnel | ||||
| echo "Starting background SSH connection for localhost port forwarding" | ||||
| set -x | ||||
| ssh -fNT -i "$PRIVATE_KEY" \ | ||||
|   -L 8443:localhost:8443 \ | ||||
|   -L 80:localhost:80 \ | ||||
|   -L 443:localhost:443 \ | ||||
|   -o UserKnownHostsFile=/dev/null \ | ||||
|   -o StrictHostKeyChecking=no \ | ||||
|     vagrant@"${HOST_IP}" 2>/dev/null | ||||
|  | ||||
		Reference in New Issue
	
	Block a user