2014-11-20 7 views
7

Już przeczytałem odpowiedzi this i this i this, ale nie pomogły mi one. Używam komputera z systemem Windows za Jenkinstransferowanie 0 plików za pomocą publikowania przez wtyczkę SSH w Jenkins

Mój obszar roboczy ma tylko następujące pliki

C: \ Jenkins \ roboczej \ Copy_file \ devops \ resource \ plik1.txt C: \ Jenkins \ roboczej \ Copy_file \ devops \ resource \ file2.txt

Chciałbym opublikować ponad ssh tylko plik1.txt

dodałem plugin do opublikowania przez SSH:

Source files DevOps\resource\file1.txt 
Remove prefix DevOps\resource 
Remote directory /tmp/ 

Jednak widzę w wyniku:

C:\Jenkins\workspace\Copy_file\DevOps\resource\file1.txt 
SSH: Connecting from host [hhhhh] 
SSH: Connecting with configuration [Redhat1] ... 
SSH: Creating session: username [hhhh], hostname [iiiiii], port [22] 
SSH: Connecting session ... 
SSH: Connected 
SSH: Opening SFTP channel ... 
SSH: SFTP channel open 
SSH: Connecting SFTP channel ... 
SSH: Connected 
SSH: Remote root is not absolute, getting absolute directory from PWD 
SSH: Disconnecting configuration [Redhat1] ... 
SSH: Transferred 0 file(s) 
Build step 'Send files or execute commands over SSH' changed build result to SUCCESS 
Finished: SUCCESS 
  1. Dlaczego wysyłanie 0 pliki?
  2. Jak mogę uczynić ścieżkę absolutną, aby umieścić ją w/tmp/i nie w/home/user/tmp?

AKTUALIZACJA

enter image description here

+1

Używasz tej wtyczki [] (https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin) prawo? Jeśli to prawda, czy możesz przesłać parametry konfiguracyjne (takie jak [to] (https://wiki.jenkins-ci.org/download/attachments/53608875/global_ssh_advanced.png?version = 1 & modificationDate = 1302446662000))? – ajnavarro

+1

Masz też tam literówkę (** Pliki źródłowe DevOps \ resource \ file1.tx **, brakujące "t")? – ajnavarro

+1

TAK, BY BYŁ TYP. Dzięki! Dodałem zdjęcie – Dejell

Odpowiedz

1

I zostały badania na temat tej wtyczki, ale nie mogę znaleźć powód dlaczego doesnt pracy.

The Q.A. zespół w mojej firmie używa wtyczki this i działa dobrze.

By spróbować odpowiadając na pytanie postaram się wyjaśnić konfigurację o tej nowej wtyczki:

  • Into globalnej konfiguracji: Example global configuration

    • hostname: jest-BVT-Rh- 01.XXXXX.com
    • port:
    • Ścieżka repozytorium głównego: / (Aby zezwolić na umieszczanie plików w/tmp/zamiast/home/user/tmp. ścieżka repozytorium korzeń musi istnieć, zanim będzie można odwoływać się do niej i powinny być dostępne dla użytkownika, który nie publikowania plików)
    • Nazwa użytkownika:. bvtuser
    • Hasło: [YOUR_SSH_PASSWORD]
  • Into konfiguracja pracy specyficzne: Example job configuration

    • strona SCP: jest-BVT-rh-01.XXXXX.com
    • Źródło: devops \ resource \ plik1.txt (ścieżka jest wykonana z korzenia roboczej.)
    • Destination: tmp/

Nadzieję, że to pomaga!

4

Miałem ten sam problem i skończyłem w tym poście szukając rozwiązania.

  • Konkretnie, co mi się stało, jest to, że użytkownik używamy w konfiguracji wtyczki nie mają dostępu do „ścieżka root” („/”), co spowoduje, że połączenie ma być domyślna znajduje się w „/ home/usery/".

  • Upewnij się, że użytkownik, którego używasz, ma dostęp do ścieżki bezwzględnej "/ tmp /", ponieważ kiedy wypróbowałem w tej samej konfiguracji, w której użytkownik utworzył tę ścieżkę (/ home/usery/tmp, a nie w katalogu/tmp/ścieżka):

SSH: Remote korzeń nie jest absolutna, coraz katalogu bezwzględną z PWD ssh: cd [/ home/usery] SSH: OK SSH: mkdir [tmp] SSH : OK SSH: cd [tmp] SSH: OK SSH: put [myjar.jar]

Być może użytkownik nie ma uprawnień do utworzenia nowego katalogu.

  • spróbuj użyć „domowy” ścieżkę użytkownika, na przykład, spróbuj utworzyć ścieżkę „/ home/usery/localdir/anotherDir”, a następnie zmienić konfigurację „Zdalny katalogu” do „localdir/anotherDir ".

  • Wreszcie mamy zainstalowany Jenkins na komputerze z systemem Windows, później przenieść go na komputerze z systemem Linux, trzeba być ostrożnym z separatorem ścieżki „\” i „/”, tym pamiętać konfigurowania:

    pliki źródłowe i usuń prefiks

mam nadzieję, że moje komentarze pomóc.

0

skończyło się używając

  1. Wykonanie wtyczki Shell przenieść plik skończona.

  2. Następnie użyj wtyczki publikowania przez SSH, aby wykonać komendę mysql dla mojej instancji RDS, używając skryptu SQL zawartego w przesłanym pliku.