'Chef'에 해당되는 글 4건

  1. 2014.05.20 :: 리눅스 파일 퍼미션 변경 recipe
  2. 2014.04.14 :: chef solo
  3. 2014.04.14 :: 리포지터리(키친), 쿡북, 레시피
  4. 2014.04.10 :: knife sub commands - client
OSS(Open Source Software)/chef 2014. 5. 20. 10:39

리눅스에서 특정파일들에대한 퍼미션을 유지하고 싶은 경우가 있다.


chef를 이용해서 항상 일관된 퍼미션을 유지할 수 있다.


우선 퍼미션을 관리할 cookbook을 생성한다.

knife cookbook create passwd_perm -o cookbooks


recipe를 수정한다.

vim cookbooks/passwd_perm/recipes/default.rb

bash "passwd_perm" do

user "root"

cwd "/etc"

code <<-EOF

chmod 444 /etc/passwd

chown root /etc/passwd

EOF

end


cookbook을 업로드 한다.

knife cookbook upload passwd_perm -o cookbooks


node에 recipe를 추가한다.

knife node run_list add chef-client.example.com recipe[passwd_perm]


끝이다. 클라이언트를 실행하면 퍼미션이 변경 될 것이다.

'OSS(Open Source Software) > chef' 카테고리의 다른 글

chef client 변경 내역 갱신하기  (0) 2014.06.19
chef 설치 시 postgresql createdb 실패  (0) 2014.06.17
chef 구성  (0) 2014.04.15
Resource란?  (0) 2014.04.14
멱등성이란?  (0) 2014.04.14
posted by 구닥다리 엔지니어
:
OSS(Open Source Software)/chef 2014. 4. 14. 17:27
chef 설치
# rpm -Uvh http://rbel.frameos.org/rbel6
Retrieving http://rbel.frameos.org/rbel6
warning: /var/tmp/rpm-tmp.ZoRc8e: Header V4 DSA/SHA1 Signature, key ID f345be74: NOKEY
Preparing...                ########################################### [100%]
   1:rbel6-release          ########################################### [100%]

# yum install rubygem-chef


리포지터리 생성

# git clone git://github.com/opscode/chef-repo.git

Initialized empty Git repository in /game/chef-repo/.git/

remote: Reusing existing pack: 223, done.

remote: Total 223 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (223/223), 46.09 KiB, done.

Resolving deltas: 100% (56/56), done.


쿡북 생성

# rm -rf cookbooks/

# git clone git://github.com/opscode/cookbooks.git

Initialized empty Git repository in /game/chef-repo/cookbooks/.git/

remote: Reusing existing pack: 18242, done.

remote: Total 18242 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (18242/18242), 9.04 MiB | 2.16 MiB/s, done.

Resolving deltas: 100% (6971/6971), done.


knife 초기화

# knife configure


예제 cookbook 생성

# cd chef-repo

# knife cookbook create hello -o cookbooks

** Creating cookbook hello

** Creating README for cookbook: hello

** Creating metadata for cookbook: hello


레시피 편집

# vim cookbooks/hello/recipes/default.rb


log "Hello, Chef!"


chef solo 실행 시 사용할 레시피를 포함하는 JSON 파일 준비

chef-repo/localhost.json

{

        "run_list" : [

                "recipe[hello]"

        ]

}


solo.rb 파일 생성

file_cache_path "/tmp/chef-solo"

cookbook_path ["/game/chef-repo/cookbooks"]


chef-solo 실행

# chef-solo -c solo.rb -j localhost.json

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: *** Chef 0.10.6 ***

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Setting the run_list to ["recipe[hello]"] from JSON

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Run List is [recipe[hello]]

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Run List expands to [hello]

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Starting Chef Run for localhost

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Running start handlers

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Start handlers complete.

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Processing log[Hello, Chef!] action write (hello::default line 9)

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Hello, Chef!

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Chef Run complete in 0.002279 seconds

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Running report handlers

[Mon, 14 Apr 2014 17:25:35 +0900] INFO: Report handlers complete


chef-solo 사용 순서 요약

  • 레시피 생성
  • JSON 파일로 실행할 레시피 지정
  • chef-solo 명령어로 실행


'OSS(Open Source Software) > chef' 카테고리의 다른 글

멱등성이란?  (0) 2014.04.14
chef-solo를 이용한 패키지 설치  (0) 2014.04.14
knife 초기 설정  (0) 2014.04.14
리포지터리(키친), 쿡북, 레시피  (0) 2014.04.14
chef 설치  (0) 2014.04.14
posted by 구닥다리 엔지니어
:
OSS(Open Source Software)/chef 2014. 4. 14. 14:10

레시피(recipe) 

- '코드화된 설정 메뉴얼' 또는 '서버 상태'


쿡북(cookbook)

- 특정 레시피에 필요한 데이터나 파일을 모아 둔 저장 공간


리포지터리(Repository) or  키친(Kitchen)

- 쿡북 그룹을 포함한 Chef 실행에 필요한 일련의 파일을 모아 둔 저장 공간


Chef는 다음과 같은 계층 형태로 레시피 그룹을 관리한다.

  • 리포지터리 > 쿡북 > 레시피


'OSS(Open Source Software) > chef' 카테고리의 다른 글

chef solo  (0) 2014.04.14
knife 초기 설정  (0) 2014.04.14
chef 설치  (0) 2014.04.14
knife subcommand - configure  (0) 2014.04.10
knife sub commands  (0) 2014.04.10
posted by 구닥다리 엔지니어
:
OSS(Open Source Software)/chef 2014. 4. 10. 16:33
client


chef API를 사용하기 위해서는 chef client로 등록을 해야 한다.


노드를 생성하고 chef-client를 실행하기 위해서는 API client 권한이 필요하다. client와 server간에 인증은 key를 통해 하게 되는데, chef-server에서 client를 등록하면서 만들어진 client key를 배포하고, 이 key를 이용해서 등록하면 된다. client를 등록하는 방법으로 chef-validator로 등록하는 방법이 있다.

처음 chef-client가 실행되면 client는 먼저 client key 파일을 찾고, 없을 경우 validation.pem 파일을 이용해서 등록을 시도한다. validation.pem 파일은 chef-server에 /etc/chef/ 디렉토리에 있으며, validation.pem 파일을 이용해서 등록된 client는 일반 client로 등록된다.


  • client command

** CLIENT COMMANDS **

knife client show CLIENT (options)

knife client delete CLIENT (options)

knife client reregister CLIENT (options)

knife client list (options)
knife client edit CLIENT (options)
knife client create CLIENT (options)
knife client bulk delete REGEX (options)


1. client 타입


client는 두 가지 타입이 있다.

  • admin API client : 관리자 권한을 가지며, 읽기와 쓰기 권한 모두 가지고 있다.
  • 일반 client : cookbook에 대한 읽기 권한만 갖고 있다. validation.pem을 통해서 등록된 client가 여기에 해당한다.
2. create 

API client를 등록하면 API client를 위한 RSA key pair가 만들어진다. public key는 chef-server에 저장이 되고, private key는 화면에 출력이 되거나 파일로 저장할 수 있다. 이 private key를 client 배포하면 된다.
  • chef-client(일반 client) : /etc/chef/client.pem으로 복사한다.
  • knife(admin API client) : ~/.chef/client_name.pem 파일로 복사
  • syntax
knife client create CLIENT (options)
  • 예제
# knife client create manage -a -f manage.pem
Created client[manage]


3. delete

클라이언트 삭제
  • syntax
knife client delete CLIENT (options)
  • 예제
# knife client delete manage
Do you really want to delete manage? (Y/N) y
Deleted client[manage]


4. list

클라이언트 목록 보기


knife client list (options)


5. reregister

새로운 RSA key pair를 생성한다.


knife client reregister CLIENT (options)

# knife client reregister manage - f 


6. show

API client의 상세정보를 보기


knife client show CLIENT (options)


7. edit

client 정보를 수정


knife client edit CLIENT (options)

# knife client edit manage



'OSS(Open Source Software) > chef' 카테고리의 다른 글

knife subcommand - configure  (0) 2014.04.10
knife sub commands  (0) 2014.04.10
cookbook 생성  (0) 2014.04.10
chef client 설치  (0) 2014.04.10
chef workstation 설정  (0) 2014.04.10
posted by 구닥다리 엔지니어
: