테라폼을 이전 버전으로 다운그레이드하는 방법은?
구성에 지정된 필수 버전(0.12.17)보다 늦은 버전의 Terraform(0.12.24)을 설치했습니다. 이전 버전으로 다운그레이드하려면 어떻게 해야 합니까? 내 시스템은 Linux Ubuntu 18.04이다.
Linux를 사용하는 경우 터미널에서 다음을 수행합니다.
rm -r $(which terraform)
이전 버전을 설치합니다.
wget https://releases.hashicorp.com/terraform/1.3.4/terraform_1.3.4_linux_amd64.zip
unzip terraform_1.3.4_linux_amd64.zip
mv terraform /usr/local/bin/terraform
terraform --version
바로 그거야, 내 친구.
편집: 이제 사람들이 v1.3.5를 사용하기 때문에 이전 버전은 v1.3.4입니다.
당신은 더 이상 우분투에 테라폼을 설치하지 말아야 한다. 일반적으로 말해서, 그 산업은 이제 도커로 넘어갔다. 다음과 같이 도커를 설치할 수 있습니다.
sudo apt install -y curl
curl -LSs get.docker.com | sh
sudo groupadd docker
sudo usermod -aG docker $USER
설치 후 다음과 같이 테라폼을 실행할 수 있습니다.
docker run -v $PWD:/work -w /work -v ~/.aws:/root/.aws hashicorp/terraform:0.12.17 init
.aws 디렉토리에 aws 자격 증명이 포함되어 있다고 가정합니다. 그렇지 않은 경우 해당 마운트 바인딩()을 명령에서 제외할 수 있으며 사용하기로 선택한 구성표와 함께 작동합니다. 아무것도 설치하지 않고 사용 중인 테라폼의 버전을 쉽게 변경할 수 있습니다.
이 접근법에는 허용된 답변에 비해 상당한 이점이 있습니다. 첫 번째는 버전 관리의 용이성입니다. 패키지 관리자를 사용하여 테라폼을 설치한 경우 제거하고 필요한 버전을 설치하거나, 리눅스 대안을 사용할 수 있습니다(디스트리뷰터가 이를 지원하거나, 리눅스를 사용 중이거나, 패키지 관리자가 있는 경우 Windows를 사용하여 설치 프로그램을 다운로드하고 실행할 수 있습니다). 물론 이것은 일회성일 수도 있습니다. 이 경우 한 번만 하면 영원히 문제가 없을 수도 있지만, 제 경험으로는 대부분의 팀이 보안 통제로 인해 버전을 업데이트해야 하고 소프트웨어를 정기적으로 업데이트할 필요가 없는 팀은 업데이트해야 하기 때문에 자주 그렇지 않습니다.
만약 이것이 일회성이 아니거나, 당신이 버전을 너무 많이 가지고 놀고 싶지 않다면, 당신은 이 게시물에 대한 한 댓글이 지적하듯이 바이너리를 다운로드할 수 있다. 각 버전에 대한 디렉터리 체계를 생각해 내거나 사용 중인 디렉터리를 삭제하고 완전히 교체하는 것은 매우 쉽습니다. 이것은 당신의 사용 사례에 꽤 잘 맞을 것이다. 적절한 웹 사이트(Hashicorp 또는 GitHubrepo의 릴리스 페이지 중 어느 것을 잊었습니다. 시간이 걸리더라도 언제든지 검색할 수 있습니다.)로 이동하여 올바른 버전을 찾아 다운로드하십시오.
또는 입력만 하면 사전 구성된 온라인 신뢰할 수 있는 레포에서 올바른 버전이 자동으로 추출됩니다.
따라서 새 버전을 설치하는 것이 더 쉽고, 물론 도커가 체크섬을 실행할 것이며, 또한 이미지에서 취약성을 검사하고 결과를 개발자에게 다시 보고할 것이다. 물론 이 모든 것을 직접 수행할 수 있습니다. 왜냐하면 이 답변에 대한 설명에 따르면, 이것은 단지 정적으로 컴파일된 이진 파일이므로, 번거롭게 설치하고 이동할 필요가 없기 때문입니다.
하지만 여전히 그렇게 쉽지 않다. 컨테이너형 버전을 도커 컴포지트 구성에 통합하거나 K8S에서 쉽게 실행할 수 있는 장점도 있습니다. 다시 말하지만, 이 기능이 필요하지 않을 수도 있지만, 업계가 그런 식으로 움직이고 있다는 점을 고려하면, 지금 표준화된 도구를 사용하여 그 지식을 어디에나 적용하는 방법을 배울 수도 있고, 지금 사용하는 모든 도구를 설치하는 다른 기술을 배울 수도 있습니다(GitHub 릴리스에서 일부를 가져오고 이진 파일을 복사하면 패키지 m을 사용해야 함).설치 관리자, 다운로드, 압축 해제 및 설치해야 하는 다른 사용자, 설치 관리자 등을 사용하여 공급업체 웹 사이트에서 설치해야 하는 사용자 등) 또는 도커로 하는 방법을 배우고 모든 것에 동일한 기술을 적용할 수 있습니다. 현대의 방대한 도구와 소프트웨어는 이제 이러한 '표준' 방식으로 패키지화되어 있습니다. 그것이 바로 컨테이너의 요점입니다. 표준화. 단일 접근 방식은 거의 모든 것에 적합합니다.
따라서 대부분의 최신 소프트웨어에 적합한 표준화된 접근 방식, 추가 보안 및 더 쉬운 버전화를 사용할 수 있으며, 이 모든 방식은 실행 중인 운영 체제(Linux, Windows, osx, Raspbian 등)에 관계없이 거의 동일하게 작동합니다.
여기서 구체적으로 언급한 것 외에도 엔터프라이즈 환경에 적용되는 보안 관련 이점이 있지만 자세히 설명할 시간이 없습니다. 하지만 관심이 있으시다면 Aqua 및 Prisma Cloud Compute와 같은 항목을 살펴보실 수 있습니다. 물론 기본 hashicorp/terraform 컨테이너를 확장하고 좋아하는 기본값을 추가할 수도 있습니다.
개인적으로 나는 (WSL 없이) 윈도우를 실행하는 것 외에는 선택의 여지가 없지만 도커를 실행할 수 있기 때문에 공유 도커 소켓을 통해 다른 컨테이너를 실행할 수 있는 별칭을 가진 '스위스 아미 나이프' 컨테이너를 가지고 있다. 이것은 윈도우를 실행하는 동안 가능한 한 실제 리눅스 환경에 가까워진다는 것을 의미한다. 작업 컨테이너를 정기적으로 폐기하고 사용 중인 도구 버전을 변경할 때마다 재구성하지 않기 때문에 해당 도구의 최신 버전에 대한 별칭을 사용하면 새 버전이 자동으로 작업 공간으로 가져옵니다. 이 작업을 수행할 때 문제가 발생하면 별칭에 버전을 지정하고 업그레이드할 준비가 될 때까지 작업을 계속할 수 있습니다. 다른 사용자의 코드를 작업할 때 도구를 다운그레이드해야 하는 경우에는 별칭을 다시 변경하면 모든 것이 이전 버전에서 작동합니다. 제가 보기에 이 워크플로우는 제가 사용해 본 것 중 가장 쉬운 것 같습니다. 그리고 저는 이것을 35년 동안 해왔습니다.
저는 도커와 엔지니어링에 대한 이 접근법이 이전에 있었던 어떤 것보다 더 간단하고, 깨끗하고, 더 안전하다고 생각합니다. 저는 모든 사람들이 그것을 시도해 볼 것을 강력히 추천합니다.
여기에는 다른 유효한 답이 있습니다. 이것은 나처럼 이전 버전에서 새 버전으로 마이그레이션하는 동안 여러 Terraform 버전이 필요한 상황에 유용할 수 있습니다.
나는 그것을 위해 tfenv를 사용한다:
기본 또는 디렉터리 또는 상위 디렉터리에서 가장 가까운 .terraform-version 파일을 기반으로 올바른 테라폼 실행 파일을 검색하는 수정된 테라폼 스크립트를 제공합니다. 이를 통해 마이그레이션된 항목에 Terraform 0.12 버전을 사용하고 레거시 항목에 Terraform 0.11을 유지할 수 있습니다.
체크아웃할 수도 있습니다. 그러면 다른 버전을 쉽게 전환할 수 있습니다.
먼저 다음을 사용하여 최신 패키지 정보를 다운로드하십시오.
sudo apt-get update
가장 간단한 다운그레이드 방법은 필요한 버전을 설치하는 것입니다. 그러면 자동으로 다운그레이드가 수행됩니다.
사용 가능한 버전 목록 표시 -
terraform/xenial 0.13.5 amd64
terraform/xenial 0.13.4-2 amd64
... etc
또는 사용 가능한 버전을 나열하는 데 사용합니다.
원하는 버전을 설치합니다.
sudo apt-get install terraform=0.14.5
또는 '깨끗한' 접근 방식을 사용하려면 원하는 버전을 설치하는 기존 버전을 제거합니다.
sudo apt remove terraform
'개발하자' 카테고리의 다른 글
일반 유형을 사용하여 스크립트 래핑 함수를 입력합니다. (0) | 2022.11.22 |
---|---|
더블 클릭 시 아나콘다 주피터 노트북에서 .ipynb를 엽니다(macOS). (0) | 2022.11.21 |
AWS Elastic Beanstalk CLI(Win10, Python 3.6, Pip 9.0.1)를 설치할 수 없습니다. (0) | 2022.11.20 |
Terraform을 사용하여 Keycloak의 영역에 대한 기본 제공 계정 클라이언트 사용 안 함 (0) | 2022.11.19 |
Jupyter 노트북 또는 Jupyter Lab 셀에서 단일 라인 또는 선택한 코드를 실행하는 방법은 무엇입니까? (1) | 2022.11.19 |