diff --git a/.github/workflows/vagrant.yml b/.github/workflows/vagrant.yml index bebdcec..e336ea5 100644 --- a/.github/workflows/vagrant.yml +++ b/.github/workflows/vagrant.yml @@ -8,7 +8,7 @@ on: jobs: homelab-ci: - runs-on: macos-latest + runs-on: macos-13 steps: - uses: actions/checkout@v3 @@ -21,19 +21,42 @@ jobs: restore-keys: | ${{ runner.os }}-vagrant- + - name: Install VirtualBox + run: brew install --cask virtualbox + + - name: Install Vagrant + run: brew install --cask vagrant + - name: Install Ansible - run: brew install ansible@7 + run: brew install ansible - name: Software Versions run: | - printf "VirtualBox " - vboxmanage --version + printf "VirtualBox "; vboxmanage --version vagrant --version - export PATH="/usr/local/opt/ansible@7/bin:$PATH" ansible --version + - name: Install nmap + run: brew install nmap + - name: Vagrant Up with Dockerbox Playbook + env: + SSH_AUTH_SOCK: '' run: | - export PATH="/usr/local/opt/ansible@7/bin:$PATH" - PLAYBOOK=dockerbox vagrant up - vagrant ssh -c "docker ps" + ssh-add -D && echo "[homelab-ci] SSH Agent disabled" + PLAYBOOK=dockerbox vagrant up --debug & + VAGRANT_UP_PID=$! + sleep 30 + echo "[homelab-ci] Checking SSH connection availability..." + PRIVATE_KEY="$(find .vagrant -name "private_key" 2>/dev/null | sort)" + HOST_IP="$(vagrant ssh-config | grep HostName | awk '{print $2}')" + echo "[homelab-ci] Private Key: $PRIVATE_KEY" + echo "[homelab-ci] Host IP: $HOST_IP" + echo "[homelab-ci] Running nmap to check open ports..." + nmap -p 22 "$HOST_IP" + echo "[homelab-ci] Attempting raw SSH connection with high verbosity..." + ssh -vvv -i "$PRIVATE_KEY" \ + -o UserKnownHostsFile=/dev/null \ + -o StrictHostKeyChecking=no \ + -v vagrant@"$HOST_IP" + wait $VAGRANT_UP_PID diff --git a/Vagrantfile b/Vagrantfile index 4da8435..77e5141 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -36,6 +36,7 @@ Vagrant.configure("2") do |config| config.vm.provider :virtualbox do |vbox| vbox.cpus = VAGRANT_CPUS vbox.memory = VAGRANT_MEM + vbox.gui = true end # Provision with Ansible @@ -43,6 +44,6 @@ Vagrant.configure("2") do |config| ENV['ANSIBLE_ROLES_PATH'] = File.dirname(__FILE__) + "/roles" ansible.compatibility_mode = "2.0" ansible.playbook = "dev/" + PLAYBOOK + ".yml" - ansible.raw_arguments = ["--diff"] + ansible.raw_arguments = ["--diff", "-vvv"] end end