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:
-
launchd
az erőforrás. -
name
az erőforrás blokk neve. -
action
meghatá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_directory
az erőforrás számára elérhető tulajdonságok.
műveletek
a launchd erőforrás a következő műveletekkel rendelkezik:
:create
alapértelmezett. Hozzon létre egy launchd tulajdonságlistát.:create_if_missing
hozzon létre egy launchd tulajdonságlistát, ha még nem létezik.:delete
launchd tulajdonságlista törlése. Ez letölt egy démont vagy ügynököt, ha be van töltve.:disable
launchd tulajdonságlista letiltása.:enable
hozzon 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.:nothing
ez 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.:restart
indí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_group
Ruby 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.
backup
Ruby 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.
cookbook
Rubin Típus: String
annak a szakácskönyvnek a neve, amelyben a forrásfájlok találhatók.
group
Ruby 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.
label
Ruby Type: String
a feladat egyedi azonosítója.
mode
Ruby 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
.
owner
Rubin 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).
path
Ruby 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_hash
Rubin Típusú: Hash
a launchd tulajdonságlista létrehozásához használt kulcsérték-Párok kivonata.
session_type
Ruby Type: String
a létrehozandó launchd plist típusa. Lehetséges értékek: system
(alapértelmezett) vagy user
.
source
Ruby Type: String
a launchd tulajdonságlista elérési útja.
type
Ruby Type: String
az erőforrás típusa. Lehetséges értékek: daemon
(alapértelmezett), agent
.
abandon_process_group
Ruby 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.
debug
Rubin Típusú: igaz, hamis
a naplómaszkot LOG_DEBUG
értékre állítja ehhez a feladathoz.
disabled
Ruby 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_globbing
Ruby Típus: igaz, hamis
frissítse a program argumentumait meghívás előtt.
enable_transactions
Ruby Típus: igaz, hamis
nyomon követheti a folyamatban lévő tranzakciókat; ha nincs, akkor küldje el a SIGKILL
jelet.
environment_variables
Ruby Type: Hash
további környezeti változók beállítása a feladat futtatása előtt.
exit_timeout
Ruby Type: Integer
az indítási idő (másodpercben) a SIGKILL
jel küldése előtt.
hard_resource_limits
Ruby Type: Hash
a hash erőforrás korlátokat kell kiszabni a munkát.
inetd_compatibility
Ruby 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 accept
rendszerhí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_groups
Ruby Type: true, false
adja meg, hogy a initgroups
meghívásra kerül-e egy feladat futtatása előtt.
keep_alive
Rubin 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_events
Ruby 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_once
Ruby 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_hosts
Rubin 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_hosts
Ruby Type: Array
gazdagépek tömbje, amelyre ez a konfigurációs fájl vonatkozik.
limit_load_to_session_type
Ruby Type: Array, String
a munkamenet típusa(I), amelyre ez a konfigurációs fájl vonatkozik.
low_priority_io
Ruby 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_services
Ruby Type: Hash
adja meg a bootstrap alrendszerben regisztrálandó szolgáltatásokat.
nice
Ruby Típus: Integer
a Program ütemezési prioritási értéke a -20
és 20
közötti tartományban.
on_demand
Ruby 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_type
Ruby Típus: String
a munka rendeltetése: Adaptive
, Background
, Interactive
, vagy Standard
.
program
Ruby 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_arguments
Rubin 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_directories
Ruby Type: Array
nem üres könyvtárak tömbje, amelyek, ha módosulnak, egy feladat elindításához vezetnek.
root_directory
Ruby Típus: String
chroot
ebbe a könyvtárba, majd futtassa a feladatot.
run_at_load
Ruby Type: true, false
indítson el egy feladatot egyszer (a betöltéskor).
sockets
Ruby Type: Hash
igény szerinti foglalatok kivonata, amelyek értesítik a launchd-t, amikor egy feladatot futtatni kell.
soft_resource_limits
Rubin Típusú: Tömb
a hash erőforrás korlátokat kell kiszabni a munkát.
standard_error_path
Ruby Type: String
az a fájl, amelyhez standard hiba (stderr
) kerül elküldésre.
standard_in_path
Ruby Type: String
az a fájl, amelyre a szabványos bemenetet (stdin
) küldi.
standard_out_path
Ruby Type: String
az a fájl, amelyre a szabványos kimenetet (stdout
) küldi.
start_calendar_interval
Ruby 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_interval
Rubin Típusú: Integer
az a gyakoriság (másodpercben), amelyen egy feladat elindul.
start_on_mount
Ruby Type: true, false
indítsa el a munkát minden fájlrendszer csatlakoztatásakor.
throttle_interval
Ruby Type: Integer | Default Value:10
az a gyakoriság (másodpercben), amelyen a feladatok spawnolhatnak.
time_out
Ruby 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.
umask
Ruby Type: Integer
egy decimális érték, amelyet át kell adni umask
– nak egy feladat futtatása előtt.
username
Rubin Típusú: String
amikor a launchd root felhasználóként fut, akkor a felhasználó futtatja a feladatot.
wait_for_debugger
Ruby 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_paths
Ruby Type: Array
olyan elérési utak tömbje, amelyek, ha módosulnak, egy feladat elindítását eredményezik.
working_directory
Ruby 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 mayreturntrue
pedig a0
mellett. - a blokk Ruby kódként kerül végrehajtásra, amelynek vagy
true
vagyfalse
é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