詳細検索

Chef-Solo and Vagrant (VPC 환경) 설치

아바타
글쓴이 komi

Chef-Solo and Vagrant (VPC 환경) 설치
日本語에서 번역 • 원문 보기

안녕하세요. 플랫폼의 코미야입니다.
요즘 셰프가 인기가 많아.
그래서 저는 이 물결을 타고 제품 환경에 맞게 시도해볼 수 있는 글을 쓰려고 합니다.
서버스펙에 빨리 들어가고 싶지만, 이번에는 기사만 소개하고 레시피는 다음 소개하겠습니다.
아직 시도해보는 수준이라 리팩터링할 가치가 있는 레시피가 될 것 같은 느낌이 듭니다.

참고로, 이번에 Chef로 전환하려고 시도할 환경은 VPC로 마이그레이션하는 것입니다. (구성은 web2, db2, stg1, nat1입니다.) ELB를 사용하세요. 솔로만으로도 충분하다고 생각합니다. )
Vagrant-AWS와 함께 VPC를 사용할 수 있을 것 같으니, 설정 관리는 Vagrant를 사용하면서 Knife-solo를 사용할 예정입니다.
vagrant와 sahara를 연결하면 OS 상태를 저장하고 롤백하는 것이 가능합니다.
knife-solo가 /sbin 아래의 루비를 지우고 교체하려고 할 수도 있으니, 애플리케이션에 루비를 사용하지 않도록 주의하세요.

vagrant를 넣으니, ruby 1.8.7보다 높은 버전과 rbenv를 넣겠습니다.
(CentOS 5 시리즈의 경우, 6 시리즈 및 기타 배포판의 경우, 별도로 ruby -v로 확인해 주세요)

사실, 아래 PATH를 통해 /opt/chef 아래에 Chef-Client를 넣으면 루비 버전에 대해 걱정하지 않아도 될 수도 있습니다.
[shell]# 컬 -L https://www.opscode.com/chef/install.sh | bash # export PATH=$PATH:/opt/chef/embedded/bin/ # vi ~/.bashrc PATH [/shell] 보석은 셰프를 보석에 넣는 오래된 방식인 것 같아.

  • Oracle VirtualBox를 최초로 도입
    이 기능을 포함하는 이유는 Vagrant-aws에서 인스턴스를 실행하고 관리하기 위함입니다.
    [shell]cat /etc/redhat-release CentOS release 5.8 (Final) yum install libXmu libXt mesa-libGL qt qt-x11 SDL

WGET http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2-4.2.12\_84980\_el5-1.x86\_64.rpm - IVH VirtualBox-4.2-4.2.12_84980_el5-1.x86_64.rpm[/shell]

  • 필요 시 ruby-1.8.7보다 최신 버전을 도입할 수 있습니다
    [shell]yum -y install zlib-devel readline-devel openssl-devel yum install ruby ruby-devel rdoc irb rubygems yum install git --enablerepo=rpmforge[/shell]
    RBENV 설치
    [셸]복제 git://github.com/sstephenson/rbenv.git ~/.rbenv[/쉘]
    다음 두 줄은 rbenv 경로를 설정하기 위해 추가됩니다
    [shell]vi ~/.bashrc export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" 소스 ~/.bashrc[/shell] 각 환경별로 여기 PATH를 맞춰주세요 (rbenv로 입력하지 않으려면 /opt/chef/embedded/bin 등을 거쳐 주세요.)

루비 빌드 설치
[shell]git clone git://github.com/sstephenson/ruby-build.git cd ruby-build sudo ./install.sh /usr/local에 ruby-build를 설치했습니다.

rbenv install -l rbenv install 1.9.2-p290[/shell]
기본 버전을 지정하세요
[shell]rbenv Global 1.9.2-p290 RBENV 재해석[/shell]
버전 확인
[조개껍데기]루비 -v[/조개껍데기]
보석 위치
~/.rbenv/versions/version-number/lib/ruby/gems/version-number/gems

vagrant -v yum install -y rubygem-nokogiri yum install -y GCC RuBY-devel LibXML2 libXml2-devel libxSLT libXSLT-devel vagrant plugin install vagrant-aws vagrant plugin install sahara vagrant plugin install vagrant-vbguest[/shell]
OS 이미지는 필요 없지만, 박스가 필요하니 더미 박스를 추가하세요
[shell]vagrant box 더미 https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box 를 추가하고 vagrant box 리스트에 더미를 추가하고 vagrant init로 설정 파일을 만들되, 따로 작성하세요

·칼 독단 도입
[shell]gem install bundler gem install knife-solo --pre gem install knife-sol_data_bag gem list chef-solo --version Chef: 11.4.4[/shell]

새로운 knife-solo를 추가할 경우, 다음과 같이 설명하세요 (knife-solo가 사용하는 임시 디렉터리 설정 등)
[shell]mkdir -p ~/.chef vi ~/.chef/knife.rb knife[:solo_path] = '/root/chef-solo' 요리책_path ['/root/chef-repo/site-cookbooks', 'root/chef-repo/site-cookbooks'] data_bag_path '/root/chef-repo/data_bags' 암호화된 _data_bag_secret '/etc/chef/encrypted_data_bag_secret'

MV ./*rpm /USR/local/SRC/[/shell]
루비 환경 변수 설정
[shell]vi /root/.bashrc export PATH="$HOME/.rbenv/bin:$PATH:/root/.rbenv/versions/1.9.2-p290/bin" eval "$(rbenv init -)" export EDITOR=vi

배쉬[/셸]

opscodeCommunity 쿡북을 사용한다면, git 저장소를 만들고 커밋하세요

다음 페이지에서 가입하세요
https://community.opscode.com/users

아래에서 새 개인 키를 받아 저장해 두세요
http://community.opscode.com/users/your\_userid/user\_key/new
[shell]vi /root/.chef/pkey.pem 개인 키를 중단하세요 vi /root/.chef/knife.rb cookbook_path ['/root/chef-repo/site-cookbooks','/root/chef-repo/cookbooks'] 클라이언트_key '/root/.chef/pkey.pem'[/shell]

OpsCodeCommunity 쿡북은 knife 명령어로 가져올 수 있지만, 저장소 관리와 git 내 커밋이 필요합니다
[shell]cd /root/chef-repo git init /root/chef-repo/.git/ 에서 기존 Git 저장소를 재초기화한 git config --global user.email "hoge@isao.co.jp" git config --global -global user.name "hoge hoge" git add . git commit -m '첫 번째 커밋'[/shell] 이제 Knife로 요리책을 받을 수 있습니다 (레시피는 따로 계속 구할 예정입니다)

참고문헌:
Vagrant 1.1 + vagrant-aws로 여러 인스턴스를 만드는 방법 VirtualBox 설치, 구성 및 사용 자세히 virtualbox.orgVagrant 1.1로 EC2를 vagrant 업하는 방법Vagrant 1.1을 사용해 Amazon EC2에서 CentOS 인스턴스를 실행하는 방법 제가 사용하는 vagrant 플러그인

계속됩니다. 다음으로는 Vagrantfile의 구성과 레시피, 역할 등에 대해 쓸 계획입니다.

안녕하세요. 플랫폼의 코미야입니다.
요즘 셰프가 인기가 많아.
그래서 저는 이 물결을 타고 제품 환경에 맞게 시도해볼 수 있는 글을 쓰려고 합니다.
서버스펙에 빨리 도달하고 싶지만, 이번에는 소개와 레시피에 관한 글만 쓸 예정입니다.
아직 시도해보는 수준이라 리팩터링할 가치가 있는 레시피가 될 것 같은 느낌이 듭니다.

참고로, 이번에 Chef로 전환하려고 시도할 환경은 VPC로 마이그레이션하는 것입니다. (구성은 web2, db2, stg1, nat1입니다.) ELB를 사용하세요. 솔로만으로도 충분하다고 생각합니다. )
Vagrant-AWS와 함께 VPC를 사용할 수 있을 것 같으니, 설정 관리는 Vagrant를 사용하면서 Knife-solo를 사용할 예정입니다.
vagrant와 sahara를 연결하면 OS 상태를 저장하고 롤백하는 것이 가능합니다.
knife-solo가 /sbin 아래의 루비를 지우고 교체하려고 할 수도 있으니, 애플리케이션에 루비를 사용하지 않도록 주의하세요.

vagrant를 넣으니 ruby 1.8.7보다 rbenv가 있는 버전을 넣겠습니다. (CentOS5 시리즈)

Oracle VirtualBox 우선 배포
이 기능을 포함하는 이유는 Vagrant-aws에서 인스턴스를 실행하고 관리하기 위함입니다.
[shell]cat /etc/redhat-release CentOS release 5.8 (Final) yum install libXmu libXt mesa-libGL qt qt-x11 SDL

WGET http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2-4.2.12\_84980\_el5-1.x86\_64.rpm - IVH VirtualBox-4.2-4.2.12_84980_el5-1.x86_64.rpm[/shell]
ruby-1.8.7보다 최신 버전을 도입했습니다
[shell]yum install ruby ruby-devel rdoc irb, rubygems yum install git --enablerepo=rpmforge[/shell]
RBENV 설치
[셸]복제 git://github.com/sstephenson/rbenv.git ~/.rbenv[/쉘]
다음 두 줄은 rbenv 경로를 설정하기 위해 추가됩니다
[shell]vi ~/.bashrc export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" 소스 ~/.bashrc[/shell]
루비 빌드 설치
[shell]git clone git://github.com/sstephenson/ruby-build.git cd ruby-build sudo ./install.sh /usr/local에 ruby-build를 설치했습니다.

rbenv install -l rbenv install 1.9.2-p290[/shell]
기본 버전을 지정하세요
[shell]rbenv Global 1.9.2-p290 RBENV 재해석[/shell]
버전 확인
[조개껍데기]루비 -v[/조개껍데기]
보석 위치
~/.rbenv/versions/version-number/lib/ruby/gems/version-number/gems

vagrant -v yum install -y rubygem-nokogiri yum install -y GCC RuBY-devel LibXML2 libXml2-devel libxSLT libXSLT-devel vagrant plugin install vagrant-aws vagrant plugin install sahara vagrant plugin install vagrant-vbguest[/shell]
OS 이미지는 필요 없지만, 박스가 필요하니 더미 박스를 추가하세요
[shell]vagrant box 더미 https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box 를 추가하고 vagrant box 리스트에 더미를 추가하고 vagrant init로 설정 파일을 만들되, 따로 작성하세요

·칼 독단 도입
[shell]gem install bundler gem install knife-solo --pre gem install knife-solo_data_bag gem list chef-solo --version Chef: 11.4.4[/shell] 새 knife-solo 추가를 할 때는 다음과 같이 설명하세요 (knife-solo가 사용하는 임시 디렉터리 설정 등)
[shell]mkdir -p ~/.chef vi ~/.chef/knife.rb knife[:solo_path] = '/tmp/chef-solo' 요리책_path ['/root/chef-repo/site-cookbooks', '/root/chef-repo/site-cookbooks']

MV ./*rpm /USR/local/SRC/[/shell]
루비 환경 변수 설정
[shell]vi /root/.bashrc export PATH="$HOME/.rbenv/bin:$PATH:/root/.rbenv/versions/1.9.2-p290/bin" eval "$(rbenv init -)"

배쉬[/셸]
참고문헌:
Vagrant 1.1 + vagrant-aws로 여러 인스턴스를 만드는 방법 Vagrant 1.1 설치 및 설정 및 VirtualBox 상세 사용 virtualbox.orgVagrant 1.1 vagrant up EC2Vagrant 1.1을 사용해 Amazon EC2에서 CentOS 인스턴스를 실행하는 방법 제가 사용하는 vagrant 플러그인

나머지 기사 시리즈는 여기를 클릭하세요↓
 Chef-Solo에서 레시피를 작성하기 전 환경에 대해 (Vagrantfile, role, node, data_bags) Chef 1에서 기존 프로시저 레시피 작성 (기본 설정) Chef 2에서 기존 프로시저 레시피 작성 (사용자 생성) Chef 3에서 기존 프로시저 레시피 작성 (웹 서버) Chef 4에서 기존 프로시저 레시피 작성 (DB 서버) Chef 5에서 기존 프로시저 레시피 작성 (munin, zabbix) Chef로 작성한 레시피 테스트 (서버스펙)

           

Related Articles