az Oldal szerkesztése A Chef repository-ban
ez az oldal a Chef Infra kliens forrásból származik code.To javasoljon változást, szerkessze az indítót.RB fájlt, és nyújtson be egy pull kérelmet a Chef Infra kliens repository.
minden Infra erőforrás oldal
használja a launchd erőforrást a rendszerszintű szolgáltatások (démonok) és a felhasználónkénti szolgáltatások (ügynökök) kezelésére a macOS platformon.
új Chef Infra kliens 12.8.
Syntax
a launchd erőforrás számára elérhető összes tulajdonság teljes szintaxisa a következő:
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
ahol:
-
launchdaz erőforrás. -
nameaz erőforrás blokk neve. -
actionmeghatározza, hogy a Chef Infra kliens mely lépéseket fogja megtenni a csomópont kívánt állapotba hozásához. -
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, ésworking_directoryaz erőforrás számára elérhető tulajdonságok.
műveletek
a launchd erőforrás a következő műveletekkel rendelkezik:
:createalapértelmezett. Hozzon létre egy launchd tulajdonságlistát.:create_if_missinghozzon létre egy launchd tulajdonságlistát, ha még nem létezik.:deletelaunchd tulajdonságlista törlése. Ez letölt egy démont vagy ügynököt, ha be van töltve.:disablelaunchd tulajdonságlista letiltása.:enablehozzon létre egy launchd tulajdonságlistát, majd ellenőrizze, hogy engedélyezve van-e. Ha már létezik launchd tulajdonságlista, de nem egyezik, frissíti a tulajdonságlistát, hogy megfeleljen, majd újraindítja a démont vagy az ügynököt.:nothingez az erőforrásblokk csak akkor működik, ha egy másik erőforrás értesíti a műveletet. Az értesítés után ez az erőforrás-blokk azonnal futvagy sorban áll a Chef Infra kliens futtatásának végén.:restartindítsa újra a launchd által kezelt démont vagy ügynököt.
tulajdonságok
a launchd erőforrás a következő tulajdonságokkal rendelkezik:
abandon_process_groupRuby Type: true, false
ha egy feladat meghal, az összes fennmaradó folyamat ugyanazzal a folyamatazonosítóval futhat. Állítsa true értékre az összes fennmaradó folyamat megöléséhez.
backupRuby Type: Integer, false
a /var/chef/backup – ban tárolandó biztonsági mentések száma. Állítsafalse értékre, hogy megakadályozza a biztonsági mentések megőrzését.
cookbookRubin Típus: String
annak a szakácskönyvnek a neve, amelyben a forrásfájlok találhatók.
groupRuby Type:String, Integer
amikor a launchd root felhasználóként fut, a feladat futtatásához szükséges csoport.Ha a username tulajdonság meg van adva,de ez a tulajdonság nem, akkor ez az érték a felhasználó alapértelmezett csoportjára van beállítva.
labelRuby Type: String
a feladat egyedi azonosítója.
modeRuby Type: Integer, String | alapértelmezett érték:'0755'
idézett 3-5 karakterlánc, amely meghatározza az oktális módot. Példa: '755', '0755' vagy 00755.
ownerRubin Típus: Integer, String
olyan karakterlánc vagy azonosító,amely felhasználónév alapján azonosítja a csoport tulajdonosát, beleértve a teljesen minősített felhasználóneveket, például domain\user vagyuser@domain. Ha ez az érték nincs megadva, a meglévő tulajdonosok változatlanok maradnak, az új tulajdonos-hozzárendelések pedig az aktuális felhasználót használják(ha szükséges).
pathRuby Típus: String
a könyvtár elérési útja. Teljesen minősített útvonal használataajánlott, de nem mindig szükséges. Alapértelmezett érték: az erőforrásblokk nameértéke. További információkért lásd a fenti “szintaxis”részt.
plist_hashRubin Típusú: Hash
a launchd tulajdonságlista létrehozásához használt kulcsérték-Párok kivonata.
session_typeRuby Type: String
a létrehozandó launchd plist típusa. Lehetséges értékek: system (alapértelmezett) vagy user.
sourceRuby Type: String
a launchd tulajdonságlista elérési útja.
typeRuby Type: String
az erőforrás típusa. Lehetséges értékek: daemon (alapértelmezett), agent.
abandon_process_groupRuby Type: true, false
ha egy feladat meghal, az összes fennmaradó folyamat ugyanazzal a folyamatazonosítóval futhat. Állítsa true értékre az összes fennmaradó folyamat megöléséhez.
debugRubin Típusú: igaz, hamis
a naplómaszkot LOG_DEBUG értékre állítja ehhez a feladathoz.
disabledRuby Type: true, false | alapértelmezett érték:false
Tippek a launchctl számára, hogy ne küldje el ezt a feladatot a launchd-nek.
enable_globbingRuby Típus: igaz, hamis
frissítse a program argumentumait meghívás előtt.
enable_transactionsRuby Típus: igaz, hamis
nyomon követheti a folyamatban lévő tranzakciókat; ha nincs, akkor küldje el a SIGKILL jelet.
environment_variablesRuby Type: Hash
további környezeti változók beállítása a feladat futtatása előtt.
exit_timeoutRuby Type: Integer
az indítási idő (másodpercben) a SIGKILL jel küldése előtt.
hard_resource_limitsRuby Type: Hash
a hash erőforrás korlátokat kell kiszabni a munkát.
inetd_compatibilityRuby Type: Hash
megadja, hogy egy démon úgy fog-e futni, mintha ainetd – ből indult volna. Állítsa wait => true értékre a szabványos bemeneti, kimeneti, anderror fájlleírók átadásához. Állítsa wait => false értékre a acceptrendszerhívás meghívásához a feladat nevében, majd adja át a szabványos bemeneti,kimeneti és hibafájl-leírókat.
init_groupsRuby Type: true, false
adja meg, hogy a initgroups meghívásra kerül-e egy feladat futtatása előtt.
keep_aliveRubin Típus: true, false, Hash
egy feladat folyamatos futtatása (true), vagy a csomóponton lévő igények és feltételek engedélyezése annak meghatározására, hogy a feladat folyamatosan fut-e (false).
új A Chef Client-ben 12.14
launch_eventsRuby Type: Hash
adja meg a magasabb szintű eseménytípusokat, amelyeket igény szerinti eseményforrásként kell használni.
új A Chef Infra Client 15.1-ben
launch_only_onceRuby Típus: igaz, hamis
adja meg, hogy egy feladat csak egyszer futtatható-e. Állítsa ezt az értéket trueértékre, ha egy feladat nem indítható újra a gép teljes újraindítása nélkül.
limit_load_from_hostsRubin Típus: Array
olyan gazdagépek tömbje,amelyekre ez a konfigurációs fájl nem vonatkozik, azaz “alkalmazza ezt a konfigurációs fájlt minden olyan gazdagépre, amely nincs megadva ebben a tömbben”.
limit_load_to_hostsRuby Type: Array
gazdagépek tömbje, amelyre ez a konfigurációs fájl vonatkozik.
limit_load_to_session_typeRuby Type: Array, String
a munkamenet típusa(I), amelyre ez a konfigurációs fájl vonatkozik.
low_priority_ioRuby Type: true, false
adja meg, hogy a csomóponton lévő kernelnek ezt a démont alacsony prioritásnak kell-e tekintenie a fájlrendszer I/O során.
mach_servicesRuby Type: Hash
adja meg a bootstrap alrendszerben regisztrálandó szolgáltatásokat.
niceRuby Típus: Integer
a Program ütemezési prioritási értéke a -20és 20 közötti tartományban.
on_demandRuby Típus: igaz, hamis
tartsa életben a munkát. Csak a macOS 10.4-es (vagy korábbi) verziójára vonatkozik; az újabb verziókhoz használja a keep_alive értéket.
process_typeRuby Típus: String
a munka rendeltetése: Adaptive, Background, Interactive, vagy Standard.
programRuby Type: String
a execvp első argumentuma, jellemzően a végrehajtandó fájlhoz társított fájlnév. Ezt az értéket akkor kell megadni, ha aprogram_arguments nincs megadva, és fordítva.
program_argumentsRubin Típus: Tömb
a execvp második argumentuma. Ha program nincs megadva, akkor ezt a tulajdonságot meg kell adni, és úgy kell kezelni, mintha az első argumentum lenne.
queue_directoriesRuby Type: Array
nem üres könyvtárak tömbje, amelyek, ha módosulnak, egy feladat elindításához vezetnek.
root_directoryRuby Típus: String
chroot ebbe a könyvtárba, majd futtassa a feladatot.
run_at_loadRuby Type: true, false
indítson el egy feladatot egyszer (a betöltéskor).
socketsRuby Type: Hash
igény szerinti foglalatok kivonata, amelyek értesítik a launchd-t, amikor egy feladatot futtatni kell.
soft_resource_limitsRubin Típusú: Tömb
a hash erőforrás korlátokat kell kiszabni a munkát.
standard_error_pathRuby Type: String
az a fájl, amelyhez standard hiba (stderr) kerül elküldésre.
standard_in_pathRuby Type: String
az a fájl, amelyre a szabványos bemenetet (stdin) küldi.
standard_out_pathRuby Type: String
az a fájl, amelyre a szabványos kimenetet (stdout) küldi.
start_calendar_intervalRuby Type: Hash
Hash (hasonló a crontab – hez), amely meghatározza a naptár gyakoriságát, amikor egy feladat elindul. Például:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" } fog futni a munkát 8: 00 PM minden nap, hétfőtől péntekig, everymonth az év.
start_intervalRubin Típusú: Integer
az a gyakoriság (másodpercben), amelyen egy feladat elindul.
start_on_mountRuby Type: true, false
indítsa el a munkát minden fájlrendszer csatlakoztatásakor.
throttle_intervalRuby Type: Integer | Default Value:10
az a gyakoriság (másodpercben), amelyen a feladatok spawnolhatnak.
time_outRuby Type: Integer
az az időtartam (másodpercben), ameddig egy feladat tétlen lehet A timesout előtt. Ha nincs megadva érték, a rendszer a launchdwill alapértelmezett időtúllépési értékét fogja használni.
umaskRuby Type: Integer
egy decimális érték, amelyet át kell adni umask – nak egy feladat futtatása előtt.
usernameRubin Típusú: String
amikor a launchd root felhasználóként fut, akkor a felhasználó futtatja a feladatot.
wait_for_debuggerRuby Type: true, false
adja meg, hogy a launchd-nek van-e feladata, várja meg a hibakereső csatolását a kód végrehajtása előtt.
watch_pathsRuby Type: Array
olyan elérési utak tömbje, amelyek, ha módosulnak, egy feladat elindítását eredményezik.
working_directoryRuby Type: String
chdir ehhez a könyvtárhoz, majd futtassa a feladatot.
közös erőforrás-funkciók
a Chef-erőforrások közös tulajdonságokat, értesítéseket és erőforrásvédőket tartalmaznak.
közös tulajdonságok
a következő tulajdonságok közösek minden erőforrásnál:
compile_time
Ruby Típus: igaz, hamis / alapértelmezett érték: false
szabályozza azt a fázist, amely alatt az erőforrás fut a csomóponton. Állítsa true értékre, hogy futtassa az erőforrásgyűjtemény felépítése közben (a compile phase). Állítsa a false értéket a futtatáshoz, amíg a Chef Infra kliens konfigurálja a csomópontot (a converge phase).
ignore_failure
Ruby Típus: igaz, hamis,: csendes / alapértelmezett érték: false
folytassa a recept futtatását, ha egy erőforrás bármilyen okból meghibásodik. :quiet nem jeleníti meg a teljes verem nyomkövetését, és a recept továbbra is fut, ha egy erőforrás meghibásodik.
retries
Ruby Típus: egész / alapértelmezett érték: 0
a kivételek elkapására és az erőforrás újbóli megpróbálására tett kísérletek száma.
retry_delay
Ruby Típus: egész / alapértelmezett érték: 2
az újrapróbálkozási késleltetés (másodpercben).
sensitive
Ruby Típus: igaz, hamis / alapértelmezett érték: false
győződjön meg arról, hogy a chef InfraClient nem naplózza az érzékeny erőforrás-adatokat.
Értesítések
notifies
Rubin Típus: Szimbólum, ‘ Séf::Erőforrás ‘
egy erőforrás értesíthet egy másik erőforrást, hogy tegyen lépéseket, amikor az állapota megváltozik. Adja meg a 'resource' értéket, a :action értéket, amelyet az erőforrásnak meg kell tennie, majd a :timer értéket az adott művelethez. Egy erőforrás egynél több erőforrást is értesíthet; használjon notifies utasítást az értesítendő erőforrásokhoz.
ha a hivatkozott erőforrás nem létezik, hiba lép fel raised.In ellentétben, subscribes nem fog meghibásodni, ha a sourceresource nem található.
az időzítő meghatározza azt a pontot a Chef Infra kliens futása során, amelyen az anotification fut. A következő időzítők állnak rendelkezésre:
:before
meghatározza, hogy a bejelentett erőforráson végzett műveletet az értesítés helyén lévő erőforrásblokk feldolgozása előtt kell végrehajtani.
:delayed
alapértelmezett. Megadja, hogy egy értesítést sorba kell állítani, majd a Chef Infra kliens futtatásának végén kell végrehajtani.
:immediate,:immediately
meghatározza, hogy az értesítést azonnal le kell futtatni, a perresource értesítést kap.
a notifies szintaxisa:
notifies :action, 'resource', :timer
subscribes
Ruby Típus: szimbólum, ‘ szakács::Erőforrás ‘
egy erőforrás meghallgathat egy másik erőforrást, majd cselekedhet, ha a meghallgatott erőforrás állapota megváltozik. Adja meg a'resource' értéket, a :action értéket, majd a :timer műveletet.
vegye figyelembe, hogy a subscribes nem alkalmazza a megadott műveletet a meghallgatott forrásra – például:
file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend
ebben az esetben a subscribes tulajdonság újratölti a nginx szolgáltatást, amikor a/etc/nginx/ssl/example.crt alatt található tanúsítványfájl frissül. A subscribes nem módosítja magát a tanúsítványfájlt, csupán figyeli a fájl módosítását, és végrehajtja a :reload műveletet az erőforráshoz (ebben a példában nginx), amikor változást észlel.
ha a másik erőforrás nem létezik, az előfizetés nem okoz hibát. Ezt szembeállítjuk a notifies szigorúbb szemantikájával, amelyhibát vet fel, ha a másik erőforrás nem létezik.
az időzítő meghatározza azt a pontot a Chef Infra kliens futása során, amelyen az anotification fut. A következő időzítők állnak rendelkezésre:
:before
meghatározza, hogy a bejelentett erőforráson végzett műveletet az értesítés helyén lévő erőforrásblokk feldolgozása előtt kell végrehajtani.
:delayed
alapértelmezett. Megadja, hogy egy értesítést sorba kell állítani, majd a Chef Infra kliens futtatásának végén kell végrehajtani.
:immediate,:immediately
meghatározza, hogy az értesítést azonnal le kell futtatni, a perresource értesítést kap.
a subscribes szintaxisa:
subscribes :action, 'resource', :timer
Guards
a guard tulajdonság felhasználható egy csomópont állapotának értékelésére a Chef Infra kliens futtatásának végrehajtási szakaszában. Ennek az értékelésnek az eredményei alapján egy őr tulajdonságot használnak arra, hogy megmondják a Chef Infra kliensnek, hogy továbbra is végrehajtson egy erőforrást. A guard tulajdonság vagy string értéket, vagy Ruby blokk értéket fogad el:
- a karakterlánc shell parancsként kerül végrehajtásra. Ha a parancs
0értéket ad vissza, az őr kerül alkalmazásra. Ha a parancs bármilyen más értéket ad vissza, akkora guard tulajdonság nem kerül alkalmazásra. Az apowershell_script karakterláncvédői a Windows PowerShell parancsokat futtatják, a mayreturntruepedig a0mellett. - a blokk Ruby kódként kerül végrehajtásra, amelynek vagy
truevagyfalseértéket kell visszaadnia. Ha a blokktrueértéket ad vissza, a guard tulajdonság kerül alkalmazásra.Ha a blokkfalseértéket ad vissza, a guard tulajdonság nem kerül alkalmazásra.
a guard tulajdonság hasznos annak biztosítására, hogy egy erőforrás idempotens azáltal, hogy lehetővé teszi, hogy az erőforrás tesztelje a kívánt állapotot, amikor végrehajtják, majd ha a kívánt állapot jelen van, a Chef InfraClient számára, hogy ne tegyen semmit.
tulajdonságok
a következő tulajdonságok használhatók egy guard meghatározására, amelyet a Chef Infra kliens futtatásának végrehajtási fázisában értékelnek:
not_if
az erőforrás végrehajtásának megakadályozása, amikor a feltétel trueértéket ad vissza.
only_if
egy erőforrás csak akkor hajtható végre, ha a feltétel true értéket ad vissza.
példák
az alábbi példák különböző megközelítéseket mutatnak be a launchd erőforrás receptekben történő használatához:
hozzon létre egy indító démont egy szakácskönyvfájlból