compile మరియు converge దశల్లో Chef ప్రాక్సీ సెట్టింగ్లు
ఒక remote_file చర్య కోసం గ్లోబల్ ప్రాక్సీని మార్చేటప్పుడు రెసిపీ కంపైల్ మరియు రిసోర్స్ అమలును పరిగణించండి.
previous = Chef::Config[:http_proxy]
Chef::Config[:http_proxy] = 'http://proxy.example.net:8080'
remote_file '/var/tmp/package.zip' do
source 'https://downloads.example.net/package.zip'
end
Chef::Config[:http_proxy] = previousఈ సాధారణ రిసోర్స్ ఏదైనా డౌన్లోడ్ చేసే ముందే తాత్కాలిక విలువ మాయమైపోతుంది:
- Compile: ఉన్నత స్థాయి Ruby విలువను సేవ్ చేసి, తాత్కాలిక ప్రాక్సీని సెట్ చేసి,
remote_fileప్రకటించి విలువను పునరుద్ధరిస్తుంది. - Converge: రిసోర్స్ అప్పుడు అందుబాటులో ఉన్న కాన్ఫిగరేషన్తో తన చర్యను నిర్వహిస్తుంది.
తగిన అంతర్గత మినహాయింపులతో కూడిన స్థిరమైన క్లయింట్ ప్రాక్సీ ఈ సమయ సమస్యను నివారిస్తుంది. shell wildcard నియమాలను ఊహించే బదులు ఇన్స్టాల్ చేసిన క్లయింట్ యొక్క డాక్యుమెంట్ చేసిన మినహాయింపు సింటాక్స్ను ఉపయోగించండి. అనుమతించిన పబ్లిక్ మార్గంలో పబ్లిక్ ఆర్టిఫాక్ట్ను స్వతంత్రంగా డౌన్లోడ్ చేయడానికి, Chef క్లయింట్కు కాన్ఫిగర్ చేసిన లేదా నిల్వ చేసిన ప్రాక్సీ ఖాతా లేనప్పుడు HTTP ప్రాక్సీ జాబితా నుండి ఒక ఎంట్రీ స్థిరమైన HTTP ఎండ్పాయింట్ను అందించగలదు. దాని అంతర్గత మినహాయింపులను ఉంచండి; చిరునామాను ఎంచుకోవడం compile మరియు converge దాన్ని ఎప్పుడు ఉపయోగిస్తాయో మార్చదు.
ఒక ఆపరేషన్కు ప్రత్యేక మార్గం అవసరమైతే, దాని కాన్ఫిగరేషన్ మార్పు మరియు అమలును ఒకే పరిధిలో ఉంచండి. తగిన unified-mode ప్రవర్తన కలిగిన కస్టమ్ రిసోర్స్ ఒక ఎంపిక, కానీ Chef::Config గ్లోబల్గానే ఉంటుంది. డౌన్లోడ్ విఫలమైనప్పుడు మరియు ఫైల్ ఇప్పటికే తాజాగా ఉన్నప్పుడు దాన్ని పునరుద్ధరించండి. అప్డేట్ నోటిఫికేషన్ షరతులు లేకుండా నడవదు, మరియు మినహాయింపు తర్వాత తర్వాతి శుభ్రపరిచే రిసోర్స్ ఎప్పటికీ నడవకపోవచ్చు.
lazy source లక్షణం ఆ లక్షణం యొక్క మూల్యాంకనాన్ని ఆలస్యం చేస్తుంది, చుట్టూ ఉన్న Ruby కేటాయింపులను కాదు. డౌన్లోడ్ అదే సమయానికి చెందినప్పుడు compile సమయ రిసోర్స్ అమలు ప్రత్యేకంగా మద్దతు ఉన్న ఎంపిక; ఇది డిపెండెన్సీలు మరియు నోటిఫికేషన్ల సమయాన్ని కూడా మారుస్తుంది. డిక్లరేషన్ క్రమం వేరుచేయడం ఇస్తుందని ఆశించకుండా, HTTP క్లయింట్ తన ప్రాక్సీ సెట్టింగ్ను ఎప్పుడు వినియోగిస్తుందనే దాని ఆధారంగా ఎంచుకోండి.