หุ่น - สิ่งแวดล้อม Conf

ใน Puppet สภาพแวดล้อมทั้งหมดมีไฟล์ environment.confไฟล์. ไฟล์นี้สามารถแทนที่การตั้งค่าเริ่มต้นได้หลายอย่างเมื่อใดก็ตามที่ต้นแบบให้บริการโหนดใด ๆ หรือโหนดทั้งหมดที่กำหนดให้กับสภาพแวดล้อมนั้น ๆ

สถานที่

ใน Puppet สำหรับสภาพแวดล้อมทั้งหมดที่กำหนดไว้ไฟล์ environment.conf จะอยู่ที่ระดับบนสุดของสภาวะแวดล้อมภายในบ้านถัดจาก manifest และโมดูลกรรมการ พิจารณาตัวอย่างหากสภาพแวดล้อมของคุณอยู่ในไดเร็กทอรีเริ่มต้น(Vipin/testing/environment)จากนั้นไฟล์กำหนดค่าของสภาพแวดล้อมทดสอบจะอยู่ที่ Vipin/testing/environments/test/environment.conf.

ตัวอย่าง

# /etc/testingdir/code/environments/test/environment.conf  
# Puppet Enterprise requires $basemodulepath; see note below under modulepath". 
modulepath = site:dist:modules:$basemodulepath  
# Use our custom script to get a git commit for the current state of the code: 
config_version = get_environment_commit.sh

รูปแบบ

ไฟล์คอนฟิกูเรชันทั้งหมดใน Puppet ใช้รูปแบบเหมือน INI เหมือนกัน environment.confไฟล์เป็นไปตามรูปแบบที่เหมือน INI เช่นเดียวกับที่คนอื่น ๆ ทำเช่นไฟล์หุ่น ความแตกต่างเพียงอย่างเดียวระหว่าง environment.conf และpuppet.confคือไฟล์ environment.conf ไม่สามารถมีส่วน [main] ได้ การตั้งค่าทั้งหมดในไฟล์ environment.conf ต้องอยู่นอกส่วนการกำหนดค่าใด ๆ

เส้นทางสัมพัทธ์ในค่า

การตั้งค่าที่อนุญาตส่วนใหญ่ยอมรับเส้นทางไฟล์หรือรายการพา ธ เป็นค่า หากเส้นทางใด ๆ เป็นเส้นทางที่เกี่ยวข้องเส้นทางจะเริ่มต้นโดยไม่มีเครื่องหมายทับหรืออักษรระบุไดรฟ์ซึ่งส่วนใหญ่จะได้รับการแก้ไขโดยสัมพันธ์กับไดเรกทอรีหลักของสภาพแวดล้อมนั้น

การแก้ไขในค่า

ไฟล์การตั้งค่า Environment.conf สามารถใช้ค่าของการตั้งค่าอื่น ๆ เป็นตัวแปรได้ มีตัวแปรที่มีประโยชน์หลายตัวที่สามารถแทรกเข้าไปในไฟล์ environment.conf นี่คือรายการตัวแปรที่สำคัญบางประการ -

  • $basemodulepath- มีประโยชน์สำหรับการรวมไดเรกทอรีในการตั้งค่าเส้นทางโมดูล โดยปกติผู้ใช้หุ่นองค์กรควรใส่ค่านี้เป็นmodulepath เนื่องจากเครื่องยนต์ Puppet ใช้โมดูลในไฟล์ basemodulepath.

  • $environment- มีประโยชน์เป็นอาร์กิวเมนต์บรรทัดคำสั่งสำหรับสคริปต์ config_version ของคุณ คุณสามารถแก้ไขตัวแปรนี้ได้ในการตั้งค่า config_version เท่านั้น

  • $codedir - มีประโยชน์สำหรับการค้นหาไฟล์

การตั้งค่าที่อนุญาต

โดยค่าเริ่มต้นไฟล์ Puppet environment.conf ได้รับอนุญาตให้ลบล้างการตั้งค่าสี่ค่าในการกำหนดค่าตามที่ระบุไว้เท่านั้น

  • Modulepath
  • Manifest
  • Config_version
  • Environment_timeout

Modulepath

นี่คือหนึ่งในการตั้งค่าหลักในไฟล์ environment.conf กรรมการทั้งหมดที่กำหนดไว้ใน modulepath จะโหลดโดยค่าเริ่มต้นโดย Puppet นี่คือตำแหน่งพา ธ ที่ Puppet โหลดโมดูล จำเป็นต้องตั้งค่านี้อย่างชัดเจน หากไม่ได้ตั้งค่าข้างต้นนี้เส้นทางโมดูลเริ่มต้นของสภาพแวดล้อมใด ๆ ใน Puppet จะเป็น -

<MODULES DIRECTORY FROM ENVIRONMENT>:$basemodulepath

ประจักษ์

สิ่งนี้ใช้เพื่อกำหนดไฟล์ manifest หลักซึ่ง Puppet master จะใช้ในขณะบูตและรวบรวมแค็ตตาล็อกจากไฟล์ Manifest ที่กำหนดไว้ซึ่งจะใช้เพื่อกำหนดค่าสภาพแวดล้อม ในสิ่งนี้เราสามารถกำหนดไฟล์เดียวรายการไฟล์หรือแม้แต่ไดเร็กทอรีที่ประกอบด้วยไฟล์ manifest หลายไฟล์ซึ่งต้องได้รับการประเมินและรวบรวมตามลำดับตัวอักษรที่กำหนดไว้

เราต้องกำหนดการตั้งค่านี้อย่างชัดเจนในไฟล์ environment.conf ถ้าไม่เช่นนั้น Puppet จะใช้ไดเรกทอรีรายการเริ่มต้นของสภาพแวดล้อมเป็นรายการหลัก

Config_version

Config_version สามารถกำหนดเป็นเวอร์ชันที่แน่นอนที่ใช้ในการระบุแค็ตตาล็อกและเหตุการณ์ เมื่อ Puppet รวบรวมไฟล์ Manifest ตามค่าเริ่มต้นมันจะเพิ่มเวอร์ชัน config ให้กับแค็ตตาล็อกที่สร้างขึ้นรวมถึงรายงานที่สร้างขึ้นเมื่อ Puppet master ใช้แค็ตตาล็อกที่กำหนดบนโหนด Puppet Puppet เรียกใช้สคริปต์เพื่อดำเนินการตามขั้นตอนข้างต้นทั้งหมดและใช้เอาต์พุตที่สร้างขึ้นทั้งหมดเป็น Config_version

หมดเวลาของสภาพแวดล้อม

ใช้เพื่อรับรายละเอียดเกี่ยวกับระยะเวลาที่ Puppet ควรใช้ในการโหลดข้อมูลสำหรับสภาพแวดล้อมที่กำหนด หากกำหนดค่าในไฟล์ robot.conf ค่าเหล่านี้จะแทนที่ค่าการหมดเวลาเริ่มต้น

ตัวอย่างไฟล์ environment.conf

[master] 
   manifest =  $confdir/environments/$environment/manifests/site.pp 
   modulepath =  $confdir/environments/$environment/modules

ในรหัสด้านบน $confdir คือพา ธ ของไดเร็กทอรีซึ่งเป็นที่ตั้งของไฟล์คอนฟิกูเรชันสภาพแวดล้อม $environment คือชื่อของสภาพแวดล้อมที่กำลังทำการกำหนดค่า

ไฟล์กำหนดค่าสภาพแวดล้อมพร้อมใช้งานจริง

# The environment configuration file  
# The main manifest directory or file where Puppet starts to evaluate code  
# This is the default value. Works with just a site.pp file or any other  
manifest = manifests/  
# The directories added to the module path, looked in first match first used order:  
# modules - Directory for external modules, populated by r10k based on Puppetfile  
# $basemodulepath - As from: puppet config print basemodulepath  
modulepath = site:modules:$basemodulepath  
# Set the cache timeout for this environment.  
# This overrides what is set directly in puppet.conf for the whole Puppet server  
# environment_timeout = unlimited  
# With caching you need to flush the cache whenever new Puppet code is deployed  
# This can also be done manually running: bin/puppet_flush_environment_cache.sh  
# To disable catalog caching:  
environment_timeout = 0  
# Here we pass to one in the control repo the Puppet environment (and git branch)  
# to get title and essential info of the last git commit
config_version = 'bin/config_script.sh $environment'