기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
예제 1: 패키지 설치
중요
The AWS OpsWorks Stacks 서비스 수명이 2024년 5월 26일에 종료되었으며 신규 및 기존 고객 모두 사용할 수 없습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 다음 연락처로 문의하십시오. AWS Support 팀 구성: AWS re:포스트 포스트
패키지 설치는 가장 일반적인 레시피 용도 중 하나이며, 패키지에 따라서는 아주 간단할 수 있습니다. 예를 들어 다음 레시피는 Linux 시스템에 Git를 설치합니다.
package 'git' do action :install end
package
리소스package_name
속성의 기본값입니다. install
작업은 공급자에게 패키지를 설치하라고 명령합니다. install
리소스의 기본 작업인 package
을 건너뛰면 코드를 더욱 간단하게 만들 수 있습니다. 레시피를 실행할 때 Chef는 적절한 공급자를 사용하여 패키지를 설치합니다. 예제에 사용할 Ubuntu 시스템에서는 공급자가 apt-get
을 호출하여 Git를 설치합니다.
참고
Windows 시스템에 소프트웨어를 설치하려면 약간 다른 절차가 필요합니다. 자세한 내용은 Windows 소프트웨어 설치 섹션을 참조하세요.
Test Kitchen을 사용하여 Vagrant에서 이 레시피를 실행하려면 먼저 쿡북을 설정한 다음 Test Kitchen을 초기화하고 구성해야 합니다. 다음은 Linux 시스템용이지만 Windows 및 Macintosh 시스템과 절차는 기본적으로 비슷합니다. 먼저 Terminal 창을 엽니다. 이 장의 모든 예제는 명령줄 도구를 사용합니다.
쿡북을 준비하려면
-
홈 디렉터리에서
opsworks_cookbooks
라는 하위 디렉터리를 만듭니다. 이 디렉터리에는 이 장의 모든 쿡북이 저장됩니다. 그런 다음 이 쿡북의 하위 디렉터리로installpkg
를 만들고 이 디렉터리로 이동합니다. -
installpkg
에서 다음 코드가 포함된metadata.rb
라는 파일을 만듭니다.name "installpkg" version "0.1.0"
간단한 설명을 위해 이 장의 예제에서는 쿡북 이름 및 버전만 지정하지만,
metadata.rb
에 다양한 쿡북 메타데이터를 넣을 수 있습니다. 자세한 정보는 About Cookbook Metadata를 참조하세요. 참고
Test Kitchen에서는
metadata.rb
파일의 데이터를 사용하여 기본 구성 파일을 만듭니다. 그러므로 Test Kitchen을 초기화하기 전에 이 파일을 만드십시오. -
installpkg
에서kitchen init
를 실행합니다. 이 코드는 Test Kitchen을 초기화하고 기본 Vagrant 드라이버를 설치합니다. -
이
kitchen init
명령은 named로 YAML 구성 파일을installpkg
생성합니다.kitchen.yml
. 즐겨찾는 텍스트 편집기에서 파일을 엽니다..kitchen.yml
파일에는 레시피를 실행할 시스템을 지정하는platforms
섹션이 포함되어 있습니다. Test Kitchen은 인스턴스를 생성하고 지정된 레시피를 각 플랫폼에서 실행합니다.참고
기본적으로 Test Kitchen은 한 번에 한 플랫폼에서 레시피를 실행합니다. 인스턴스를 생성하는 명령에
-p
인수를 추가하면 Test Kitchen은 모든 플랫폼에서 동시에 레시피를 실행합니다.이 예제에서는 플랫폼 하나로 충분하므로
.kitchen.yml
플랫폼을 빼고centos-6.4
을 편집합니다..kitchen.yml
파일은 이제 다음과 같아야 합니다.--- driver: name: vagrant provisioner: name: chef_solo platforms: - name: ubuntu-12.04 suites: - name: default run_list: - recipe[installpkg::default] attributes:
Test Kitchen은
.kitchen.yml
실행 목록에 있는 레시피만 실행합니다. 다음과 같은[
형식을 사용하여 레시피를 식별할 수 있습니다.cookbook_name
::recipe_name
]recipe_name
.rb
확장자를 생략합니다. 처음에.kitchen.yml
실행 목록에는 쿡북의 기본 레시피installpkg::default
가 포함되어 있습니다. 이 레시피가 구현하려는 레시피이므로 실행 목록을 수정할 필요가 없습니다. -
installpkg
의 하위 디렉터리로recipes
를 만듭니다.쿡북에 레시피가 포함되어 있는 경우 (대부분 그렇죠) 해당 레시피는
recipes
하위 디렉터리에 있어야 합니다.
이제 레시피를 쿡북에 추가하고 Test Kitchen을 사용하여 인스턴스에서 레시피를 실행할 수 있습니다.
레시피를 실행하려면
-
이 단원의 시작 부분에 나온 Git 설치 예제 코드가 포함된
default.rb
파일을 만들어recipes
하위 디렉터리에 저장합니다. -
installpkg
디렉터리에서kitchen converge
를 실행합니다. 이 명령은 Vagrant에서 새 Ubuntu 인스턴스를 시작하고 인스턴스에 쿡북을 복사하고, Chef 실행을 시작하여.kitchen.yml
실행 목록에서 레시피를 실행합니다. -
레시피가 성공했는지 확인하려면 를 실행하십시오
kitchen login
. 그러면 인스턴스에 대한 SSH 연결이 열립니다. 그런 다음git --version
을 실행하여 Git가 성공적으로 설치되었는지 확인합니다. 워크스테이션으로 돌아가려면exit
를 실행합니다. -
다 마치면
kitchen destroy
를 실행해 인스턴스를 종료하세요. 다음 예제에서는 다른 쿡북을 사용합니다.
이 예제는 시작하기에는 좋은 방법이었지만 유독 단순합니다. 다른 패키지는 설치하기가 더 복잡할 수 있습니다. 이 경우, 다음 방법 일부 또는 전부를 수행해야 할 수 있습니다.
-
사용자를 생성하고 구성합니다.
-
데이터, 로그 등을 위한 하나 이상의 디렉터리를 생성합니다.
-
하나 이상의 구성 파일을 설치합니다.
-
운영 체제에 따라 서로 다른 패키지 이름이나 속성 값을 지정합니다.
-
서비스를 시작한 다음 필요하다면 다시 시작합니다.
다음 예제에서는 이러한 문제를 해결하는 방법과 그 밖의 몇 가지 유용한 작업을 설명합니다.