SSH를 사용하여 Windows 서버의 Python 스크립트에 로컬 환경 변수 전달

Technext

Windows 서버 2016에서 Python 스크립트를 실행하려고 합니다. Windows 서버에 Win32-OpenSSH가 설치되어 있습니다. 파이썬 스크립트는 두 개의 환경 변수 ( BITBUCKET_REPO_SLUGBITBUCKET_BRANCH)가있을 것으로 예상합니다 . 기본적으로 Bitbucket 파이프 라인에 이미 설정되어 있습니다. Python 스크립트는 원격 서버에 복사 된 다음 SSH를 사용하여 Bitbucket 파이프 라인에서 호출합니다.

Bitbucket 파이프 라인에서 다음 명령을 시도 할 때 ...

scp <copy_python_script_to_win_server> # Works fine
echo $BITBUCKET_REPO_SLUG   # Prints the repo name
echo $BITBUCKET_BRANCH     # Prints the branch name
ssh [email protected] 'C:/Python/bin/python.exe C:/Users/john.doe/deploy.py' >> ./cmd_output
echo $?            
cat ./cmd_output

... 다음과 같은 오류가 발생했습니다.

Traceback (most recent call last):
  File "C:/Users/john.doe/deploy.py", line 16, in <module>
    print(os.environ['BITBUCKET_REPO_SLUG'])
  File "C:\Python\lib\os.py", line 669, in __getitem__
    raise KeyError(key) from None
KeyError: 'BITBUCKET_REPO_SLUG'

Bitbucket 환경 변수가 파이썬 스크립트로 전달되지 않는 것 같았습니다 (대부분 파이프 라인 자체에서 실행하지 않고 원격 서버에서 호출했기 때문에). 따라서 다른 모든 것을 그대로 유지하면서 ssh명령을 다음과 같이 변경했습니다 .

ssh [email protected] 'set BITBUCKET_REPO_SLUG=$BITBUCKET_REPO_SLUG; set BITBUCKET_BRANCH=$BITBUCKET_BRANCH; C:/Python/bin/python.exe C:/Users/john.doe/deploy.py' >> ./cmd_output

위의 변경으로 파이프 라인은 성공적인 빌드를 표시하고 반환 상태 ( $?)는 항상 0을 인쇄합니다. 또한 cat ./cmd_output아무것도 인쇄하지 않습니다. 예상대로 Windows 서버에서 python 스크립트는 실제로 실행되지 않습니다.

내용 C:/Users/john.doe/deploy.py:

import os
...
print(os.environ['BITBUCKET_REPO_SLUG'])
print(os.environ['BITBUCKET_BRANCH'])
...
...

내가 뭘 잘못하고 있는지 잘 모르겠습니다. 어떤 도움이라도 정말 감사하겠습니다.

마틴 프리 크릴

환경 변수는 작은 따옴표 문자열로 확인되지 않습니다.

큰 따옴표로 바꾸십시오.

ssh [email protected] "set BITBUCKET_REPO_SLUG=$BITBUCKET_REPO_SLUG;  ..." >> ./cmd_output

또한 구문이 유효하지 않을 수 있습니다.

  • 쉘이 Windows 인 경우 cmd.exe: 세미콜론 ( ;)을 사용하여 명령을 구분할 수 없습니다 . 앰퍼샌드 ( &) 를 사용해야 합니다.

    set VAR1=$VALUE & set VAR2=$VALUE2 & python ...
    
  • 쉘이 일반적인 * nix 쉘의 에뮬레이션 인 경우 bash: set명령은 환경 변수 설정 용이 아닙니다. 에서 bash, 당신은 같은, 단순히 할당에 의해 변수를 설정 BITBUCKET_REPO_SLUG=$BITBUCKET_REPO_SLUG.

    VAR1=$VALUE1; VAR2=$VALUE2; python ...
    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SSH를 사용하여 Windows 서버의 Python 스크립트에 로컬 환경 변수 전달

분류에서Dev

로컬 환경 변수를 사용하여 SSH로 원격 컴퓨터에서 셸 스크립트 실행

분류에서Dev

except를 사용하여 로컬 스크립트에서 원격 스크립트로 인수 전달

분류에서Dev

스크립트 태그에서 flask url_for를 사용하여 매개 변수를 경로에 전달

분류에서Dev

SSH에 전달하기 전에 로컬 bash 스크립트에서 변수를 확장하십시오.

분류에서Dev

로봇 테스트 스크립트에서 Python 스크립트로 변수를 전달하는 방법

분류에서Dev

버튼을 사용하여 Phaser 게임에서 전역에 로컬 자바 스크립트 변수 전달

분류에서Dev

다른 사용자로 ssh를 통해 원격에서 인수를 전달하여 로컬 스크립트를 실행하는 방법은 무엇입니까?

분류에서Dev

Taurus yaml 파일에서 Jmeter 스크립트로 변수를 전달하여 JDBC 연결 전환

분류에서Dev

WSL에서 Windows 실행 파일로 환경 변수를 전달하는 방법

분류에서Dev

bash 스크립트를 사용하여 Python 스크립트에 인수 전달

분류에서Dev

Docker compose를 사용하여 외부 환경 파일에서 컨테이너로 환경 변수 전달

분류에서Dev

jsGrid : ajax를 사용하여 자바 스크립트에서 PHP로 추가 변수를 전달하는 방법

분류에서Dev

ssh 및 EOF를 사용하여 bash 스크립트에서 원격 호스트에 변수 전달

분류에서Dev

yii에서 ajax를 사용하여 자바 스크립트에서 PHP로 변수 전달

분류에서Dev

Python 스크립트에서 at 명령을 사용하여 ssh를 통해 인수로 스크립트 실행

분류에서Dev

docker는 환경 변수를 사용하여 CMD에서 Python 스크립트를 실행합니다.

분류에서Dev

로컬 쉘에서 쉘 스크립트 내부의 원격 SSH 연결로 환경 변수를 복사하는 방법은 무엇입니까?

분류에서Dev

Windows XP에서 Python34 스크립트를 사용하여 Balsamiq 모형을 텍스트 문자열 txt로 변환하는 방법

분류에서Dev

원격 SSH 연결에서 Groovy 스크립트의 다른 단계로 변수를 전달하는 방법

분류에서Dev

Python 스크립트에서 직접 Windows 10 경로 변수를 수정하는 방법

분류에서Dev

$ _POST를 사용하여 자바 스크립트에서 변수 전달

분류에서Dev

환경 변수를 Python 스크립트에 전달하는 방법이 있습니까?

분류에서Dev

Azure의 Terraform : 변수를 인수로 사용하여 로컬 파일에서 Windows VM 용 Powershell 스크립트 실행

분류에서Dev

XLwings를 사용하여 Excel에서 Python으로 여러 변수 전달

분류에서Dev

bash 스크립트에 매개 변수 (= 경로 *)를 전달하는 방법

분류에서Dev

bash 스크립트에서 Python 스크립트에 변수로 목록 전달

분류에서Dev

환경 변수를 전달하지 않고 스크립트를 호출했습니다. -E 스위치를 사용하여 sudo로 실행하십시오.

분류에서Dev

환경 변수를 사용하여 VBA에서 PowerShell 스크립트 열기

Related 관련 기사

  1. 1

    SSH를 사용하여 Windows 서버의 Python 스크립트에 로컬 환경 변수 전달

  2. 2

    로컬 환경 변수를 사용하여 SSH로 원격 컴퓨터에서 셸 스크립트 실행

  3. 3

    except를 사용하여 로컬 스크립트에서 원격 스크립트로 인수 전달

  4. 4

    스크립트 태그에서 flask url_for를 사용하여 매개 변수를 경로에 전달

  5. 5

    SSH에 전달하기 전에 로컬 bash 스크립트에서 변수를 확장하십시오.

  6. 6

    로봇 테스트 스크립트에서 Python 스크립트로 변수를 전달하는 방법

  7. 7

    버튼을 사용하여 Phaser 게임에서 전역에 로컬 자바 스크립트 변수 전달

  8. 8

    다른 사용자로 ssh를 통해 원격에서 인수를 전달하여 로컬 스크립트를 실행하는 방법은 무엇입니까?

  9. 9

    Taurus yaml 파일에서 Jmeter 스크립트로 변수를 전달하여 JDBC 연결 전환

  10. 10

    WSL에서 Windows 실행 파일로 환경 변수를 전달하는 방법

  11. 11

    bash 스크립트를 사용하여 Python 스크립트에 인수 전달

  12. 12

    Docker compose를 사용하여 외부 환경 파일에서 컨테이너로 환경 변수 전달

  13. 13

    jsGrid : ajax를 사용하여 자바 스크립트에서 PHP로 추가 변수를 전달하는 방법

  14. 14

    ssh 및 EOF를 사용하여 bash 스크립트에서 원격 호스트에 변수 전달

  15. 15

    yii에서 ajax를 사용하여 자바 스크립트에서 PHP로 변수 전달

  16. 16

    Python 스크립트에서 at 명령을 사용하여 ssh를 통해 인수로 스크립트 실행

  17. 17

    docker는 환경 변수를 사용하여 CMD에서 Python 스크립트를 실행합니다.

  18. 18

    로컬 쉘에서 쉘 스크립트 내부의 원격 SSH 연결로 환경 변수를 복사하는 방법은 무엇입니까?

  19. 19

    Windows XP에서 Python34 스크립트를 사용하여 Balsamiq 모형을 텍스트 문자열 txt로 변환하는 방법

  20. 20

    원격 SSH 연결에서 Groovy 스크립트의 다른 단계로 변수를 전달하는 방법

  21. 21

    Python 스크립트에서 직접 Windows 10 경로 변수를 수정하는 방법

  22. 22

    $ _POST를 사용하여 자바 스크립트에서 변수 전달

  23. 23

    환경 변수를 Python 스크립트에 전달하는 방법이 있습니까?

  24. 24

    Azure의 Terraform : 변수를 인수로 사용하여 로컬 파일에서 Windows VM 용 Powershell 스크립트 실행

  25. 25

    XLwings를 사용하여 Excel에서 Python으로 여러 변수 전달

  26. 26

    bash 스크립트에 매개 변수 (= 경로 *)를 전달하는 방법

  27. 27

    bash 스크립트에서 Python 스크립트에 변수로 목록 전달

  28. 28

    환경 변수를 전달하지 않고 스크립트를 호출했습니다. -E 스위치를 사용하여 sudo로 실행하십시오.

  29. 29

    환경 변수를 사용하여 VBA에서 PowerShell 스크립트 열기

뜨겁다태그

보관