chef 비망록

3177 단어 chef

할 일


  • chef를 사용하여 ec2에 nginx 도입

  • 사전 준비


  • ec2 인스턴스를 만들고 % ssh nginx-test로 로그인 할 수 있도록 설정
  • 작업 기계에 chef 및 knife-solo 설치
  • source 'https://rubygems.org'
    
    gem 'chef'
    gem 'knife-solo'
    

    리포지토리 생성


    % be knife solo init chef-repo
    % cd chef-repo
    % be knife solo prepare nginx-test
    
  • knife solo init에서 리포지토리를 만듭니다. 이후에는 거기에서 작업을 실시한다
  • knife solo prepare에서 대상 서버에서 chef-solo를 실행할 수 있도록 허용
  • nodes 디렉토리에 nginx-test.json이 생성됨


  • cookbook 만들기



    cookbook 만들기% knife cookbook create nginx -o site-cookbooks
    하는 것을 레시피에 기술한다.
    이번 목적은 yum에서 nginx를 인스톨시켜, nginx를 기동시키는 것.
    이를 위해 리포지토리를 추가해야 함 따라서 파일을 만들고 배치하는 레시피도 설명합니다.
    각 명령은 chef 문서을 참조하십시오.

    chef-repo/site-cookbooks/nginx/recipes/default.rb
    cookbook_file '/etc/yum.repos.d/nginx.repo' do
      source 'nginx.repo'
    end
    
    yum_package 'nginx' do
      action :upgrade
    end
    
    bash 'run' do
      code '/usr/sbin/nginx'
    end
    

    chef-repo/site-cookbooks/nginx/files/default/nginx.repo
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/rhel/7/$basearch/
    gpgcheck=0
    enabled=1
    

    cookbook 적용



    방금 작성한 레시피를 nginx-test.json의 run_list에 추가합니다.

    chef-repo/nodes/nginx-test.json
    {
      "run_list": [
        "recipe[nginx]"
      ],
      "automatic": {
        "ipaddress": "nginx-test"
      }
    }
    

    다음 명령을 실행하면 리포지토리 파일 배치 -> nginx 설치 -> nginx 실행 및 레시피가 실행됩니다.% be knife solo cook nginx-test
    브라우저에서 작동하는지 확인.

    좋은 웹페이지 즐겨찾기