2017-01-06 5 views
2

요리사 요리 책을 쓰는 첫 시도입니다. git를 자동으로 설치하고, 새로운 디렉토리 (git_repo/)를 만들고, 그 디렉토리로 변경하고, git 저장소로 초기화 한 다음, 일단 chef-client를 실행하면 원격 git 저장소에 연결하는 래서 피를 작성하려고합니다. 마디. 자식을 설치하고 디렉토리를 만들었지 만 디렉토리에서 git_repo로 변경하는 방법을 잘 모르겠습니다. 내가 가지고있는 코드는요리사 내 디렉토리 이동 Recipe

package 'git' do 
    action :install 
end 

directory '/home/git_repo' do 
    mode 0755 
    owner 'root' 
    group 'root' 
    action :create 
end 

execute 'change' do 
    command "sudo cd git_repo" 
end 

이 특정 작업을 실행하는 데 사용할 수있는 리소스 유형이 더 있습니까? 그렇다면 누군가가 그것에 대해 자세히 설명 할 수 있습니까?

+0

참고로 'sudo'를 사용할 필요가 없습니다. 'chef-client '가하는 일은 달리 지정하지 않는 한 수퍼 유저 권한으로 수행됩니다. – StephenKing

답변

4

속성 cwd 같은 execute 자원 :

cwd : 명령이 실행되는 현재 작업 디렉토리. (매우 가능성이 두 번째 요리사 실행에 실패이로

execute 'init' do 
    command "git init" 
    cwd "/home/git_repo" 
end 

있다는 이유 git init 것 : 다음 선언을 사용하여 작업 디렉토리로 git_repo/ 디렉토리 내에서 명령을 실행하기 위해

: 성공하지), 당신은 creates 속성을 사용하여이 자원을 guard한다: 파일이 이미 존재할 때 명령이 파일을 만들지 못하도록합니다. 당신이 정말로 빈 저장소를 초기화 할 경우 일반적인 참고로

execute 'init' do 
    command "git init" 
    cwd "/home/git_repo" 
    creates "/home/git_repo/.git" 
end 

, 나는 확실하지 않다. 저장소를 복제하려는 경우 git 리소스를 사용하십시오.

+0

답변 해 주셔서 감사합니다! 네가 말한 것을 받아 들일거야. –