Rediger denne side i Chef repository
denne side er genereret fra Chef Infra klient kilde code.To foreslå en ændring, Rediger launchd.RB fil og indsende en pull anmodning til kokken Infra klient repository.
siden alle Infra-ressourcer
brug launchd-ressourcen til at administrere systemdækkende tjenester (dæmoner) og tjenester pr.bruger (agenter) på macOS-platformen.
nyt i Chef Infra klient 12.8.
syntaks
den fulde syntaks for alle de egenskaber, der er tilgængelige for launchd-ressourcen, er:
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
hvor:
-
launchd
det er ressourcen. -
name
er navnet på ressourceblokken. -
action
identificerer hvilke trin Chef Infra klient vil tage for at bringe noden i den ønskede tilstand. -
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
, ogworking_directory
er de egenskaber, der er tilgængelige for denne ressource.
handlinger
launchd-ressourcen har følgende handlinger:
:create
standard. Opret en launchd ejendomsliste.:create_if_missing
Opret en launchd-egenskabsliste, hvis den ikke allerede findes.:delete
Slet en launchd-ejendomsliste. Dette vil losse en dæmon eller agent, hvis indlæst.:disable
deaktiver en launchd ejendomsliste.:enable
Opret en launchd-egenskabsliste, og sørg derefter for, at den er aktiveret. Hvis en launchd-egenskabsliste allerede findes, men ikke stemmer overens, opdaterer egenskabslisten, så den matcher, og genstarter derefter dæmonen eller agenten.:nothing
denne ressourceblok virker ikke, medmindre den meddeles af en anden ressource til at foretage handling. Når den er underrettet, kører denne ressourceblok enten med det samme eller står i kø for at køre i slutningen af en Chef Infra-klientkørsel.:restart
Genstart en launchd-administreret dæmon eller agent.
egenskaber
launchd-ressourcen har følgende egenskaber:
abandon_process_group
Rubin Type: true, false
hvis et job dør, kan alle resterende processer med samme proces-ID måske fortsætte med at køre. Indstil til sand for at dræbe alle resterende processer.
backup
Rubin Type: heltal, falsk
antallet af sikkerhedskopier, der skal opbevares i /var/chef/backup
. Indstil tilfalse
for at forhindre sikkerhedskopier i at blive opbevaret.
cookbook
Rubin Type: String
navnet på kogebogen, hvor kildefilerne er placeret.
group
Rubin Type: String, heltal
når launchd køres som rodbrugeren, gruppen til at køre jobbet som.Hvis egenskaben username
er angivet,og denne egenskab ikke er angivet, angives denne værdi til standardgruppen for brugeren.
label
Rubin Type: String
den unikke identifikator for jobbet.
mode
Rubin Type: heltal, streng | Standardværdi:'0755'
en Citeret 3-5 tegnstreng, der definerer oktal-tilstand. For eksempel: '755'
, '0755'
eller 00755
.
owner
Rubin Type: Heltal, streng
en streng eller et ID,der identificerer gruppeejeren efter brugernavn, herunder fuldt kvalificerede brugernavne som domain\user
elleruser@domain
. Hvis denne værdi ikke er angivet, eksisterende ejereforblive uændret, og nye ejertildelinger bruger den aktuelle bruger(når det er nødvendigt).
path
Rubin Type: String
stien til mappen. Brug af en fuldt kvalificeret sti eranbefales, men er ikke altid påkrævet. Standardværdi: name
i ressourceblokken. Se afsnittet “syntaks” ovenfor for mereOplysninger.
plist_hash
Rubin Type: Hash
en Hash af nøgleværdipar, der bruges til at oprette launchd-egenskabslisten.
session_type
Rubin Type: String
den type launchd plist, der skal oprettes. Mulige værdier: system
(standard) eller user
.
source
Rubin Type: String
stien til launchd ejendomsliste.
type
Rubin Type: String
typen af ressource. Mulige værdier: daemon
(standard), agent
.
abandon_process_group
Rubin Type: true, false
hvis et job dør, kan alle resterende processer med samme proces-ID måske fortsætte med at køre. Indstil til sand for at dræbe alle resterende processer.
debug
Rubin Type: true, false
indstiller logmasken til LOG_DEBUG
for dette job.
disabled
Rubin Type: sand, falsk | Standardværdi:false
tip til launchctl
for ikke at indsende dette job til launchd.
enable_globbing
Rubin Type: true, false
Opdater programargumenter før påkaldelse.
enable_transactions
Rubin Type: true, false
spor igangværende transaktioner; hvis ingen, så send SIGKILL
signalet.
environment_variables
Rubin Type: Hash
yderligere miljøvariabler, der skal indstilles, før du kører et job.
exit_timeout
Rubin Type: Integer
mængden af tid (i sekunder) launchd venter, før du sender et SIGKILL
signal.
hard_resource_limits
Rubin Type: Hash
en Hash af ressourcegrænser, der skal pålægges et job.
inetd_compatibility
Rubin Type: Hash
angiver, om en dæmon forventer at blive kørt, som om den blev lanceret fra inetd
. Indstil til wait => true
for at bestå standard input, output, anderror filbeskrivere. Indstil til wait => false
for at ringe til accept
systemopkaldet på vegne af jobbet og derefter videregive standard input -, output-og fejlfilbeskrivere.
init_groups
Rubin Type: true, false
Angiv, om initgroups
kaldes, før du kører et job.
keep_alive
Rubin Type: true, false, Hash
hold et job kørende kontinuerligt (true) eller Tillad efterspørgsel og betingelser på noden for at afgøre, om jobbet fortsætter med at køre (false
).
nyt i Chef Client 12.14
launch_events
Rubin Type: Hash
Angiv højere begivenhedstyper, der skal bruges som start-on-demand begivenhedskilder.
nyt i Chef Infra Client 15.1
launch_only_once
Ruby Type: true, false
Angiv, om et job kun kan køres en gang. Indstil denne værdi til true
, hvis et job ikke kan genstartes uden en fuld genstart af maskinen.
limit_load_from_hosts
Rubin Type: Array
en række værter, som denne konfigurationsfil ikke gælder for, dvs. “Anvend denne konfigurationsfil på alle værter, der ikke er specificeret iDenne array”.
limit_load_to_hosts
Rubin Type: Array
en række værter, som denne konfigurationsfil gælder for.
limit_load_to_session_type
Rubin Type: Array, String
den sessionstype(r), som denne konfigurationsfil gælder for.
low_priority_io
Ruby Type: true, false
Angiv, om kernen på noden skal betragte denne dæmon som lav prioritet under filsystemet i/O.
mach_services
Ruby Type: Hash
Angiv tjenester, der skal registreres i bootstrap-undersystemet.
nice
Rubin Type: heltal
programmet planlægning prioritet værdi i området -20
til 20
.
on_demand
Rubin Type: sandt, falsk
hold et job i live. Gælder kun for macOS version 10.4 (og tidligere);brug keep_alive
i stedet for nyere versioner.
process_type
Rubin Type: String
det tilsigtede formål med jobbet: Adaptive
, Background
, Interactive
, eller Standard
.
program
Rubin Type: String
det første argument af execvp
, typisk filnavnet tilknyttetmed den fil, der skal udføres. Denne værdi skal angives, hvisprogram_arguments
ikke er angivet, og omvendt.
program_arguments
Rubin Type: Array
det andet argument af execvp
. Hvis program
ikke er angivet, skal denne ejendom specificeres og håndteres som om det var det første argument.
queue_directories
Ruby Type: Array
en række ikke-tomme mapper, som, hvis nogen ændres, får et job til at blive startet.
root_directory
Rubin Type: String
chroot
til denne mappe, og kør derefter jobbet.
run_at_load
Rubin Type: true, false
Start et job en gang (på det tidspunkt, det indlæses).
sockets
Rubin Type: Hash
en Hash af on-demand sockets, der meddeler launchd, når et job skal køres.
soft_resource_limits
Rubin Type: Array
en Hash af ressourcegrænser, der skal pålægges et job.
standard_error_path
Rubin Type: String
den fil, som standardfejl (stderr
) sendes til.
standard_in_path
Rubin Type: String
den fil, som standardindgang (stdin
) sendes til.
standard_out_path
Rubin Type: String
den fil, som standardoutput (stdout
) sendes til.
start_calendar_interval
Rubin Type: Hash
en Hash (svarende til crontab
), der definerer kalenderfrekvensen påsom et job startes. For eksempel:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }
vil køre et job kl 8: 00 hver dag, mandag til fredag, hver måned af året.
start_interval
Rubin Type: Heltal
frekvensen (i sekunder), hvor et job startes.
start_on_mount
Rubin Type: true, false
Start et job, hver gang et filsystem er monteret.
throttle_interval
Rubin Type: heltal | Standardværdi:10
frekvensen (i sekunder), hvor job får lov til at gyde.
time_out
Rubin Type: heltal
mængden af tid (i sekunder) et job kan være inaktiv, før det timesout. Hvis der ikke er angivet nogen værdi, bruges standard timeout-værdien for launchd.
umask
Rubin Type: heltal
en decimalværdi, der skal overføres til umask
, før du kører et job.
username
Rubin Type: String
når launchd køres som root-bruger, skal brugeren køre jobbet som.
wait_for_debugger
Rubin Type: true, false
Angiv, om launchd har et job vent på, at en debugger vedhæftes, før du udfører kode.
watch_paths
Rubin Type: Array
en række stier, som, hvis nogen ændres, vil få et job til at blive startet.
working_directory
Rubin Type: String
chdir
til denne mappe, og kør derefter jobbet.
fælles ressource funktionalitet
Chef ressourcer omfatter fælles egenskaber, meddelelser og ressource vagter.
fælles egenskaber
følgende egenskaber er fælles for hver ressource:
compile_time
Rubin Type: sand, falsk / standard værdi: false
Kontroller den fase, hvor ressourcen køres på noden. Indstil til sand for at køre, mens ressourcesamlingen bygges (compile phase
). Indstil til falsk for at køre, mens Chef Infra Client konfigurerer noden (converge phase
).
ignore_failure
Rubin Type: sand, falsk,: stille / Standardværdi: false
fortsæt med at køre en opskrift, hvis en ressource mislykkes af en eller anden grund. :quiet
viser ikke den fulde staksporing, og opskriften fortsætter med at køre, hvis en ressource fejler.
retries
Rubin Type: heltal / Standardværdi: 0
antallet af forsøg på at fange undtagelser og prøve ressourcen igen.
retry_delay
Rubin Type: heltal / Standardværdi: 2
prøv igen forsinkelse (i sekunder).
sensitive
Rubin Type: sand, falsk / Standardværdi: false
sørg for, at følsomme ressourcedata ikke logges af Chef InfraClient.
Underretninger
notifies
Rubin Type: Symbol, ‘ Kok::Ressource ‘
en ressource kan underrette en anden ressource om at handle, når dens tilstandændringer. Angiv en 'resource'
, den :action
, som ressourcen skal tage, og derefter :timer
for den handling. En ressource kan meddele mere end en ressource; brug en notifies
erklæring for hver ressource, der skal meddeles.
hvis den refererede ressource ikke findes, er en fejl raised.In kontrast, subscribes
vil ikke mislykkes, hvis kildenressource ikke findes.
en timer angiver det punkt under en Chef Infra-klientkørsel, hvor anotificering køres. Følgende timere er tilgængelige:
:before
angiver, at handlingen på en anmeldt ressource skal køres, før den ressourceblok, hvor anmeldelsen er placeret, behandles.
:delayed
standard. Angiver, at en meddelelse skal stå i kø og derefter udføres i slutningen af en Chef Infra-Klientkørsel.
:immediate
,:immediately
angiver, at en anmeldelse skal køres straks, perresource anmeldt.
syntaksen for notifies
er:
notifies :action, 'resource', :timer
subscribes
Rubin Type: Symbol, ‘ kok::Ressource ‘
en ressource kan lytte til en anden ressource og derefter handle, hvisstatus for den ressource, der lyttes til ændringer. Angiv en'resource'
, :action
, der skal tages, og derefter :timer
forthat handling.
Bemærk, at subscribes
ikke anvender den angivne handling på den ressource, den lytter til – for eksempel:
file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend
i dette tilfælde genindlæser egenskaben subscribes
tjenesten nginx
når dens certifikatfil, der er placeret under/etc/nginx/ssl/example.crt
, opdateres. subscribes
foretager ingen ændringer i selve certifikatfilen, den lytter kun efter en ændring af filen og udfører handlingen :reload
for dens ressource (i dette eksempel nginx
), når der registreres en ændring.
hvis den anden ressource ikke findes, hæver abonnementet ikke fejl. Kontrast dette med den strengere semantik af notifies
, somvil rejse en fejl, hvis den anden ressource ikke eksisterer.
en timer angiver det punkt under en Chef Infra-klientkørsel, hvor anotificering køres. Følgende timere er tilgængelige:
:before
angiver, at handlingen på en anmeldt ressource skal køres, før den ressourceblok, hvor anmeldelsen er placeret, behandles.
:delayed
standard. Angiver, at en meddelelse skal stå i kø og derefter udføres i slutningen af en Chef Infra-Klientkørsel.
:immediate
,:immediately
angiver, at en anmeldelse skal køres straks, perresource anmeldt.
syntaksen for subscribes
er:
subscribes :action, 'resource', :timer
vagter
en vagtegenskab kan bruges til at evaluere tilstanden af en knude under udførelses fasen af en Chef Infra Klientkørsel. Baseret på resultaterne af denne evaluering, en guard-ejendom bruges derefter til at fortælle Chef Infra-klient, om det skal fortsætte med at udføre en ressource. En guard-egenskab accepterer entenen strengværdi eller en Rubinblokværdi:
- en streng udføres som en shell-kommando. Hvis kommandoen returnerer
0
, anvendes vagten. Hvis kommandoen returnerer en anden værdi, sågarde-egenskaben anvendes ikke. String guards i apountshell_script køre vinduer kommandoer og mayreturntrue
i tillæg til0
. - en blok udføres som Rubinkode, der skal returnere enten
true
ellerfalse
. Hvis blokken returnerertrue
, anvendes guard-egenskaben.Hvis blokken returnererfalse
, anvendes guard-egenskaben ikke.
en guard-egenskab er nyttig til at sikre, at en ressource er idempotent ved at lade denne ressource teste for den ønskede tilstand, som den er udført, og derefter, hvis den ønskede tilstand er til stede, for Chef InfraClient at ikke gøre noget.
egenskaber
følgende egenskaber kan bruges til at definere en vagt, der evalueres under udførelsesfasen af en Chef Infra-Klientkørsel:
not_if
forhindre, at en ressource udføres, når betingelsen returnerer true
.
only_if
Tillad kun, at en ressource udføres, hvis betingelsen returnerer true
.
eksempler
følgende eksempler demonstrerer forskellige tilgange til brug af launchd-ressourcen i opskrifter:
Opret en Lanceringsdæmon fra en kogebogfil