Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Bitbucket Runner - sftp-deploy

Renato Baudouin September 24, 2021
sftp-deploy:0.5.7

Hello Comunity, I am trying to deploy to on-premise via Runner using the sftp-deploy. In the figure 1 you can find the deployment yaml. The figure 2 shows the deployment logs. It seems to be running ok beacuse it donwloads the "sftp-deploy:0.5.7" image, stablish the connection with the remote host but it its not enable to stablish the sftp connection beacuse of the host key verification.

At this point, I am not pretty sure how to pass to the image the known_hosts. I tried to use the SSH_KEY configuration, but it seems that it does not fecht the Fingerprints via runners.

 

Does any of you have an idea to work this out?

Figure 1 - Deployment yaml
Deploy pipe.PNG

Figure 2 - Deployment logs

Log.PNG

 

 

3 answers

1 accepted

1 vote
Answer accepted
Renato Baudouin October 26, 2021

At the end I decided to stop using the image: "atlassian/sftp-deploy:0.5.7" and copy the artifact using sshpass using the image: "atlassian/default-image:latest". Here is the final pipeline:

Deployment with sshpass.PNG

hitesh-makwana January 13, 2022

Hi Renato,

Thank you so much. I was having sftp issue for fresh deployment with

atlassian/sftp-deploy:0.5.8. I searched a lot and tried everything but didn't work. Able to deploy files but not folder which doesn't already exist on server. Finally able to do that with ssh.
Like Renato Baudouin likes this
Renato Baudouin May 20, 2022

You are welcome :). Glad it helps you.

1 vote
Viktoras Domarkas September 30, 2021

Hi Renato,

If you still have problems you can use the tutorial I followed when creating the pipeline: https://www.youtube.com/watch?v=OCA_jB1Dw0I 

The part that you need starts at 13:23

Timothy Gonzalez November 29, 2022

Excellent video. To provide the answer on this post the solution was to go to Repository Settings -> SSH Keys then under known hosts enter the domain/ip of the server you are trying to connect to, get the finger print, then add the host.

0 votes
Caroline R
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 28, 2021

Hi, @Renato Baudouin

Thank you for reaching out to Atlassian Community!

In order to further investigate this issue, could you please confirm:

  1. What is the Runner version you are using? You can find it in the Runner log on the top. 

  2. Have you fetched the host fingerprints in the Pipeline?

Thank you.

Kind regards,
Caroline

Renato Baudouin September 28, 2021

Hi Caroline,

Thank you for your response.

Here are my comments:

  1. What is the Runner version you are using?  It is Runner version: 1.174, Runner runtime: linux-docker

  2. Have you fetched the host fingerprints in the Pipeline? I am not sure how to do it. I tried to user the SSH_KEY in the repository settings, but it seems that it does not fecht the Fingerprints via runners.

Caroline R
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 29, 2021

Hi, Renato. 

Thanks for the information. It seems your Runner is not updated, so first of all, you need to upgrade the Runner version that has some bug fixes and some enhancements.

You can check in the following link how to update the runner:

Also, by your last comment, I couldn’t understand if you have fetched the host fingerprints in the Pipelines setting. So, in case you haven’t, please follow the next steps to accomplish that: 

  • Open your repository in Bitbucket

  • Click on Repository settings

  • Under the Pipelines section, open SSH keys 

  • There, you can add the known hosts and fetch the fingerprints

Please, feel free to share any additional questions or concerns regarding this case. 

Kind regards,
Caroline

Renato Baudouin October 4, 2021

Hi Caroline,

Thank you very much for your response. Yes, I tried to configure the known hosts the in the SSH key. But it is no able to fetch it, because my Remote Host is onPremise. Please check the Figure 3. So here is my questions:

  • Is there a way to indicate that the fetch should be made through the runner?

 

Figure 3 - Diagram

 Diagrama.PNG

Caroline R
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 4, 2021

Hi, Renato! 

Thank you for the additional information! In this case, you can add it in the Pipeline YML:

ssh-keyscan -p 20 -t rsa <Host URL> >> /.ssh/known_hosts

It should add the fingerprint. Please let me know how it goes and don't hesitate to ask for any further information if needed. 

Kind regards,
Caroline

Renato Baudouin October 6, 2021

Hi Caroline,

I put the ssh-keyscan statement in the script section as shown in the Figure 1. But it seems that I still have a failed deployment. 

 

Figuere 1 - YML

Deploy pipeline 2.PNG

Figure 2 - Log Error

Log 2.PNG

Caroline R
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 8, 2021

Hi, Renato!

Thanks for sharing the logs. I see that there is a code 6 there, which means "File does not exist". You have specified LOCAL_PATH, however, I don’t see any steps about the file generation.

In this case, could you please verify the file mentioned in the LOCAL_PATH variable? You can run the following command before the pipe to confirm if the directory exists and if there is something in it:

ls -lah 

Thank you. 

Kind regards,
Caroline

Renato Baudouin October 26, 2021

Hi Caroline, you where rigth. I didn't check the correct path for the artifact. I verified that it downloads the artifact to this path: "/opt/atlassian/pipelines/agent/". I correct it but neithet i could make it work. At the end I decided to stop using the image:  "atlassian/sftp-deploy:0.5.7" and copy the artifact using sshpass.

Renato Baudouin October 26, 2021

By the way thank you very much for your assistance :)

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events