'Chef'에 해당되는 글 4건
- 2014.05.20 :: 리눅스 파일 퍼미션 변경 recipe
- 2014.04.14 :: chef solo
- 2014.04.14 :: 리포지터리(키친), 쿡북, 레시피
- 2014.04.10 :: knife sub commands - client
리눅스에서 특정파일들에대한 퍼미션을 유지하고 싶은 경우가 있다.
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 |
리포지터리 생성
# 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 |
레시피(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 |
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)
1. client 타입
client는 두 가지 타입이 있다.
- admin API client : 관리자 권한을 가지며, 읽기와 쓰기 권한 모두 가지고 있다.
- 일반 client : cookbook에 대한 읽기 권한만 갖고 있다. validation.pem을 통해서 등록된 client가 여기에 해당한다.
- chef-client(일반 client) : /etc/chef/client.pem으로 복사한다.
- knife(admin API client) : ~/.chef/client_name.pem 파일로 복사
- syntax
- 예제
- syntax
- 예제
4. list
클라이언트 목록 보기
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 |