실행 리소스

요리사 저장소에서 이 페이지 편집

이 페이지는 요리사 인프라 클라이언트 소스에서 생성됩니다 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을 반환하는 경우에만 리소스를 실행할 수 있습니다.

예제

다음 예제에서는 레시피에서 실행 리소스를 사용하기 위한 다양한 방법을 보여 줍니다.

요리책 파일에서 실행 데몬 만들기



+