From 75853974e5ebccc86bedc197401dccb20cc87c74 Mon Sep 17 00:00:00 2001 From: Kevin Thompson Date: Thu, 7 Aug 2025 14:07:53 -0500 Subject: [PATCH] Debugging, find git repo root, skip hanging ssh test, create inventory file, commit locally. --- roles/inventory/linode/tasks/main.yml | 79 +++++++++++++++++++++------ 1 file changed, 63 insertions(+), 16 deletions(-) diff --git a/roles/inventory/linode/tasks/main.yml b/roles/inventory/linode/tasks/main.yml index 6019c7c..b8af7d9 100644 --- a/roles/inventory/linode/tasks/main.yml +++ b/roles/inventory/linode/tasks/main.yml @@ -138,32 +138,79 @@ delegate_to: localhost when: linode_inventory_data is defined -- name: Configure Git user for commits +- name: Debug current directory and Git status ansible.builtin.shell: | - cd /runner/project && - git config --local user.email "awx@ewnix.net" && - git config --local user.name "AWX Automation" && - git remote set-url origin git@git.ewnix.net:phlux/ewnix-automation.git + echo "Current directory: $(pwd)" && + echo "Directory contents:" && + ls -la && + echo "Git status:" && + git status 2>&1 || echo "Not a git repository" && + echo "Git remote:" && + git remote -v 2>&1 || echo "No git remotes" + register: debug_git_info delegate_to: localhost ignore_errors: true -- name: Ensure SSH key is available for Git operations +- name: Display debug information + ansible.builtin.debug: + var: debug_git_info.stdout_lines + +- name: Initialize Git if needed and configure ansible.builtin.shell: | - ssh-keyscan -t rsa git.ewnix.net >> ~/.ssh/known_hosts 2>/dev/null || true && - ssh -T git@git.ewnix.net -o StrictHostKeyChecking=no -o ConnectTimeout=10 2>&1 || echo "SSH test completed" + # Check if we're in a git repo, if not try to find the actual project directory + if [ ! -d ".git" ]; then + echo "Not in a git repository, checking for git in parent directories" + # Try to find the git root + git_root=$(git rev-parse --show-toplevel 2>/dev/null || echo "") + if [ -n "$git_root" ]; then + cd "$git_root" + echo "Found git repository at: $git_root" + else + echo "No git repository found" + exit 0 + fi + fi && + git config user.email "awx@ewnix.net" && + git config user.name "AWX Automation" && + git remote set-url origin git@git.ewnix.net:phlux/ewnix-automation.git && + echo "Git configured successfully" + register: git_config_result delegate_to: localhost ignore_errors: true -- name: Commit inventory back to Git +- name: Skip SSH test for now and proceed + ansible.builtin.debug: + msg: "Skipping SSH test to avoid hanging - will attempt Git operations directly" + +- name: Create inventory directory + ansible.builtin.file: + path: "inventory" + state: directory + mode: '0755' + delegate_to: localhost + +- name: Create JSON inventory file + ansible.builtin.copy: + content: "{{ linode_inventory_data | to_nice_json }}" + dest: "inventory/linode_hosts.json" + mode: '0644' + delegate_to: localhost + when: linode_inventory_data is defined + +- name: Attempt to commit inventory (simplified) ansible.builtin.shell: | - cd /runner/project && - git add inventory/linode_hosts.json && - if git diff --staged --quiet; then - echo "No changes to commit" + git_root=$(git rev-parse --show-toplevel 2>/dev/null || echo "") + if [ -n "$git_root" ]; then + cd "$git_root" && + git add inventory/linode_hosts.json && + if git diff --staged --quiet; then + echo "No changes to commit" + else + git commit -m "Update Linode inventory - $(date '+%Y-%m-%d %H:%M:%S') [AWX]" && + echo "Inventory committed locally (push skipped for now)" + fi else - git commit -m "Update Linode inventory - $(date '+%Y-%m-%d %H:%M:%S') [AWX]" && - GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30" git push origin HEAD && - echo "Inventory committed and pushed to git@git.ewnix.net:phlux/ewnix-automation" + echo "No git repository found - inventory file created but not committed" fi register: git_commit_result delegate_to: localhost