launchd Resource

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, og working_directory er de egenskaber, der er tilgængelige for denne ressource.

handlinger

launchd-ressourcen har følgende handlinger:

:createstandard. Opret en launchd ejendomsliste.:create_if_missingOpret en launchd-egenskabsliste, hvis den ikke allerede findes.:deleteSlet en launchd-ejendomsliste. Dette vil losse en dæmon eller agent, hvis indlæst.:disabledeaktiver en launchd ejendomsliste.:enableOpret 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.:nothingdenne 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.:restartGenstart en launchd-administreret dæmon eller agent.

egenskaber

launchd-ressourcen har følgende egenskaber:

abandon_process_groupRubin 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.

backupRubin Type: heltal, falsk

antallet af sikkerhedskopier, der skal opbevares i /var/chef/backup. Indstil tilfalse for at forhindre sikkerhedskopier i at blive opbevaret.

cookbookRubin Type: String

navnet på kogebogen, hvor kildefilerne er placeret.

groupRubin 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.

labelRubin Type: String

den unikke identifikator for jobbet.

modeRubin Type: heltal, streng | Standardværdi:'0755'

en Citeret 3-5 tegnstreng, der definerer oktal-tilstand. For eksempel: '755', '0755'eller 00755.

ownerRubin 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).

pathRubin Type: String

stien til mappen. Brug af en fuldt kvalificeret sti eranbefales, men er ikke altid påkrævet. Standardværdi: namei ressourceblokken. Se afsnittet “syntaks” ovenfor for mereOplysninger.

plist_hashRubin Type: Hash

en Hash af nøgleværdipar, der bruges til at oprette launchd-egenskabslisten.

session_typeRubin Type: String

den type launchd plist, der skal oprettes. Mulige værdier: system(standard) eller user.

sourceRubin Type: String

stien til launchd ejendomsliste.

typeRubin Type: String

typen af ressource. Mulige værdier: daemon (standard), agent.

abandon_process_groupRubin 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.

debugRubin Type: true, false

indstiller logmasken til LOG_DEBUG for dette job.

disabledRubin Type: sand, falsk | Standardværdi:false

tip til launchctl for ikke at indsende dette job til launchd.

enable_globbingRubin Type: true, false

Opdater programargumenter før påkaldelse.

enable_transactionsRubin Type: true, false

spor igangværende transaktioner; hvis ingen, så send SIGKILL signalet.

environment_variablesRubin Type: Hash

yderligere miljøvariabler, der skal indstilles, før du kører et job.

exit_timeoutRubin Type: Integer

mængden af tid (i sekunder) launchd venter, før du sender et SIGKILL signal.

hard_resource_limitsRubin Type: Hash

en Hash af ressourcegrænser, der skal pålægges et job.

inetd_compatibilityRubin 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 acceptsystemopkaldet på vegne af jobbet og derefter videregive standard input -, output-og fejlfilbeskrivere.

init_groupsRubin Type: true, false

Angiv, om initgroups kaldes, før du kører et job.

keep_aliveRubin 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_eventsRubin Type: Hash

Angiv højere begivenhedstyper, der skal bruges som start-on-demand begivenhedskilder.

nyt i Chef Infra Client 15.1

launch_only_onceRuby 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_hostsRubin 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_hostsRubin Type: Array

en række værter, som denne konfigurationsfil gælder for.

limit_load_to_session_typeRubin Type: Array, String

den sessionstype(r), som denne konfigurationsfil gælder for.

low_priority_ioRuby Type: true, false

Angiv, om kernen på noden skal betragte denne dæmon som lav prioritet under filsystemet i/O.

mach_servicesRuby Type: Hash

Angiv tjenester, der skal registreres i bootstrap-undersystemet.

niceRubin Type: heltal

programmet planlægning prioritet værdi i området -20 til 20.

on_demandRubin 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_typeRubin Type: String

det tilsigtede formål med jobbet: Adaptive, Background, Interactive, eller Standard.

programRubin 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_argumentsRubin 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_directoriesRuby Type: Array

en række ikke-tomme mapper, som, hvis nogen ændres, får et job til at blive startet.

root_directoryRubin Type: String

chroot til denne mappe, og kør derefter jobbet.

run_at_loadRubin Type: true, false

Start et job en gang (på det tidspunkt, det indlæses).

socketsRubin Type: Hash

en Hash af on-demand sockets, der meddeler launchd, når et job skal køres.

soft_resource_limitsRubin Type: Array

en Hash af ressourcegrænser, der skal pålægges et job.

standard_error_pathRubin Type: String

den fil, som standardfejl (stderr) sendes til.

standard_in_pathRubin Type: String

den fil, som standardindgang (stdin) sendes til.

standard_out_pathRubin Type: String

den fil, som standardoutput (stdout) sendes til.

start_calendar_intervalRubin 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_intervalRubin Type: Heltal

frekvensen (i sekunder), hvor et job startes.

start_on_mountRubin Type: true, false

Start et job, hver gang et filsystem er monteret.

throttle_intervalRubin Type: heltal | Standardværdi:10

frekvensen (i sekunder), hvor job får lov til at gyde.

time_outRubin 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.

umaskRubin Type: heltal

en decimalværdi, der skal overføres til umask, før du kører et job.

usernameRubin 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_pathsRubin Type: Array

en række stier, som, hvis nogen ændres, vil få et job til at blive startet.

working_directoryRubin 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 mayreturn truei tillæg til 0.
  • en blok udføres som Rubinkode, der skal returnere enten trueellerfalse. Hvis blokken returnerer true, anvendes guard-egenskaben.Hvis blokken returnerer false, 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



+