요리사 저장소에서 이 페이지 편집
이 페이지는 요리사 인프라 클라이언트 소스에서 생성됩니다 code.To 변경을 제안하고 실행을 편집하십시오.셰프 인프라 클라이언트 저장소에 풀 요청을 제출합니다.모든 인프라 리소스 페이지
실행 리소스를 사용하여 시스템 전체 서비스(데몬)와 사용자별 서비스(에이전트)를 관리합니다.
셰프 인프라 클라이언트의 새로운 기능 12.8.
구문
실행 리소스에서 사용할 수 있는 모든 속성에 대한 전체 구문은 다음과 같습니다:
launchd 'name' do abandon_process_group true, false backup Integer, false cookbook String debug true, false disabled true, false # default value: false enable_globbing true, false enable_transactions true, false environment_variables Hash exit_timeout Integer group String, Integer hard_resource_limits Hash inetd_compatibility Hash init_groups true, false keep_alive true, false, Hash label String # default value: 'name' unless specified launch_events Hash launch_only_once true, false ld_group String limit_load_from_hosts Array limit_load_to_hosts Array limit_load_to_session_type Array, String low_priority_io true, false mach_services Hash mode String, Integer nice Integer on_demand true, false owner String, Integer path String plist_hash Hash process_type String program String program_arguments Array queue_directories Array root_directory String run_at_load true, false session_type String sockets Hash soft_resource_limits Array source String standard_error_path String standard_in_path String standard_out_path String start_calendar_interval Hash, Array start_interval Integer start_on_mount true, false throttle_interval Integer time_out Integer type String # default value: "daemon" umask Integer username String wait_for_debugger true, false watch_paths Array working_directory String action Symbol # defaults to :create if not specifiedend
어디:
-
launchd
는 자원이다. name
는 리소스 블록에 지정된 이름입니다.action
셰프 인프라 클라이언트가 노드를 원하는 상태로 가져오기 위해 수행할 단계를 식별합니다.-
abandon_process_group
,backup
,cookbook
,debug
,disabled
,enable_globbing
,enable_transactions
,environment_variables
,exit_timeout
,group
,hard_resource_limits
,inetd_compatibility
,init_groups
,keep_alive
,label
,launch_events
,launch_only_once
,ld_group
,limit_load_from_hosts
,limit_load_to_hosts
,limit_load_to_session_type
,low_priority_io
,mach_services
,mode
,nice
,on_demand
,owner
,path
,plist_hash
,process_type
,program
,program_arguments
,queue_directories
,root_directory
,run_at_load
,session_type
,sockets
,soft_resource_limits
,source
,standard_error_path
,standard_in_path
,standard_out_path
,start_calendar_interval
,start_interval
,start_on_mount
,throttle_interval
,time_out
,type
,umask
,username
,wait_for_debugger
,watch_paths
, 그리고working_directory
는 이 리소스에서 사용할 수 있는 속성입니다.
작업
실행 리소스에는
:create
기본값이 있습니다. 실행 속성 목록을 만듭니다. :create_if_missing
실행 속성 목록이 아직 없는 경우 만듭니다. :delete
실행 속성 목록을 삭제합니다. 로드 된 경우 데몬 또는 에이전트를 언로드합니다. :disable
실행 속성 목록을 사용하지 않도록 설정합니다. :enable
실행 속성 목록을 만든 다음 사용할 수 있는지 확인합니다. 실행 속성 목록이 이미 있지만 일치하지 않는 경우 속성 목록이 일치하도록 업데이트한 다음 데몬 또는 에이전트를 다시 시작합니다. :nothing
이 리소스 블록은 조치를 취할 다른 리소스가 통보하지 않는 한 작동하지 않습니다. 일단 통보되면,이 자원 블록은 즉시 실행되거나 요리사 인프라 클라이언트 실행이 끝날 때 실행되도록 대기됩니다. :restart
실행 관리되는 데몬 또는 에이전트를 다시 시작합니다. abandon_process_group
루비 유형:참,거짓
작업이 종료되면 동일한 프로세스를 가진 나머지 모든 프로세스가 계속 실행될 수 있습니다. 나머지 모든 프로세스를 죽일 참 으로 설정합니다.
backup
루비 유형:정수,거짓
/var/chef/backup
에 보관할 백업 수입니다. 백업이 유지되지 않도록 하려면false
으로 설정합니다.
cookbook
루비 타입: 문자열
소스 파일이 있는 요리 책의 이름입니다.
group
루비 유형:문자열,정수
실행이 루트 사용자로 실행 될 때,그룹으로 작업을 실행합니다.username
속성이 지정되고 이 속성이 지정되지 않은 경우 이 값은 사용자의 기본 그룹으로 설정됩니다.
label
루비 유형:문자열
작업의 고유 식별자입니다.
mode
루비 유형:정수,문자열/기본값:'0755'
8 진수 모드를 정의하는 인용 3-5 문자열입니다. 예:'755'
,'0755'
또는00755
.
owner
루비 타입: 사용자 이름별로 그룹 소유자를 식별하는 문자열 또는 아이디로,domain\user
또는user@domain
와 같은 정규화된 사용자 이름을 포함합니다. 이 값을 지정하지 않으면 기존 소유자변경되지 않고 새 소유자 할당은 현재 사용자를 사용합니다(필요한 경우).path
루비 유형:문자열
디렉토리의 경로. 정규화된 경로를 사용하는 것은 권장되지만 항상 필요한 것은 아닙니다. 기본값:리소스 블록의name
입니다. 자세한 내용은 위의”구문”섹션을 참조하십시오.정보.
plist_hash
루비 유형: 해시
실행 속성 목록을 만드는 데 사용되는 키 값 쌍의 해시입니다.
session_type
루비 유형:문자열
생성 할 실행 플 리스트의 유형입니다. 가능한 값:system
(기본값)또는user
.
source
루비 유형:문자열
실행 속성 목록의 경로입니다.
type
루비 유형:문자열
리소스 유형입니다. 가능한 값:daemon
(기본값),agent
.
abandon_process_group
루비 유형:참,거짓
작업이 종료되면 동일한 프로세스 아이디를 가진 나머지 모든 프로세스가 계속 실행될 수 있습니다. 나머지 모든 프로세스를 죽일 참 으로 설정합니다.
debug
루비 타입: 참,거짓
이 작업에 대한 로그 마스크를LOG_DEBUG
로 설정합니다.
disabled
루비 유형:참,거짓/기본값:false
이 작업을 실행에 제출하지 않으려면launchctl
을 암시합니다.
enable_globbing
루비 유형:참,거짓
호출하기 전에 프로그램 인수를 업데이트합니다.
enable_transactions
루비 유형:참,거짓
진행 중인 트랜잭션을 추적합니다.
environment_variables
루비 유형:해시
작업을 실행하기 전에 설정할 추가 환경 변수.
exit_timeout
루비 유형:정수
SIGKILL
신호를 보내기 전에 실행 대기 시간(초)입니다.
hard_resource_limits
루비 유형:해시
작업에 적용할 리소스 제한의 해시입니다.
inetd_compatibility
루비 유형:해시
는 데몬이inetd
에서 시작된 것처럼 실행될 것으로 예상하는지 여부를 지정합니다. 표준 입력,출력,오류 파일 설명자를 전달하려면wait => true
로 설정합니다. 작업 대신accept
시스템 호출을 호출하고 표준 입력,출력 및 오류 파일 설명자를 전달하려면wait => false
로 설정합니다.
init_groups
루비 유형:참,거짓
작업을 실행하기 전에initgroups
이 호출되는지 지정합니다.
keep_alive
루비 유형: 참,거짓,해시
는 작업을 계속 실행 상태로 유지하거나(참)노드에서 수요 및 조건을 허용하여 작업이 계속 실행되는지 확인합니다(false
).12.14
launch_events
루비 유형:해시
주문형 시작 이벤트 소스로 사용할 상위 레벨 이벤트 유형을 지정합니다.15.1
launch_only_once
루비 유형:참,거짓
작업을 한 번만 실행할 수 있는지 지정합니다. 전체 컴퓨터를 다시 부팅하지 않고 작업을 다시 시작할 수 없는 경우 이 값을true
으로 설정합니다.
limit_load_from_hosts
루비 타입: 배열
이 구성 파일이 적용되지 않는 호스트 배열,즉”이 배열에 지정되지 않은 모든 호스트에 이 구성 파일 적용”입니다.
limit_load_to_hosts
루비 유형:배열
이 구성 파일이 적용되는 호스트 배열입니다.
limit_load_to_session_type
루비 유형:배열,문자열
이 구성 파일이 적용되는 세션 유형입니다.
mach_services
루비 유형:해시
부트스트랩 서브시스템에 등록할 서비스를 지정합니다.
nice
루비 유형:정수
-20
에서20
범위의 프로그램 스케줄링 우선 순위 값입니다.
on_demand
루비 유형:참,거짓
작업을 계속 유지합니다. 최신 버전의 경우 대신keep_alive
을 사용합니다.
process_type
루비 유형:문자열
작업의 의도 된 목적: Adaptive
, Background
, Interactive
, 또는Standard
.
program
루비 유형:문자열
execvp
의 첫 번째 인수,일반적으로 실행될 파일과 연결된 파일 이름입니다. 이 값은program_arguments
이 지정되지 않은 경우 지정해야 하며 그 반대의 경우도 마찬가지입니다.
program_arguments
루비 타입: 배열
execvp
의 두 번째 인수. program
이 지정되지 않은 경우 이 속성을 지정해야 하며 첫 번째 인수인 것처럼 처리됩니다.
queue_directories
루비 유형:배열
비어 있지 않은 디렉토리 배열로 인해 수정 된 경우 작업이 시작됩니다.
root_directory
루비 유형:문자열
chroot
이 디렉토리에 다음 작업을 실행합니다.
run_at_load
루비 유형:참,거짓
작업을 한 번 시작하십시오(로드 될 때).
sockets
루비 유형:해시
작업을 실행해야 할 때 실행을 알리는 주문형 소켓의 해시입니다.
soft_resource_limits
루비 타입: 배열
작업에 적용할 리소스 제한의 해시입니다.
standard_error_path
루비 유형:문자열
표준 오류(stderr
)가 전송되는 파일.
standard_in_path
루비 유형:문자열
표준 입력(stdin
)이 전송되는 파일.
standard_out_path
루비 유형:문자열
표준 출력(stdout
)이 전송되는 파일.
start_calendar_interval
루비 유형:해시
해시(crontab
와 유사)는 작업이 시작되는 달력 빈도를 정의합니다. 예를 들면:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }
는 매일,월요일부터 금요일까지,매월마다 오후 8 시에 작업을 실행합니다.
start_interval
루비 유형: 정수
작업이 시작되는 빈도(초)입니다.
start_on_mount
루비 유형:참,거짓
파일 시스템이 마운트될 때마다 작업을 시작합니다.
throttle_interval
루비 유형:정수/기본값:10
작업이 생성될 수 있는 빈도(초)입니다.
time_out
루비 유형:정수
작업이 시간 초과되기 전에 유휴 상태일 수 있는 시간(초)입니다. 값을 지정하지 않으면 실행에 대한 기본 시간 제한 값이 사용됩니다.
umask
루비 유형:정수
작업을 실행하기 전에umask
에 전달할 10 진수 값입니다.
username
루비 유형: 문자열
실행이 루트 사용자로 실행될 때 작업을 실행할 사용자입니다.
wait_for_debugger
루비 유형:참,거짓
코드를 실행하기 전에 디버거가 연결될 때까지 실행 작업이 대기 중인지 지정합니다.
watch_paths
루비 유형:배열
경로 배열로 인해 수정 된 경우 작업이 시작됩니다.
working_directory
루비 유형:문자열
chdir
이 디렉토리에 다음 작업을 실행합니다.
공통 리소스 기능
요리사 리소스에는 공통 속성,알림 및 리소스 가드가 포함됩니다.
공통 속성
다음 속성은 모든 리소스에 공통입니다:
compile_time
루비 유형:참,거짓/기본값: false
노드에서 리소스가 실행되는 단계를 제어합니다. 리소스 컬렉션을 빌드하는 동안 실행하려면 참(compile phase
)으로 설정합니다. 셰프 인프라 클라이언트가 노드를 구성하는 동안 실행하려면 거짓으로 설정합니다(converge phase
).
ignore_failure
루비 유형:참,거짓,:조용한/기본값: false
리소스가 어떤 이유로 든 실패하면 레시피를 계속 실행하십시오. :quiet
는 전체 스택 추적을 표시하지 않으며 리소스가 실패하면 레시피가 계속 실행됩니다.
retries
루비 유형:정수/기본값: 0
예외를 포착하고 리소스를 다시 시도하려는 시도 수입니다.
retry_delay
루비 유형:정수/기본값: 2
재시도 지연(초)입니다.
sensitive
루비 유형:참,거짓/기본값: false
셰프 인프라클라이언트가 중요한 리소스 데이터를 기록하지 않도록 합니다.
알림
notifies
루비 유형:기호,’요리사::리소스’
리소스는 상태가 변경될 때 조치를 취하도록 다른 리소스에 알릴 수 있습니다. 'resource'
,리소스가 수행해야 하는:action
,해당 작업에 대해:timer
을 지정합니다. 리소스는 하나 이상의 리소스를 인증할 수 있습니다.
참조된 리소스가 없으면 오류는 다음과 같습니다 raised.In 대비,subscribes
소스 소스를 찾을 수 없는 경우 실패 하지 않습니다.
타이머는 요리사 인프라 클라이언트 실행 중 기름부음이 실행되는 지점을 지정합니다. 다음 타이머를 사용할 수 있습니다:
:before
알림이 있는 리소스 블록을 처리하기 전에 알림된 리소스에 대한 작업을 실행하도록 지정합니다.
:delayed
기본값. 알림을 큐에 대기한 다음 요리사 인프라 클라이언트 실행이 끝날 때 실행하도록 지정합니다.
:immediate
, :immediately
알림을 즉시 실행하도록 지정합니다.
notifies
의 구문은:
notifies :action, 'resource', :timer
subscribes
루비 타입:심볼,’셰프’::리소스’
리소스가 다른 리소스를 수신한 다음 수신 중인 리소스의 상태가 변경되면 조치를 취할 수 있습니다. 'resource'
,수행할:action
,다음:timer
작업을 지정합니다.
subscribes
은 수신하는 소스에 지정된 작업을 적용하지 않습니다.:
file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend
이 경우subscribes
속성은/etc/nginx/ssl/example.crt
아래에 있는 인증서 파일이 업데이트되지 않는 한nginx
서비스를 다시 로드합니다. subscribes
인증서 파일 자체를 변경 하지 않습니다,그것은 단지 파일에 대 한 변경을 수신 하 고(예:nginx
에서)변경 내용이 검색 될 때 해당 리소스에 대 한:reload
작업을 실행 합니다.
다른 리소스가 없으면 구독에서 오류가 발생하지 않습니다. 다른 리소스가 없는 경우 오류가 발생합니다.
타이머는 요리사 인프라 클라이언트 실행 중 기름부음이 실행되는 지점을 지정합니다. 다음 타이머를 사용할 수 있습니다:
:before
알림이 있는 리소스 블록을 처리하기 전에 알림된 리소스에 대한 작업을 실행하도록 지정합니다.
:delayed
기본값. 알림을 큐에 대기한 다음 요리사 인프라 클라이언트 실행이 끝날 때 실행하도록 지정합니다.
:immediate
, :immediately
알림을 즉시 실행하도록 지정합니다.
subscribes
의 구문은:
subscribes :action, 'resource', :timer
가드
가드 속성은 요리사 인프라 클라이언트 실행의 실행 단계 동안 노드의 상태를 평가하는 데 사용할 수 있습니다. 이 평가의 결과에 따라 가드 속성은 요리사 인프라 클라이언트에게 리소스를 계속 실행해야한다고 알리는 데 사용됩니다. 가드 속성은 다음 중 하나를 허용합니다.문자열 값 또는 루비 블록 값:
- 문자열은 쉘 명령으로 실행됩니다. 명령이
0
을 반환하면 가드가 적용됩니다. 명령이 다른 값을 반환하면 가드 속성이 적용되지 않습니다. 명령 및0
뿐만 아니라true
반환할 수 있습니다. - 블록은
true
또는false
중 하나를 반환해야 루비 코드로 실행됩니다. 블록이true
을 반환하면 가드 속성이 적용됩니다.블록이false
을 반환하면 가드 속성이 적용되지 않습니다.
가드 속성은 해당 리소스가 실행될 때 원하는 상태를 테스트하도록 허용하여 리소스가 멱등임을 확인하고 원하는 상태가 있으면 셰프 인프라클라이언트가 아무 작업도 하지 않도록 하는 데 유용합니다.
속성
다음 속성을 사용하여 요리사 인프라 클라이언트 실행의 실행 단계 동안 평가되는 가드를 정의할 수 있습니다:
not_if
조건이true
을 반환할 때 리소스가 실행되지 않도록 합니다.
only_if
조건이true
을 반환하는 경우에만 리소스를 실행할 수 있습니다.
예제
다음 예제에서는 레시피에서 실행 리소스를 사용하기 위한 다양한 방법을 보여 줍니다.
요리책 파일에서 실행 데몬 만들기