'OSS(Open Source Software)'에 해당되는 글 33건
- 2014.06.12 :: 글에 이미지 넣기
- 2014.05.20 :: 리눅스 파일 퍼미션 변경 recipe
- 2014.04.17 :: 파일 및 디렉토리 무시하기
- 2014.04.15 :: chef 구성
- 2014.04.14 :: Resource란?
- 2014.04.14 :: 멱등성이란?
- 2014.04.14 :: chef-solo를 이용한 패키지 설치
- 2014.04.14 :: chef solo
- 2014.04.14 :: knife 초기 설정
- 2014.04.14 :: 저장소로부터 프로젝트 작업본 만들기(check out)
문법은 다음과 같다.
!image.jpg!
!>image_url! 오른쪽 정렬
!image_url(Image title)! 이미지 제목이 표시 됨
!image_url!URL 해당 url로 링크됨
리눅스에서 특정파일들에대한 퍼미션을 유지하고 싶은 경우가 있다.
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 |
svn에서 무시하고 싶은 파일/폴더 지정하기
svn을 이용하다 보면, 개인 설정파일과 같이 commit 하지 않을 파일이나 디렉토리가 존재하게 된다. 이럴 경우, 부분 commit을 하거나 commit 후 revert 하게 되는데, ignore 속성 값을 주어 무시할 수 있다.
# svn propset svn:ignore dir_name .
# svn propset svn:ignore '.bashrc' .
현재 디렉토리 밑에 있는 .bashrc 파일에 대해 무시하라는 뜻이다.
현재 적용되어 있는 속성 확인
속성을 추가 후 또는 어느정도 기간이 지난 후 어떤 속성이 지정되어 있는지 기억이 나지 않을 경우 다음 명령으로 속성값을 확인할 수 있다.
# svn proplist -v .
전체 디렉토리를 다 확인하려면 다음과 같이 한다.
# svn proplist -vR
적용되어 있는 속성 삭제
# svn propdel svn:ignore dir_name
'OSS(Open Source Software) > svn' 카테고리의 다른 글
저장소로부터 프로젝트 작업본 만들기(check out) (0) | 2014.04.14 |
---|---|
프로젝트 파일 추가 (0) | 2014.04.14 |
새로운 프로젝트 생성 (0) | 2014.04.14 |
서버
1. 설치
다음 경로에서 시스템에 맞는 패키지를 다운받아 설치 한다.
http://www.getchef.com/chef/install/
centos 6.4에서 구성할 예정이기 때문에, chef-server 탭에서 chef-server-11.0.12-1 버전을 다운 받아 설치했다.
# wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-server-11.0.12-1.el6.x86_64.rpm --no-check-certificate
# rpm -Uvh chef-server-11.0.12-1.el6.x86_64.rpm
2. Chef Server 설정
패키지 설치 후에는 chef-server-ctl 명령을 이용해서 chef server 설정을 한다.
# chef-server-ctl reconfigure
설정을 완료하면, chef-server에 필요한 데몬들이 동작할 것이다. 만약 hostname 설정이 fqdn으로 설정되어 있지 않다면, 정상적으로 설정이 되지 않는다. 다음과 같이 hostname을 설정한다.
# vi /etc/hosts
1.1.1.1 chef-server.example.com
#vi /etc/sysconfig/network
HOSTNAME=chef-server.example.com
hostname -f 명령을 이용해서 확인했을 때 에러가 출력되지 않으면 정상이다.
# hostname -f
3. chef-server.rb 셋팅
다음을 참고
http://docs.opscode.com/config_rb_chef_server_optional_settings.html
/etc/chef-server/chef-sever.rb 파일을 생성하고 다음을 입력
server_name = "111.111.111.111" # 만약 도메인이 등록되어 있다면 fqdn을 입력
api_fqdn server_name
nginx['url'] = "https://#{server_name}"
nginx['server_name'] = server_name
lb['fqdn'] = server_name
bookshelf['vip'] = server_name
4. 웹 접속
https://[IP]
초기비밀번호 : admin / p@ssw0rd1
workstation
1. 설치
workstation은 cookbook을 제작하고 knife를 이용해 chef-server에 업로드 하는 역할을 한다. 그렇기 때문에 knife를 사용할 수 있도록 chef-client를 설치해 주면 된다.
다음 경로에서 시스템에 맞는 패키지를 다운받아 설치 한다.
http://www.getchef.com/chef/install/
본인은 client 탭에서 11.6.0-1 버전을 다운 받아 설치 했다.
# rpm -Uvh chef-11.6.0-1.el6.x86_64
2. chef-repo 복제
chef-server와 상호작용하는 chef-repo를 github로부터 복제 한다. 기본 구성을 할 수 있다. git clone을 위해 git 패키지를 설치하고 chef-repo를 복제한다.
# yum install git
# git clone git://github.com/opscode/chef-repo.git
복제가 완료되면 chef-repo라는 디렉터리가 생성된 것을 확인할 수 있다.
chef-repo 디렉터리에 .chef 디렉토리를 생성한다.
# mkdir -p chef-repo/.chef
knife 초기화
# knife configure --initial
client
knife bootstrap 명령을 이용해 설치
# knife bootstrap 123.45.6.123 -x username -P passwd --sudo
설치 완료 후 다음 명령으로 node 정보를 확인 할 수 있다.
# knife client show name_of_node
클라이언트 정보는 다음을 이용해 확인할 수 있다.
# knife client list
'OSS(Open Source Software) > chef' 카테고리의 다른 글
chef 설치 시 postgresql createdb 실패 (0) | 2014.06.17 |
---|---|
리눅스 파일 퍼미션 변경 recipe (0) | 2014.05.20 |
Resource란? (0) | 2014.04.14 |
멱등성이란? (0) | 2014.04.14 |
chef-solo를 이용한 패키지 설치 (0) | 2014.04.14 |
레시피를 작성할 때 log나 package라는 명령을 사용하는데, 이러한 명령은 ruby 문법이 아닌 chef가 제공하는 DSL이다.
자신이 정의할 수도 있고, 제삼자가 만든 것을 import 할 수도 있다.
Resource의 리스트는 공식 문서에서 확인 가능하다.
'OSS(Open Source Software) > chef' 카테고리의 다른 글
리눅스 파일 퍼미션 변경 recipe (0) | 2014.05.20 |
---|---|
chef 구성 (0) | 2014.04.15 |
멱등성이란? (0) | 2014.04.14 |
chef-solo를 이용한 패키지 설치 (0) | 2014.04.14 |
chef solo (0) | 2014.04.14 |
실행을 여러번 반복해도 같은 결과를 보장 받을 수 있는 특성.
즉, Chef의 레시피는 몇 번이고 실행해도 결과는 같으며, 결국, Chef의 실행이 끝난 후 서버 상태는 동일하다는 것을 보증하는 것이다.
'OSS(Open Source Software) > chef' 카테고리의 다른 글
chef 구성 (0) | 2014.04.15 |
---|---|
Resource란? (0) | 2014.04.14 |
chef-solo를 이용한 패키지 설치 (0) | 2014.04.14 |
chef solo (0) | 2014.04.14 |
knife 초기 설정 (0) | 2014.04.14 |
chef-solo를 이용해 패키지를 설치해 본다.
레시피 파일을 수정(default.rb)
package "php" do
action :install
end
실행
chef-solo -c solo.rb -j localhost.json
여러 개의 패키지를 한번에 설치 하기 - 반복문 이용
%w{zsh gcc make yum-utils}.each do |pkg|
package pkg do
action :install
end
end
실행
# chef-solo -c solo.rb -j localhost.json
[Mon, 14 Apr 2014 18:01:09 +0900] INFO: *** Chef 0.10.6 ***
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Setting the run_list to ["recipe[hello]"] from JSON
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Run List is [recipe[hello]]
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Run List expands to [hello]
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Starting Chef Run for localhost
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Running start handlers
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Start handlers complete.
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Processing log[Hello, Chef!] action write (hello::default line 9)
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Hello, Chef!
[Mon, 14 Apr 2014 18:01:10 +0900] INFO: Processing package[zsh] action install (hello::default line 12)
[Mon, 14 Apr 2014 18:01:13 +0900] INFO: package[zsh] installed version 4.3.10-5.el6
[Mon, 14 Apr 2014 18:01:13 +0900] INFO: Processing package[gcc] action install (hello::default line 12)
[Mon, 14 Apr 2014 18:01:13 +0900] INFO: Processing package[make] action install (hello::default line 12)
[Mon, 14 Apr 2014 18:01:13 +0900] INFO: Processing package[yum-utils] action install (hello::default line 12)
[Mon, 14 Apr 2014 18:01:15 +0900] INFO: package[yum-utils] installed version 1.1.30-14.el6
[Mon, 14 Apr 2014 18:01:15 +0900] INFO: Chef Run complete in 4.967731 seconds
[Mon, 14 Apr 2014 18:01:15 +0900] INFO: Running report handlers
[Mon, 14 Apr 2014 18:01:15 +0900] INFO: Report handlers complete
'OSS(Open Source Software) > chef' 카테고리의 다른 글
Resource란? (0) | 2014.04.14 |
---|---|
멱등성이란? (0) | 2014.04.14 |
chef solo (0) | 2014.04.14 |
knife 초기 설정 (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 |
knife로 cookbook을 만들기 전에 먼저 knife 초기 설정을 해야 한다.
# knife configure
위 명령으로 초기화를 하면 ~/.chef/knife.rb 라는 파일이 생성 된다.
'OSS(Open Source Software) > chef' 카테고리의 다른 글
chef-solo를 이용한 패키지 설치 (0) | 2014.04.14 |
---|---|
chef solo (0) | 2014.04.14 |
리포지터리(키친), 쿡북, 레시피 (0) | 2014.04.14 |
chef 설치 (0) | 2014.04.14 |
knife subcommand - configure (0) | 2014.04.10 |
# svn co [저장소 주소] [로컬 디렉토리명]
'OSS(Open Source Software) > svn' 카테고리의 다른 글
파일 및 디렉토리 무시하기 (0) | 2014.04.17 |
---|---|
프로젝트 파일 추가 (0) | 2014.04.14 |
새로운 프로젝트 생성 (0) | 2014.04.14 |