@@ -122,76 +122,72 @@ jobs:
122122 echo "OCI_USERNAME is set: ${{ secrets.OCI_USERNAME != '' }}"
123123 echo "OCI_AUTH_TOKEN is set: ${{ secrets.OCI_AUTH_TOKEN != '' }}"
124124
125+ # Fixed SSH key setup step
125126 - name : Set up SSH key
126127 run : |
127- # Create directory and set permissions with proper error handling
128- mkdir -p ~ /.ssh || { echo "Failed to create ~/.ssh directory"; exit 1; }
129- chmod 700 ~ /.ssh || { echo "Failed to set permissions on ~/.ssh"; exit 1; }
128+ # Create directory and set permissions
129+ mkdir -p $HOME /.ssh
130+ chmod 700 $HOME /.ssh
130131
131132 # Debug directory permissions
132- ls -la ~ | grep .ssh
133+ ls -la $HOME/.ssh || echo "Unable to list .ssh directory"
133134
134135 # Check if the SSH key secret is set
135136 if [ -z "${{ secrets.SSH_PRIVATE_KEY }}" ]; then
136137 echo "ERROR: SSH_PRIVATE_KEY secret is not set!"
137138 exit 1
138139 fi
139140
140- # Write SSH key file using direct redirection instead of tee
141- echo "${{ secrets.SSH_PRIVATE_KEY }}" > ${{ env.SSH_KEY_PATH }}
142-
143- # Check if the file was created
144- if [ ! -f "${{ env.SSH_KEY_PATH }}" ]; then
145- echo "ERROR: Failed to create SSH key file!"
146- exit 1
147- fi
141+ # Write SSH key file and check it was created
142+ echo "${{ secrets.SSH_PRIVATE_KEY }}" > $HOME/.ssh/id_rsa
143+ ls -la $HOME/.ssh/id_rsa || { echo "ERROR: Failed to create SSH key file!"; exit 1; }
148144
149145 # Set proper permissions on the key file
150- chmod 600 ${{ env.SSH_KEY_PATH }} || {
151- echo "ERROR: Failed to set permissions on SSH key file!"
152- exit 1
153- }
146+ chmod 600 $HOME/.ssh/id_rsa || { echo "ERROR: Failed to set permissions on SSH key file!"; exit 1; }
154147
155148 # Verify file content (indirectly)
156- key_size=$(stat -c %s ${{ env.SSH_KEY_PATH }} )
149+ key_size=$(stat -c %s $HOME/.ssh/id_rsa )
157150 echo "SSH key file size: $key_size bytes"
158151
159- if [ "$key_size" -lt 100 ]; then
160- echo "WARNING: SSH key file seems too small, may be invalid"
161- fi
162-
163- # Add VM to known hosts - verify VM_IP_ADDRESS is set
152+ # Add VM to known hosts
164153 if [ -z "${{ secrets.VM_IP_ADDRESS }}" ]; then
165154 echo "ERROR: VM_IP_ADDRESS secret is not set!"
166155 exit 1
167156 fi
168157
169- ssh-keyscan -H ${{ secrets.VM_IP_ADDRESS }} >> ~/.ssh/known_hosts || {
170- echo "ERROR: Failed to add VM to known hosts!"
171- exit 1
172- }
158+ # Initialize known_hosts file
159+ touch $HOME/.ssh/known_hosts
173160
174- # Test SSH connection (with verbose mode for debugging)
161+ # Add VM to known hosts
162+ ssh-keyscan -H ${{ secrets.VM_IP_ADDRESS }} >> $HOME/.ssh/known_hosts
163+
164+ # Test SSH connection
175165 echo "Testing SSH connection..."
176- ssh -v -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} opc@${{ secrets.VM_IP_ADDRESS }} "echo SSH connection successful"
166+ ssh -o BatchMode=yes -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.VM_IP_ADDRESS }} "echo SSH connection successful" || {
167+ echo "ERROR: SSH connection failed. Debugging information:"
168+ ls -la $HOME/.ssh/
169+ echo "Key file content (first line only):"
170+ head -1 $HOME/.ssh/id_rsa
171+ exit 1
172+ }
177173
178174 - name : Deploy to Oracle VM
179175 run : |
180176 # Create directories on VM
181- ssh -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} opc@${{ secrets.VM_IP_ADDRESS }} "mkdir -p ~/music-analytics/vm-deploy/{eureka-server,api-gateway,recommendation-service,statistics-service,user-tracking-service}"
177+ ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.VM_IP_ADDRESS }} "mkdir -p ~/music-analytics/vm-deploy/{eureka-server,api-gateway,recommendation-service,statistics-service,user-tracking-service}"
182178
183179 # Copy JAR files and Dockerfiles to VM
184- scp -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} vm-deploy/eureka-server/eureka-server.jar vm-deploy/eureka-server/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/eureka-server/
185- scp -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} vm-deploy/api-gateway/api-gateway.jar vm-deploy/api-gateway/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/api-gateway/
186- scp -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} vm-deploy/recommendation-service/recommendation-service.jar vm-deploy/recommendation-service/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/recommendation-service/
187- scp -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} vm-deploy/statistics-service/statistics-service.jar vm-deploy/statistics-service/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/statistics-service/
188- scp -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} vm-deploy/user-tracking-service/user-tracking-service.jar vm-deploy/user-tracking-service/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/user-tracking-service/
180+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/eureka-server/eureka-server.jar vm-deploy/eureka-server/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/eureka-server/
181+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/api-gateway/api-gateway.jar vm-deploy/api-gateway/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/api-gateway/
182+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/recommendation-service/recommendation-service.jar vm-deploy/recommendation-service/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/recommendation-service/
183+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/statistics-service/statistics-service.jar vm-deploy/statistics-service/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/statistics-service/
184+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/user-tracking-service/user-tracking-service.jar vm-deploy/user-tracking-service/Dockerfile opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/user-tracking-service/
189185
190186 # Copy docker-compose file
191- scp -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} cloud-deploy/docker-compose.direct.yml opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/docker-compose.yml
187+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa cloud-deploy/docker-compose.direct.yml opc@${{ secrets.VM_IP_ADDRESS }}:~/music-analytics/vm-deploy/docker-compose.yml
192188
193189 # Build and run containers
194- ssh -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} opc@${{ secrets.VM_IP_ADDRESS }} "cd ~/music-analytics/vm-deploy && \
190+ ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.VM_IP_ADDRESS }} "cd ~/music-analytics/vm-deploy && \
195191 echo 'Logging in to Docker registry...' && \
196192 docker login ${{ env.DOCKER_REGISTRY }} -u ${{ env.OCI_USERNAME }} -p ${{ env.OCI_AUTH_TOKEN }} && \
197193 echo 'Stopping ALL existing containers...' && \
@@ -206,8 +202,8 @@ jobs:
206202 - name : Debug on failure
207203 if : failure()
208204 run : |
209- if [ -f "${{ env.SSH_KEY_PATH }} " ]; then
210- ssh -o StrictHostKeyChecking=no -i ${{ env.SSH_KEY_PATH }} opc@${{ secrets.VM_IP_ADDRESS }} '
205+ if [ -f "$HOME/.ssh/id_rsa " ]; then
206+ ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.VM_IP_ADDRESS }} '
211207 echo "==== EUREKA SERVER LOGS ====" &&
212208 docker logs $(docker ps -q -f name=eureka-server) || echo "No eureka-server logs available"
213209 '
0 commit comments