หุ่นเชิดเป็นสัตว์ประหลาดนิดหน่อยที่จะมุ่งหน้าไปรอบ ๆ ดังนั้นการเรียนรู้จากตัวอย่างจึงไม่ใช่เรื่องเลวร้าย ในด้านล่างฉันสมมติว่าคุณกำลังใช้โมดูล - โปรดพูดในความคิดเห็นหากคุณไม่ต้องการหรือถ้าคุณต้องการรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการรวมโมดูลเข้าด้วยกัน
mymodule
สมมติว่าคุณเริ่มต้นโมดูลใหม่ที่เรียกว่า ในไดเรกทอรีบ้านหุ่นเชิด (โดยปกติ/etc/puppet
) บนต้นแบบหุ่นเชิดคุณควรสร้างรายการโมดูลและไดเรกทอรีไฟล์:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
จากนั้นสร้างไฟล์ในไดเรกทอรีนั้นชื่อinit.pp
และป้อน:
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
จากนั้นใส่datas.xls
ไฟล์ลงในfiles
ไดเรกทอรีของโมดูล- ในตัวอย่างmodules/mymodule/files/
นี้ (หมายเหตุอาจมีtemplates
ไดเรกทอรีสำหรับเทมเพลตด้วย )
ในmanifests/site.pp
ไฟล์คุณต้องนำเข้าโมดูลและรวมคลาสโดยทำสิ่งที่ชอบ:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
ตรวจสอบให้แน่ใจว่าโหนดทั้งหมดของคุณสืบทอดจากฐานและควรเป็นสิ่งที่คุณต้องทำ ตั้งแต่ puppet 0.25 คุณสามารถใช้นิพจน์ทั่วไปในชื่อโหนดเช่น:
node server[0-9] inherits base {}
แจ้งให้เราทราบในความคิดเห็นหากคุณต้องการคำชี้แจงเพิ่มเติม
การตั้งค่าไคลเอนต์เพื่อพูดคุยกับต้นแบบหุ่นเชิด
ในไคลเอนต์คุณต้องทำ:
sudo apt-get install puppet
แก้ไขแล้ว/etc/default/puppet
และการเปลี่ยนแปลงไปSTART=no
START=yes
แก้ไข/etc/puppet/puppet.conf
และเพิ่มบรรทัดใน[main]
ส่วนเพื่อบอกตำแหน่งที่จะค้นหาต้นแบบหุ่นเชิด:
server=puppet.mydomain.com
sudo puppetd --test
แล้วเราสามารถทำการทดสอบการทำงานกับ หากคุณได้รับข้อผิดพลาดที่สำคัญคุณอาจต้องไปที่เซิร์ฟเวอร์หุ่นเชิดหลักและลงนามรหัสลูกค้า ในการตรวจสอบชื่อที่แน่นอนคุณสามารถทำได้sudo puppetca --list
แล้วsudo puppetca --sign server1.mydomain.com
(หรือชื่อเซิร์ฟเวอร์ใดก็ได้จากคำสั่ง list)
ตอนนี้เริ่มบริการหุ่นเชิดด้วยsudo service puppet start
และคุณควรจะไป บริการหุ่นกระบอกจะทำงานทุกชั่วโมงดังนั้นหากคุณอัปเดตสูตรอาหารหุ่นของคุณลูกค้าของคุณทั้งหมดจะได้รับการอัปเดตด้วย
การลบไฟล์
ฉันบันทึกในคำถามเดิมที่คุณต้องการทราบวิธีการลบไฟล์ คุณจะแก้ไขmanifests/init.pp
เป็น
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
เคล็ดลับที่มีประโยชน์อื่น ๆ
หากคุณกำลังมีปัญหามีบางสิ่งที่คุณสามารถทำได้ ในเครื่องที่ติดตั้งหุ่นกระบอกคุณสามารถตรวจสอบไวยากรณ์ของคุณด้วยการเรียกใช้
puppet --parseonly --ignoreimport myfile.pp
หรือตรวจสอบล็อตทั้งหมดโดยการ--ignoreimport
ตั้งค่าสถานะแม้ว่าอาจนำไปสู่ข้อผิดพลาดตลกที่ไม่พบข้อผิดพลาดจริง ๆ นอกจากนี้คุณยังสามารถเรียกใช้หุ่นเชิดสดบนเครื่องไคลเอ็นต์หุ่นเชิดโดยทำ:
sudo puppetd --test
ซึ่งแสดงผลลัพธ์ที่เป็นประโยชน์ต่าง ๆ พร้อมข้อผิดพลาดและคำเตือนที่เน้นด้วยสีที่ต่างกัน หากคุณต้องการรายละเอียดมากขึ้นคุณสามารถเรียกใช้:
sudo puppetd --test --debug
แต่โดยทั่วไปแล้วจะสร้างเอาต์พุตจำนวนมากจนยากที่จะลุยได้ดังนั้นให้ทำเช่นนั้นหากคุณได้ลองทำตามขั้นตอนก่อนหน้านี้แล้วและค้างอยู่และต้องการดูทุกสิ่งที่ทำ
หมายเหตุสิ่งนี้ขึ้นอยู่กับหุ่นเชิด 0.25.x ซึ่งเป็นสิ่งที่ฉันใช้ในที่ทำงานในปัจจุบันและเป็นเวอร์ชั่นใน Ubuntu 10.04 รหัสหุ่นกระบอกในส่วนหลักจะยังคงใช้งานได้อย่างแน่นอน แต่รุ่นที่ใหม่กว่าของหุ่นกระบอกจะมีค่าสถานะใหม่ที่สามารถช่วยในการดีบักเอาต์พุต