resursa launchd

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, și working_directory sunt proprietățile disponibile pentru această resursă.

acțiuni

resursa launchd are următoarele acțiuni:

:createimplicit. Creați o listă de proprietăți launchd.:create_if_missingcreaț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.:disabledezactivați o listă de proprietăți launchd.:enablecreaț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.:nothingacest 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.:restartreporniți un daemon sau un agent gestionat launchd.

Properties

resursa launchd are următoarele proprietăți:

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

backupRuby 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ă.

cookbookTip Rubin: String

numele cărții de bucate în care se află fișierele sursă.

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

labelRuby Type: String

identificatorul unic pentru lucrare.

modeRuby Type: Integer, String | Default Value:'0755'

un șir de caractere 3-5 citat care definește modul octal. Exemplu anterior: '755', '0755'sau 00755.

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

pathRuby 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_hashTip Rubin: Hash

un Hash de perechi de valori cheie utilizate pentru a crea lista de proprietăți launchd.

session_typeRuby Type: String

tipul de plist launchd care urmează să fie creat. Valori posibile: system(implicit) sau user.

sourceRuby Type: String

calea către lista de proprietăți launchd.

typeRuby Type: String

tipul resursei. Valori posibile: daemon(implicit), agent.

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

debugTip Rubin: true, false

Setează masca de jurnal la LOG_DEBUG pentru această lucrare.

disabledRuby Type: true, false | Default Value:false

indică launchctl pentru a nu trimite acest job la launchd.

enable_globbingTip Ruby: adevărat, fals

actualizați argumentele programului înainte de invocare.

enable_transactionsTip Ruby: adevărat, fals

urmăriți tranzacțiile în curs; dacă nu, trimiteți semnalul SIGKILL.

environment_variablesRuby Type: Hash

variabile de mediu suplimentare pentru a seta înainte de a rula un loc de muncă.

exit_timeoutRuby Type: Integer

durata de timp (în secunde) launchd așteaptă înainte de a trimite un semnal SIGKILL.

hard_resource_limitsRuby Type: Hash

un Hash de limite de resurse care trebuie impuse unui loc de muncă.

inetd_compatibilityRuby 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 => falsepentru 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_groupsRuby Type: true, false

specificați dacă initgroups este apelat înainte de a executa o lucrare.

keep_aliveTip 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_eventsRuby 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_onceRuby 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_hostsTip 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_hostsRuby Type: Array

o matrice de gazde la care se aplică acest fișier de configurare.

limit_load_to_session_typeRuby Type: Array, String

tipul de sesiune la care se aplică acest fișier de configurare.

low_priority_ioRuby 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_servicesRuby Type: Hash

specificați serviciile care trebuie înregistrate la subsistemul bootstrap.

niceRuby Type: Integer

valoarea priorității programării programului în intervalul -20 până la 20.

on_demandTip 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_typeRuby tip: String

scopul propus de locuri de muncă: Adaptive, Background, Interactive, sau Standard.

programRuby 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_argumentsTip 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_directoriesRuby Type: Array

o serie de directoare care nu sunt goale, care, dacă sunt modificate, vor provoca pornirea unei lucrări.

root_directoryRuby Type: String

chroot în acest director, apoi executați lucrarea.

run_at_loadRuby Type: true, false

lansați o lucrare o dată (în momentul în care este încărcată).

socketsRuby 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_limitsTip Rubin: Array

un Hash de limite de resurse care trebuie impuse unui loc de muncă.

standard_error_pathRuby Type: String

fișierul la care este trimisă eroarea standard (stderr).

standard_in_pathRuby Type: String

fișierul către care este trimisă intrarea standard (stdin).

standard_out_pathRuby Type: String

fișierul către care este trimisă ieșirea standard (stdout).

start_calendar_intervalRuby 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_intervalTip Rubin: Integer

frecvența (în secunde) la care este pornit un loc de muncă.

start_on_mountRuby Type: true, false

porniți o lucrare de fiecare dată când este montat un sistem de fișiere.

throttle_intervalRuby Type: Integer | Default Value:10

frecvența (în secunde) la care joburile au voie să se reproducă.

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

umaskRuby Type: Integer

o valoare zecimală pentru a trece la umask înainte de a executa o lucrare.

usernameTip Rubin: String

când launchd este rulat ca utilizator rădăcină, utilizatorul pentru a rula lucrarea ca.

wait_for_debuggerRuby 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_pathsRuby Type: Array

o serie de căi care, dacă sunt modificate, vor determina pornirea unei lucrări.

working_directoryRuby 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 mayreturn true în plus față de 0.
  • 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



+