Git Bash의 Azure CLI
테스트 배포를 실행하기 위해 윈도우즈에서 bash(sh) 스크립트를 사용하려고 합니다.bash의 복사본을 갖도록 gitbash 콘솔에서 스크립트를 실행하고 있지만, 이렇게 하면 azure clie를 사용할 수 없습니다(즉, azure 명령을 찾을 수 없음).GitBash에서 Azure CLI를 작동시키는 방법(다른 곳에 설치하는 것으로 가정함) 또는 bash를 사용하는 다른 방법으로 변경해야 하는지 아는 사람이 있습니까?
때때로 윈도우즈 gitbash의 명령에 .cmd를 추가해야 합니다.또한, Azure-Cli를 설치하는 또 다른 방법은 Chocolaty https://chocolatey.org/ 를 통해서입니다.
Azure-Cli를 설치한 후 다음 명령을 시도합니다.
az.cmd --version
mscrivo 반향 PowerShell이 아닌 CMD에서 아래 라인을 실행할 수 있습니다(elevated/admin).
echo "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd" $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15} > "C:\Program Files\Git\mingw64\bin\az"
이제 Gitbash에서 실행할 수 있습니다.
az --version
Artberri는 논평에서 최고의 해결책에 주목했습니다.
다을추다니에 합니다.%USERPROFILE%\.bashrc
또는%USERPROFILE%\.profile
alias az='az.cmd'
그러나 zin bash 스크립트를 사용하려면 좀 더 과감한 방법이 필요합니다. cmd 프롬프트에서 다음을 실행하십시오.
echo "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd" $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15} > "%SYSTEMROOT%\az"
그러면 기본적으로 윈도우즈 폴더에 passthrough az 명령이 생성되어 어디에서나 실행되고 매개 변수를 az.cmd로 전달합니다.
Gitbash를 사용하는 경우 다음 디렉토리로 이동합니다.
C:\Program Files\Git\etc\profile.d
집aliases.sh
그런 다음 새 별칭을 추가합니다.az
아래와 같이:
alias az='az.cmd'
CLI를 컴퓨터에 설치해야 합니다.그렇게 하는 방법은 여러 가지가 있습니다.
나는 노드의 친구입니다.JS 그래서 나는 설치를 위해 npm을 사용합니다.
npm install -g azure-cli
자세한 내용은 여기에서 확인하십시오. https://www.npmjs.com/package/azure-cli
하지만 다른 방법으로도 할 수 있습니다.매우 좋은 방법은 도커를 사용하는 것입니다.Azure CLI 버전이 미리 설치된 Microsoft의 컨테이너가 있습니다.
docker run -it --name azure microsoft/azure-cli
Ubuntu bash가 설치된 Windows 10에서는 다음을 사용할 수 있습니다.
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main" | \
sudo tee /etc/apt/sources.list.d/azure-cli.list
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys 417A0893
sudo apt-get install apt-transport-https
sudo apt-get update && sudo apt-get install azure-cli
아니면 파이썬 마니아 런으로서.
pip install --user azure-cli
가장 중요한 것은 경로 변수를 통해 "az"/"az.bat" 또는 "azure" 빈을 사용할 수 있다는 것입니다.
즉, 윈도우즈용 Azure CLI는 윈도우즈용 Git Bash와 호환되지 않습니다.
https://github.com/Azure/azure-cli/issues/3445
의 신의에서.~/bin
에서는 디렉리터(윈도우즈 서의미))를 의미합니다.c:\Users\<username>\bin
라는 이름의 을 방금 az
매개 변수:
"C:/Program Files (x86)/Microsoft SDKs/Azure/CLI2/python.exe" -IBm azure.cli "$@"
다음 을 실행 파일로 .chmod a+x az
내용은 az.cmd에서 "빌려온" 것입니다.
이전에 언급한 별칭 접근 방식을 시도할 때 긴 명령에 문제가 있었고, 많은 매개 변수가 오류를 던졌습니다. ""C:\Program'은 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다."
편집:
저는 WLS를 통해 우분투 사용을 종료했습니다.az, terraform, kubectl, istioctl과 같은 모든 도구에 사용됩니다.az 도구는 대화형 모드에서도 잘 실행됩니다.
그래서 저는 Azure DevOps Linux 및 Windows(gitbash) 빌드 에이전트에서 bash 셸 스크립트에서 동일한 az 명령을 실행하여 두 유형의 에이전트에서 동일한 코드를 공유할 수 있는 방법을 찾고 있습니다.이 기능은 윈도우즈 10의 Gitbash 셸에서도 작동합니다.더 긴 답변은 다음과 같습니다. Azure DevOps 빌드 파이프라인은 vnet 및 방화벽으로 보호할 때 Key Vault에서 암호를 가져올 수 없습니다.
요점은 다음과 같습니다.
if [[ $(uname -s) == "Linux" ]]; then
azcmd="az"
else
# If we're in a bash shell on Windows, az commands don't work, but we can call the az.cmd batch file directly from git Bash if we can find it...
azcmd=$(where az.cmd)
fi
# Remember to specify CIDR /32 for removal
"$azcmd" keyvault network-rule remove -n <MyKeyVault> --ip-address 50.1.1.1/32
기본적으로 그냥 대체합니다."$azcmd"
당신이 보통 사용하는 곳이라면 어디든.az
일단 부트스트랩 코드가 실행되면.
방식은 Scripts 를 Azure CLI Scripts 이었습니다.$PATH
내에 ~/.bashrc
를 일파로 후. 그러나 Azure CLI를 업데이트한 후2.2.0
이 방식은 다음했습니다: MSI " " 통 접 방 이 식 오 시 습 했 니 작 다 실 기 하 패 함 께 와 류 를 음 다 해 이 근 ▁via : 니 다 습 ▁started 했 ▁with ▁error ▁msi ▁this ▁approach ▁this
C:\Program: 'Files' 파일을 열 수 없습니다: [Errno 2] 해당 파일 또는 디렉터리가 없습니다.
그래서 이 문제를 해결하기 위해, 나는 나의$PATH
안에~/.bashrc
포하다를 ~/bin
파일을 만들었습니다.~/bin/az
(하는 것을 잊지 마chmod 0755
파일파일 이름):
#!/usr/bin/env bash
AZURE_CLI_PATH="/c/Program Files (x86)/Microsoft SDKs/Azure/CLI2"
export PATH="${PATH}:${AZURE_CLI_PATH}:${AZURE_CLI_PATH}/Scripts"
export PYTHONPATH="${AZURE_CLI_PATH}/src"
export PYTHON_CMD="$(which python)"
winpty "${PYTHON_CMD}" -m 'azure.cli' "${@}"
GIT Bash를 실행할 수 .az
실행:
$ az version
This command is in preview. It may be changed/removed in a future release.
{
"azure-cli": "2.2.0",
"azure-cli-command-modules-nspkg": "2.0.3",
"azure-cli-core": "2.2.0",
"azure-cli-nspkg": "3.0.4",
"azure-cli-telemetry": "1.0.4",
"extensions": {}
}
MSI 설치 관리자를 전혀 사용하지 마십시오.Azure CLI는 Python에서 구현되므로 @blndev가 작성한 대로 Python 설치 방법을 사용합니다.대신 이쪽으로az.cmd
은 신은당을 얻습니다.az.bat
그리고.az
셸 스크립트이며 설치 경로에 공백이 포함되지 않습니다.
pip install --user azure-cli
이 방법에 대한 자세한 내용은 https://blogs.msdn.microsoft.com/brijrajsingh/2017/03/02/installing-azure-cli-2-0-on-windows/ 에서 확인할 수 있습니다.
심볼릭 링크는 대부분 작동했지만 일부 명령은 여전히 실패하고 있습니다.
az dls fs access set-entry ...
'C:\Program' is not recognized as an internal or external command, operable program or batch file
@mscrivo의 솔루션을 사용해 보았습니다.그러나 셸 스크립트에서 az 명령을 사용하는 경우 경로의 공백으로 인해 여전히 문제가 발생합니다.따라서 다음을 포함하는 %SYSTEMROOT%에 azproxy.cmd를 생성했습니다.
@echo off
"C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd" %*
그런 다음 해당 파일에 대한 mklink를 생성합니다.
mklink "%SYSTEMROOT%\az" "SYSTEMROOT%\azproxy.cmd"
PS 확장 값 %SYSTEMROOT%에는 물론 공백이 포함되어서는 안 됩니다.
언급URL : https://stackoverflow.com/questions/42972086/azure-cli-in-git-bash
'programing' 카테고리의 다른 글
다른 사람(iPhone) 내에서 앱 실행 (0) | 2023.06.04 |
---|---|
철도에서 루비의 수집 경로와 회원 경로의 차이? (0) | 2023.06.04 |
여러 모니터에서 Eclipse 환경을 구성하는 방법에 대한 팁이 있습니까? (0) | 2023.06.04 |
시스템 오류: 상위 모듈 '이(가) 로드되지 않았습니다. 상대 가져오기를 수행할 수 없습니다. (0) | 2023.06.04 |
SSL 인증서 확인 오류로 인해 번들 설치가 실패함 (0) | 2023.06.04 |