bewerk deze pagina in de Chef repository
deze pagina wordt gegenereerd vanuit de Chef Infra Client bron code.To Stel een wijziging voor, bewerk de launchd.RB bestand en stuur een pull request naar de Chef Infra Client repository.
alle Infra-bronnen pagina
gebruik de launchd-bron om systeembrede services (daemons) en per-gebruiker services (agents) op het macOS-platform te beheren.
nieuw in Chef Infra Client 12.8.
syntaxis
de volledige syntaxis voor alle eigenschappen die beschikbaar zijn voor de launchd-bron is::
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
waarbij:
-
launchd
is de bron. -
name
is de naam die aan het bronblok wordt gegeven. -
action
geeft aan welke stappen Chef Infra Client zal nemen om het knooppunt in de gewenste staat te brengen. -
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
, enworking_directory
zijn de eigenschappen die beschikbaar zijn voor deze bron.
acties
de launchd-bron heeft de volgende acties:
:create
standaard. Maak een launchd property lijst.:create_if_missing
Maak een launchd-eigenschappenlijst aan, als deze nog niet bestaat.:delete
Verwijder een launchd-eigenschappenlijst. Dit zal een Daemon of agent uitladen, indien geladen.:disable
schakel een launchd-eigenschappenlijst uit.:enable
Maak een launchd-eigenschappenlijst aan en zorg ervoor dat deze is ingeschakeld. Als een launchd-eigenschappenlijst al bestaat, maar niet overeenkomt, werkt u de eigenschappenlijst bij en start u de daemon of agent opnieuw op.:nothing
dit bronblok handelt niet tenzij een andere bron op de hoogte is gesteld van actie. Eenmaal aangemeld, dit resource blok ofwel loopt onmiddellijk of is in de wachtrij om te draaien aan het einde van een Chef Infra Client run.:restart
Herstart een door launchd beheerde daemon of agent.
eigenschappen
de launchd-bron heeft de volgende eigenschappen:
abandon_process_group
Ruby Type: true, false
als een taak afvalt, blijven alle resterende processen met hetzelfde proces-ID mogelijk draaien. Inschakelen om alle resterende processen te stoppen.
backup
Ruby Type: Integer, false
het aantal back-ups dat bewaard moet worden in /var/chef/backup
. Ingesteld opfalse
om te voorkomen dat back-ups worden bewaard.
cookbook
Robijntype: String
de naam van het kookboek waarin de bronbestanden zich bevinden.
group
Ruby Type: String, Integer
wanneer launchd wordt uitgevoerd als de root gebruiker, de groep om de taak als uit te voeren.Als de eigenschap username
is opgegeven en deze eigenschap niet,wordt deze waarde ingesteld op de standaardgroep voor de gebruiker.
label
Ruby Type: String
de unieke identifier voor de taak.
mode
Ruby Type: Integer, String / Default Value:'0755'
een geciteerde tekenreeks van 3-5 tekens die de octale modus definieert. Voorbeeld: '755'
, '0755'
, of 00755
.
owner
Robijntype: Integer, String
een string of ID die de groepseigenaar identificeert op gebruikersnaam, inclusief volledig gekwalificeerde Gebruikersnamen zoals domain\user
ofuser@domain
. Als deze waarde niet is opgegeven, blijven bestaande eigenaars ongewijzigd en gebruiken nieuwe eigenaar toewijzingen de huidige gebruiker(indien nodig).
path
Ruby Type: String
het pad naar de map. Het gebruik van een volledig gekwalificeerd pad wordt aanbevolen, maar is niet altijd vereist. Standaardwaarde: name
van het bronblok. Zie de sectie “syntaxis” hierboven voor meer informatie.
plist_hash
Ruby-Type: Hash
een Hash van sleutelwaardeparen die gebruikt worden om de eigenschappenlijst van launchd aan te maken.
session_type
Ruby Type: String
het type launchd plist dat moet worden aangemaakt. Mogelijke waarden: system
(standaard) of user
.
source
Ruby Type: String
het pad naar de launchd-eigenschappenlijst.
type
Ruby Type: String
het type bron. Mogelijke waarden: daemon
(standaard), agent
.
abandon_process_group
Ruby Type: true, false
als een taak afsterft, kunnen alle resterende processen met hetzelfde proces-ID blijven draaien. Inschakelen om alle resterende processen te stoppen.
debug
Ruby-Type: waar, onwaar
stelt het logmasker in op LOG_DEBUG
voor deze taak.
disabled
Ruby Type: true, false / Default Value:false
Hints to launchctl
to not submit this job to launchd.
enable_globbing
Ruby Type: true, false
Programmaargumenten bijwerken voor aanroep.
enable_transactions
Ruby Type: true, false
Track in-progress transactions; if none, send the SIGKILL
signal.
environment_variables
Ruby Type: Hash
extra in te stellen omgevingsvariabelen voordat een taak wordt uitgevoerd.
exit_timeout
Ruby Type: Integer
de hoeveelheid tijd (in seconden) die launchd wacht voordat een SIGKILL
signaal wordt verzonden.
hard_resource_limits
Ruby Type: Hash
een Hash van bronlimieten die aan een taak moeten worden opgelegd.
inetd_compatibility
Ruby Type: Hash
geeft aan of een daemon verwacht te worden uitgevoerd alsof het werd gestart vanafinetd
. Ingesteld op wait => true
om standaardinvoer, uitvoer, anderror-bestandsdescriptoren door te geven. Stel in op wait => false
om de accept
systeemaanroep namens de taak aan te roepen en geef dan de standaard invoer -, uitvoer-en foutbeschrijvers door.
init_groups
Ruby Type: true, false
Geef op of initgroups
wordt aangeroepen voordat een taak wordt uitgevoerd.
keep_alive
Robijntype: true, false, Hash
laat een taak continu draaien (true) of laat vraag en voorwaarden op het knooppunt bepalen of de taak blijft draaien (false
).
nieuw in Chef-Client 12.14
launch_events
Ruby-Type: Hash
specificeer gebeurtenistypen op hoger niveau die moeten worden gebruikt als gebeurtenisbronnen op launch-on-demand.
nieuw in Chef Infra Client 15.1
launch_only_once
Ruby Type: true, false
geef aan of een taak slechts één keer kan worden uitgevoerd. Stel deze waarde in op true
als een taak niet herstart kan worden zonder een volledige machine-herstart.
limit_load_from_hosts
Ruby-Type: Array
een array van hosts waarop dit configuratiebestand niet van toepassing is,d.w.z. “pas dit configuratiebestand toe op alle hosts die niet zijn gespecificeerd in deze array”.
limit_load_to_hosts
Ruby Type: Array
een array van hosts waarop dit configuratiebestand van toepassing is.
limit_load_to_session_type
Ruby Type: Array, String
het sessietype(en) waarop dit configuratiebestand van toepassing is.
low_priority_io
Ruby Type: true, false
specificeer of de kernel op het knooppunt deze daemon als een lage prioriteit moet beschouwen tijdens bestandssysteem I / O.
mach_services
Ruby Type: Hash
Specificeer services die moeten worden geregistreerd bij het bootstrap subsysteem.
nice
Ruby Type: Integer
de programmaprioriteit in het bereik -20
tot 20
.
on_demand
Ruby Type: true, false
een taak in leven houden. Alleen van toepassing op macOS versie 10.4 (en eerder); gebruik keep_alive
in plaats daarvan voor nieuwere versies.
process_type
Ruby Type: String
het beoogde doel van de taak: Adaptive
, Background
, Interactive
, of Standard
.
program
Ruby Type: String
het eerste argument van execvp
, typisch de bestandsnaam geassocieerd met het uit te voeren bestand. Deze waarde moet worden gespecificeerd alsprogram_arguments
niet is gespecificeerd, en omgekeerd.
program_arguments
Robijntype: Array
het tweede argument van execvp
. Als program
niet gespecificeerd is, moet dit argument opgegeven worden en zal het behandeld worden alsof het het eerste argument is.
queue_directories
Ruby Type: Array
een array van niet-lege mappen die, indien ze worden gewijzigd, ervoor zorgen dat een taak wordt gestart.
root_directory
Ruby Type: String
chroot
naar deze map, en voer de taak uit.
run_at_load
Ruby Type: true, false
Start een taak eenmaal (bij het laden).
sockets
Ruby Type: Hash
een Hash van on-demand sockets die launchd aangeven wanneer een taak moet worden uitgevoerd.
soft_resource_limits
Robijntype: Array
een Hash van bronlimieten die aan een taak moeten worden opgelegd.
standard_error_path
Ruby Type: String
het bestand waarnaar standaardfout (stderr
) wordt verzonden.
standard_in_path
Ruby Type: String
het bestand waarnaar standaardinvoer (stdin
) wordt verzonden.
standard_out_path
Ruby Type: String
het bestand waarnaar standaarduitvoer (stdout
) wordt verzonden.
start_calendar_interval
Ruby Type: Hash
een Hash (vergelijkbaar met crontab
) die de kalenderfrequentie definieert waarop een taak wordt gestart. Bijvoorbeeld:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }
zal elke dag om 20:00 uur werken, van maandag tot en met vrijdag, elke maand van het jaar.
start_interval
Ruby-Type: Integer
de frequentie (in seconden) waarmee een taak wordt gestart.
start_on_mount
Ruby Type: true, false
Start een taak elke keer dat een bestandssysteem wordt aangekoppeld.
throttle_interval
Robijntype: geheel getal / standaardwaarde:10
de frequentie (in seconden) waarmee taken mogen worden voortgebracht.
time_out
Ruby Type: Integer
de hoeveelheid tijd (in seconden) die een taak inactief kan zijn voordat de time-out plaatsvindt. Als er geen waarde is opgegeven, zal de standaard timeoutwaarde voor launchd worden gebruikt.
umask
Ruby Type: Integer
een decimale waarde die moet worden doorgegeven aan umask
voordat een taak wordt uitgevoerd.
username
Robijntype: String
wanneer launchd wordt uitgevoerd als de root gebruiker, de gebruiker om de taak als uit te voeren.
wait_for_debugger
Ruby Type: true, false
Geef op of launchd een taak heeft die wacht op een debugger voordat de code wordt uitgevoerd.
watch_paths
Ruby Type: Array
een array van paden die, indien gewijzigd, ervoor zorgen dat een taak wordt gestart.
working_directory
Ruby Type: String
chdir
naar deze map, en voer de taak uit.
Common Resource Functionality
Chef-resources omvatten common properties, notifications en resource guards.
gemeenschappelijke eigenschappen
de volgende eigenschappen zijn gemeenschappelijk voor elke hulpbron:
compile_time
Ruby Type: true, false / Default waarde: false
Bepaal de fase waarin de bron wordt uitgevoerd op het knooppunt. Inschakelen om uit te voeren terwijl de broncollectie wordt gebouwd (de compile phase
). Ingesteld op false om te draaien terwijl Chef Infra Client het knooppunt configureert (de converge phase
).
ignore_failure
Ruby Type: true, false,: quiet / Default waarde: false
Ga door met het uitvoeren van een Recept als een bron om welke reden dan ook faalt. :quiet
zal niet de volledige stack trace tonen en het recept zal blijven draaien als een resource faalt.
retries
Robijntype: geheel getal / standaardwaarde: 0
het aantal pogingen om uitzonderingen te vangen en de bron opnieuw te proberen.
retry_delay
Robijntype: geheel getal / standaardwaarde: 2
de vertraging van het opnieuw proberen (in seconden).
sensitive
Ruby-Type: waar, onwaar | standaardwaarde: false
zorg ervoor dat gevoelige brongegevens niet worden geregistreerd door Chef InfraClient.
Meldingen
notifies
Ruby Type: Symbool, ” Chef::Bron ”
een bron kan een andere bron ervan in kennis stellen actie te ondernemen wanneer zijn staat verandert. Specificeer een 'resource'
, de :action
die middelen moeten nemen, en vervolgens de :timer
voor die actie. Een bron kan meer dan één bron melden; Gebruik een notifies
statement voor elke bron die moet worden aangemeld.
als de bron waarnaar wordt verwezen niet bestaat, is een fout raised.In contrast, subscribes
zal niet falen als de bronbron niet wordt gevonden.
een timer specificeert het punt tijdens een Chef Infra Client run waarop anotificatie wordt uitgevoerd. De volgende timers zijn beschikbaar:
:before
geeft aan dat de actie met betrekking tot een aangemelde bron moet worden uitgevoerd voordat het bronblok waarin de kennisgeving is geplaatst, wordt verwerkt.
:delayed
standaard. Hiermee geeft u op dat een melding in de wachtrij moet worden geplaatst en vervolgens moet worden uitgevoerd aan het einde van een Chef Infra-Client-run.
:immediate
,:immediately
Hiermee geeft u op dat een melding onmiddellijk moet worden uitgevoerd, per bron aangemeld.
de syntaxis voor notifies
is:
notifies :action, 'resource', :timer
subscribes
robijn Type: symbool, ‘ Chef::Resource ‘
een resource kan naar een andere resource luisteren en vervolgens actie ondernemen als de status van de resource waarnaar wordt geluisterd verandert. Specificeer een'resource'
, de te nemen :action
en vervolgens de te nemen :timer
.
merk op dat subscribes
de gespecificeerde actie niet toepast op de bron waarnaar het luistert – bijvoorbeeld:
file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend
In dit geval laadt de eigenschap subscribes
de dienst nginx
wanneer het certificaatbestand onder/etc/nginx/ssl/example.crt
wordt bijgewerkt. subscribes
maakt geen wijzigingen aan het certificaatbestand zelf, het luistert alleen naar een wijziging in het bestand en voert de actie :reload
uit voor de bron (in dit voorbeeld nginx
) wanneer een wijziging wordt gedetecteerd.
als de andere bron niet bestaat, zal het abonnement geen anerror verhogen. Vergelijk dit met de striktere semantiek van notifies
, die een fout zal veroorzaken als de andere bron niet bestaat.
een timer specificeert het punt tijdens een Chef Infra Client run waarop anotificatie wordt uitgevoerd. De volgende timers zijn beschikbaar:
:before
geeft aan dat de actie met betrekking tot een aangemelde bron moet worden uitgevoerd voordat het bronblok waarin de kennisgeving is geplaatst, wordt verwerkt.
:delayed
standaard. Hiermee geeft u op dat een melding in de wachtrij moet worden geplaatst en vervolgens moet worden uitgevoerd aan het einde van een Chef Infra-Client-run.
:immediate
,:immediately
Hiermee geeft u op dat een melding onmiddellijk moet worden uitgevoerd, per bron aangemeld.
de syntaxis voor subscribes
is:
subscribes :action, 'resource', :timer
Guards
een guard-eigenschap kan worden gebruikt om de toestand van een knooppunt te evalueren tijdens de uitvoeringsfase van een Chef Infra Client-run. Op basis van de resultaten van deze evaluatie, wordt een pand van de bewaker dan gebruikt om Chef Infra cliënt te vertellen of het moet doorgaan met het uitvoeren van een bron. Een eigenschap guard accepteert eithera string waarde of een Ruby block waarde:
- een string wordt uitgevoerd als een shell commando. Als het commando
0
geeft, wordt de guard toegepast. Als het commando een andere waarde retourneert, wordt de eigenschap guard niet toegepast. String guards in apowershell_script draaien Windows PowerShell commando ‘ s en kunnentrue
draaien naast0
. - een blok wordt uitgevoerd als Ruby-code die
true
offalse
moet retourneren. Als het bloktrue
retourneert, wordt de eigenschap guard toegepast.Als het blokfalse
retourneert, wordt de eigenschap guard niet toegepast.
een guard-eigenschap is nuttig om ervoor te zorgen dat een resource idempotent is door die resource toe te staan om te testen op de gewenste toestand zoals deze wordt uitgevoerd, en vervolgens als de gewenste toestand aanwezig is, voor Chef InfraClient om niets te doen.
Properties
de volgende eigenschappen kunnen worden gebruikt om een guard te definiëren die wordt geëvalueerd tijdens de uitvoeringsfase van een Chef Infra Client run:
not_if
voorkom dat een bron wordt uitgevoerd wanneer de voorwaarde true
retourneert.
only_if
laat een bron alleen uitvoeren als de voorwaarde true
retourneert.
voorbeelden
de volgende voorbeelden tonen verschillende benaderingen voor het gebruik van de launchd-hulpbron in recepten:
Maak een Launch-Daemon aan uit een kookboekbestand