หุ่น - สิ่งแวดล้อม 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'