Editați Această pagină în depozitul Chef
această pagină este generată de sursa clientului Chef Infra code.To sugerați o modificare, editați lansaread.fișier rb și să prezinte o cerere de tragere la depozitul de client Chef Infra.
toate resursele Infra pagina
utilizați resursa launchd pentru a gestiona servicii la nivel de sistem (demoni) și servicii per utilizator (agenți) pe platforma macOS.
nou în Chef Infra Client 12.8.
sintaxă
sintaxa completă pentru toate proprietățile care sunt disponibile pentru resursa launchd este:
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
unde:
-
launchd
este resursa. -
name
este numele dat blocului de resurse. -
action
identifică pașii pe care Chef Infra Client îi va lua pentru a aduce nodul în starea dorită. -
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
, șiworking_directory
sunt proprietățile disponibile pentru această resursă.
acțiuni
resursa launchd are următoarele acțiuni:
:create
implicit. Creați o listă de proprietăți launchd.:create_if_missing
creați o listă de proprietăți launchd, dacă nu există deja.:delete
ștergeți o listă de proprietăți launchd. Acest lucru va descărca un daemon sau agent, dacă este încărcat.:disable
dezactivați o listă de proprietăți launchd.:enable
creați o listă de proprietăți launchd, apoi asigurați-vă că este activată. Dacă o listă de proprietăți launchd există deja, dar nu se potrivește, actualizează lista de proprietăți pentru a se potrivi, apoi repornește demonul sau agentul.:nothing
acest bloc de resurse nu acționează decât dacă este notificat de o altă resursă să ia măsuri. Odată notificat, acest bloc de resurse fie se execută imediatsau este în coada de așteptare pentru a rula la sfârșitul unui Chef Infra client rula.:restart
reporniți un daemon sau un agent gestionat launchd.
Properties
resursa launchd are următoarele proprietăți:
abandon_process_group
Ruby Type: true, false
dacă o lucrare moare, toate procesele rămase cu același ID de proces pot continua să ruleze. Setați la true pentru a ucide toate procesele rămase.
backup
Ruby Type: Integer, false
Numărul de copii de rezervă care trebuie păstrate în /var/chef/backup
. Setați la false
pentru a preveni păstrarea copiilor de rezervă.
cookbook
Tip Rubin: String
numele cărții de bucate în care se află fișierele sursă.
group
Ruby Type: String, Integer
când launchd este rulat ca utilizator root, grupul pentru a rula lucrarea ca.Dacă proprietatea username
este specificată și această proprietate nu este, această valoare este setată la grupul implicit pentru utilizator.
label
Ruby Type: String
identificatorul unic pentru lucrare.
mode
Ruby Type: Integer, String | Default Value:'0755'
un șir de caractere 3-5 citat care definește modul octal. Exemplu anterior: '755'
, '0755'
sau 00755
.
owner
Tip Rubin: Integer, String
un șir sau un ID care identifică proprietarul grupului după numele de utilizator, inclusiv numele de utilizator complet calificat, cum ar fi domain\user
sauuser@domain
. Dacă această valoare nu este specificată, proprietarii existențirămân neschimbate și noile atribuiri ale proprietarilor utilizează utilizatorul curent(când este necesar).
path
Ruby Type: String
calea către director. Utilizarea unei căi complet calificate esterecomandată, dar nu este întotdeauna necesară. Valoarea implicită: name
a blocului de resurse. Consultați secțiunea” sintaxă ” de mai sus pentru mai multe informații.
plist_hash
Tip Rubin: Hash
un Hash de perechi de valori cheie utilizate pentru a crea lista de proprietăți launchd.
session_type
Ruby Type: String
tipul de plist launchd care urmează să fie creat. Valori posibile: system
(implicit) sau user
.
source
Ruby Type: String
calea către lista de proprietăți launchd.
type
Ruby Type: String
tipul resursei. Valori posibile: daemon
(implicit), agent
.
abandon_process_group
Ruby Type: true, false
dacă o lucrare moare, toate procesele rămase cu același ID de proces pot continua să ruleze. Setați la true pentru a ucide toate procesele rămase.
debug
Tip Rubin: true, false
Setează masca de jurnal la LOG_DEBUG
pentru această lucrare.
disabled
Ruby Type: true, false | Default Value:false
indică launchctl
pentru a nu trimite acest job la launchd.
enable_globbing
Tip Ruby: adevărat, fals
actualizați argumentele programului înainte de invocare.
enable_transactions
Tip Ruby: adevărat, fals
urmăriți tranzacțiile în curs; dacă nu, trimiteți semnalul SIGKILL
.
environment_variables
Ruby Type: Hash
variabile de mediu suplimentare pentru a seta înainte de a rula un loc de muncă.
exit_timeout
Ruby Type: Integer
durata de timp (în secunde) launchd așteaptă înainte de a trimite un semnal SIGKILL
.
hard_resource_limits
Ruby Type: Hash
un Hash de limite de resurse care trebuie impuse unui loc de muncă.
inetd_compatibility
Ruby Type: Hash
specifică dacă un demon se așteaptă să fie rulat ca și cum ar fi fost lansat de la inetd
. Setați la wait => true
pentru a trece de intrare standard, de ieșire, anderror descriptori de fișiere. Setați la wait => false
pentru a apela apelul de sistem accept
în numele lucrării, apoi treceți descriptorii standard de intrare,ieșire și fișier de eroare.
init_groups
Ruby Type: true, false
specificați dacă initgroups
este apelat înainte de a executa o lucrare.
keep_alive
Tip Rubin: true, false, Hash
păstrați o lucrare care rulează continuu (true) sau permiteți cererii și Condițiilor de pe nod să determine dacă lucrarea continuă să ruleze (false
).
nou în Chef Client 12.14
launch_events
Ruby Type: Hash
specificați tipuri de evenimente de nivel superior pentru a fi utilizate ca surse de evenimente de lansare la cerere.
nou în Chef Infra Client 15.1
launch_only_once
Ruby Tip: adevărat, fals
specificați dacă un loc de muncă poate fi rulat doar o singură dată. Setați această valoare la true
dacă o lucrare nu poate fi repornită fără o repornire completă a mașinii.
limit_load_from_hosts
Tip Rubin: Array
o serie de gazde la care acest fișier de configurare nu se aplică,adică „aplicați acest fișier de configurare tuturor gazdelor care nu sunt specificate în această matrice”.
limit_load_to_hosts
Ruby Type: Array
o matrice de gazde la care se aplică acest fișier de configurare.
limit_load_to_session_type
Ruby Type: Array, String
tipul de sesiune la care se aplică acest fișier de configurare.
low_priority_io
Ruby Type: true, false
specificați dacă nucleul de pe nod ar trebui să ia în considerare acest daemon să fie prioritate scăzută în timpul sistemului de fișiere I/O.
mach_services
Ruby Type: Hash
specificați serviciile care trebuie înregistrate la subsistemul bootstrap.
nice
Ruby Type: Integer
valoarea priorității programării programului în intervalul -20
până la 20
.
on_demand
Tip Rubin: adevărat, fals
păstrați un loc de muncă în viață. Se aplică numai pentru macOS versiunea 10.4(și versiunile anterioare); utilizați keep_alive
în schimb pentru versiunile mai noi.
process_type
Ruby tip: String
scopul propus de locuri de muncă: Adaptive
, Background
, Interactive
, sau Standard
.
program
Ruby Type: String
primul argument al execvp
, de obicei numele fișierului asociatcu fișierul care urmează să fie executat. Această valoare trebuie specificată dacăprogram_arguments
nu este specificată și invers.
program_arguments
Tip Rubin: Array
al doilea argument al execvp
. Dacă program
nu este specificat, această proprietate trebuie specificată și va fi tratată ca și cum ar fi primul argument.
queue_directories
Ruby Type: Array
o serie de directoare care nu sunt goale, care, dacă sunt modificate, vor provoca pornirea unei lucrări.
root_directory
Ruby Type: String
chroot
în acest director, apoi executați lucrarea.
run_at_load
Ruby Type: true, false
lansați o lucrare o dată (în momentul în care este încărcată).
sockets
Ruby Type: Hash
un Hash de prize la cerere care notifică launchd atunci când un loc de muncă ar trebui să fie rulat.
soft_resource_limits
Tip Rubin: Array
un Hash de limite de resurse care trebuie impuse unui loc de muncă.
standard_error_path
Ruby Type: String
fișierul la care este trimisă eroarea standard (stderr
).
standard_in_path
Ruby Type: String
fișierul către care este trimisă intrarea standard (stdin
).
standard_out_path
Ruby Type: String
fișierul către care este trimisă ieșirea standard (stdout
).
start_calendar_interval
Ruby Type: Hash
un Hash (similar cu crontab
) care definește frecvența calendarului lacare este pornită o lucrare. De exemplu:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }
va rula un loc de muncă la 8:00 PM în fiecare zi, de luni până vineri, în fiecare lună a anului.
start_interval
Tip Rubin: Integer
frecvența (în secunde) la care este pornit un loc de muncă.
start_on_mount
Ruby Type: true, false
porniți o lucrare de fiecare dată când este montat un sistem de fișiere.
throttle_interval
Ruby Type: Integer | Default Value:10
frecvența (în secunde) la care joburile au voie să se reproducă.
time_out
Ruby Type: Integer
cantitatea de timp (în secunde) un loc de muncă poate fi inactiv înainte de timesout. Dacă nu este specificată nicio valoare, va fi utilizată valoarea implicită de expirare pentru launchdwill.
umask
Ruby Type: Integer
o valoare zecimală pentru a trece la umask
înainte de a executa o lucrare.
username
Tip Rubin: String
când launchd este rulat ca utilizator rădăcină, utilizatorul pentru a rula lucrarea ca.
wait_for_debugger
Ruby Type: true, false
specificați dacă launchd are o lucrare așteptați ca un depanator să se atașeze înainte de a executa codul.
watch_paths
Ruby Type: Array
o serie de căi care, dacă sunt modificate, vor determina pornirea unei lucrări.
working_directory
Ruby Type: String
chdir
în acest director, apoi executați lucrarea.
funcționalitate comună a resurselor
resursele bucătarului includ proprietăți comune, notificări și gărzi de resurse.
proprietăți comune
următoarele proprietăți sunt comune pentru fiecare resursă:
compile_time
Ruby Tip: adevărat, fals / valoarea implicită: false
controlați faza în care resursa este rulată pe nod. Setați la true pentru a rula în timp ce colecția de resurse este construită (compile phase
). Setați la false pentru a rula în timp ce Chef Infra Client configurează nodul (converge phase
).
ignore_failure
Ruby Tip: adevărat, fals,: liniște | valoarea implicită: false
continuați să rulați o rețetă dacă o resursă eșuează din orice motiv. :quiet
nu va afișa urmărirea completă a stivei și rețeta va continua să ruleze dacă o resursă eșuează.
retries
Ruby tip: întreg / valoarea implicită: 0
numărul de încercări de a prinde excepții și de a reîncerca resursa.
retry_delay
Ruby tip: întreg / valoarea implicită: 2
întârzierea reîncercării (în câteva secunde).
sensitive
Ruby Tip: adevărat, fals / valoarea implicită: false
asigurați-vă că datele sensibile ale resurselor nu sunt înregistrate de Chef InfraClient.
Notificări
notifies
Ruby Tip: Simbol, ‘ Chef::Resursă ‘
o resursă poate notifica o altă resursă să ia măsuri atunci când starea sa se schimbă. Specificați un 'resource'
, :action
pe care ar trebui să-l ia resursele și apoi :timer
pentru acea acțiune. O resursă poate notifica mai multe resurse; utilizați o declarație notifies
pentru ca fiecare sursă să fie notificată.
dacă resursa de referință nu există, o eroare este raised.In contrast, subscribes
nu va eșua dacă sourceresource nu este găsit.
un cronometru specifică punctul în timpul unui chef Infra Client rula la care se execută anotificare. Sunt disponibile următoarele cronometre:
:before
specifică faptul că acțiunea asupra unei resurse notificate trebuie executată înainte de a procesa blocul de resurse în care este localizată Notificarea.
:delayed
implicit. Specifică faptul că o notificare ar trebui să fie în coada de așteptare, și apoiexecutat la sfârșitul unui chef Infra client rula.
:immediate
,:immediately
specifică faptul că o notificare ar trebui să fie rulat imediat, perresource notificat.
sintaxa pentru notifies
este:
notifies :action, 'resource', :timer
subscribes
Ruby Tip: simbol, ‘ Chef::Resource ‘
o resursă poate asculta o altă resursă și apoi poate acționa dacă starea resursei ascultate se modifică. Specificați un'resource'
, :action
care urmează să fie luate, și apoi :timer
for that acțiune.
rețineți că subscribes
nu aplică acțiunea specificată la sursa pe care o ascultă – de exemplu:
file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend
în acest caz, subscribes
proprietate reîncarcă nginx
servicewhenever fișierul său certificat, situat sub/etc/nginx/ssl/example.crt
, este actualizat. subscribes
nu face modificări la fișierul certificat în sine, ci doar ascultă o modificare a fișierului și execută acțiunea :reload
pentru resursa sa (în acest exemplu nginx
) atunci când este detectată o modificare.
dacă cealaltă resursă nu există, abonamentul nu va ridica anerror. Contrastați acest lucru cu semantica mai strictă a notifies
, careva ridica o eroare dacă cealaltă resursă nu există.
un cronometru specifică punctul în timpul unui chef Infra Client rula la care se execută anotificare. Sunt disponibile următoarele cronometre:
:before
specifică faptul că acțiunea asupra unei resurse notificate trebuie executată înainte de a procesa blocul de resurse în care este localizată Notificarea.
:delayed
implicit. Specifică faptul că o notificare ar trebui să fie în coada de așteptare, și apoiexecutat la sfârșitul unui chef Infra client rula.
:immediate
,:immediately
specifică faptul că o notificare ar trebui să fie rulat imediat, perresource notificat.
sintaxa pentru subscribes
este:
subscribes :action, 'resource', :timer
Guards
o proprietate guard poate fi utilizată pentru a evalua starea unui nod în timpul fazei de execuție a unui client Chef Infra. Pe baza rezultatelor acestei evaluări, o proprietate de pază este apoi utilizată pentru a spune clientului Chef Infra dacă ar trebui să continue executarea unei resurse. O proprietate guard acceptă eithera string value sau o valoare Ruby block:
- un șir este executat ca o comandă shell. Dacă comanda returnează
0
, se aplică Garda. Dacă comanda returnează orice altă valoare, atunciproprietatea de pază nu este aplicată. String guards în apowershell_script rula comenzi Windows PowerShell și mayreturntrue
în plus față de0
. - un bloc este executat ca cod Ruby care trebuie să returneze fie
true
, fiefalse
. Dacă blocul returneazătrue
, se aplică proprietatea guard.Dacă blocul returneazăfalse
, proprietatea guard nu este aplicată.
o proprietate de pază este utilă pentru a se asigura că o resursă este idempotentă, permițând acelei resurse să testeze starea dorită așa cum este executată și apoi, dacă starea dorită este prezentă, pentru ca Chef InfraClient să nu facă nimic.
Properties
următoarele proprietăți pot fi folosite pentru a defini un paznic care este evaluatduring faza de execuție a unui Chef Infra client run:
not_if
împiedicați executarea unei resurse atunci când condiția returnează true
.
only_if
permiteți executarea unei resurse numai dacă condiția returnează true
.
Exemple
următoarele exemple demonstrează diferite abordări pentru utilizarea resursei launchd în rețete:
creați un demon de lansare dintr-un fișier carte de bucate