คำถามติดแท็ก puppet

Puppet เป็นเครื่องมือจัดการการกำหนดค่า (Unix & Windows) พร้อม Domain Specific Language

2
Puppet: วิธีสร้างและจัดการผู้ใช้และกลุ่มยูนิกซ์
เมื่อสัปดาห์ที่แล้วฉันใช้ความพยายามอย่างเต็มที่ในการเรียนรู้หุ่นกระบอก ตอนนี้ฉันต้องทนทุกข์ทรมานจากจิตบัฟเฟอร์ล้นและความมั่นใจเล็กน้อยที่เคยสามารถทำให้สัตว์ร้ายเชื่องได้ ฉันเจอตัวอย่างที่มีคำอธิบายประกอบมากมาย แต่เนื่องจากรูปแบบที่นับไม่ถ้วนของพวกเขาฉันไม่สามารถแยกแยะระหว่างรูปแบบและการประชุมหุ่นกระบอกที่แนะนำ (ล่าสุด) และ Ad hoc "เหมาะสำหรับฉัน" ฉันไม่สามารถยืนได้เพราะดูเหมือนจะเป็นเรื่องระดับพื้นฐาน ดังนั้น. การใช้ Puppet เพื่อจัดการกลุ่มและผู้ใช้กลุ่มหลักของผู้ใช้เท่ากับชื่อผู้ใช้ของตนเองกลุ่มอื่น ๆ อาจใช้lanสำหรับการเข้าสู่ระบบ LAN wheelสำหรับผู้ดูแลระบบshellสำหรับผู้ใช้ที่มีเชลล์บนโหนดโดยพลการmailสำหรับผู้ใช้daemonsสำหรับ daemons ต่างๆ การเข้าสู่ระบบของผู้ดูแลระบบจะอยู่บนโหนดทั้งหมดและเพื่อทำให้สิ่งต่าง ๆ แย่ลงการเข้าสู่ระบบ LAN อาจเป็นการเข้าสู่ระบบเชลล์ด้วย จากสิ่งที่ฉันเข้าใจมันก็ไม่เป็นไรที่จะกำหนดผู้ใช้หลาย ๆ ครั้งถ้าคุณใช้คำจำกัดความเสมือนที่ตระหนักในบางจุด ฟังดูดีดังนั้นวิธีการทำงานกับหลายกลุ่มสำหรับผู้ใช้ สมมติว่า Bob สามารถใช้ทั้ง LAN nodes และ node beastie.wan การเข้าสู่ระบบของเขาthebobถูกกำหนดสองครั้งใน lanusers.pp กับgroups => ["lan"]และใน shellusers.pp ด้วยgroups => ["shell"]หรือไม่ ถ้าบ๊อบต้องการให้รหัสผ่าน lan ของเขาแยกจากรหัสผ่านเชลล์ของเขาล่ะ รหัสที่ฉันใช้อยู่ในขณะนี้ไม่มีคำจำกัดความเสมือนผู้ใช้เป็นเพียงการรวมรหัสเดียวอย่างหนัก …
12 puppet  users  groups 

4
วิธีการตั้งค่าเส้นทางเมื่อใช้โมดูลหุ่นเชิดเดียว?
ฉันพยายามเรียกใช้โมดูลเดียวเช่นนี้ puppet apply --verbose --modulepath=moduleshere --noop -e 'include myclass' อย่างไรก็ตามฉันได้รับข้อผิดพลาดชนิดนี้แสดงว่าไม่ได้ตั้งค่าพา ธ Parameter unless failed: '[ -e "${logfile}" ]' is not qualified and no path was specified. Please qualify the command or specify a path. ฉันไม่ต้องการระบุเส้นทางอย่างชัดเจนในทุกตำแหน่งดังกล่าวและทำงานได้ดีเมื่อทำงานเป็นส่วนหนึ่งของการเรียกใช้หุ่นกระบอกแบบเต็ม ฉันจะระบุพา ธ เมื่อใช้งานโมดูลเดียวได้อย่างไร
12 puppet 

4
การใช้ Puppet เพื่อลบคีย์ SSH ที่ไม่ได้รับอนุญาตอย่างชัดเจน
ฉันใช้หุ่นกระบอกเพื่อแจกจ่ายกุญแจ SSH เช่น: ssh_authorized_key { "alice@foo.com": ensure => present, key => 'xxxx', type => 'ssh-rsa', user => 'deploy', } ไฟล์ ~ / .ssh / authorized_keys ลงท้ายด้วยการผสมผสานของคีย์จากหลายคลาสซึ่งเป็นผลลัพธ์ที่ต้องการ อย่างไรก็ตามหากมีการเพิ่มรหัสลงใน $ HOME / .ssh / authorized_keys ด้วยตนเองหุ่นก็จะปล่อยให้มันอยู่กับที่ มีวิธีลบคีย์ที่ไม่ได้กำหนดไว้อย่างชัดแจ้งในรายการหรือไม่? ฉันมีหุ่นกระบอกรุ่น 2.7.1
12 ssh  puppet 

3
การจัดการข้อมูลรับรองเซิร์ฟเวอร์สำหรับ Linux และ Windows
เราเป็นร้านค้าที่ค่อนข้างเล็ก (เท่าของจำนวน sysadmins) ด้วยการผสมผสานของ RHEL, Solaris, Windows 2003 และ Windows 2008; ประมาณ 200 เซิร์ฟเวอร์ในทุก ๆ สำหรับบัญชีผู้ดูแลระบบของเรา ( rootใน Linux และadmnistratorใน Windows) เรามีรูปแบบรหัสผ่านที่ขึ้นอยู่กับตำแหน่งศูนย์ข้อมูลและคุณสมบัติอื่น ๆ ของเซิร์ฟเวอร์ บน Linux ปฏิบัติในปัจจุบันของเราคือการสร้างร่วมกันบัญชีที่ไม่ใช่สิทธิพิเศษที่เราสามารถที่จะsu rootในระบบที่ใช้ Windows เราสร้างบัญชีเพิ่มเติมด้วยสิทธิ์ผู้ดูแลระบบ บัญชีทั้งสองนี้ใช้รหัสผ่านเดียวกัน สิ่งนี้ได้พิสูจน์แล้วว่าไม่มีประสิทธิภาพมาก เมื่อใครบางคนออกจากร้านค้าของเราเราต้อง: เปลี่ยนรูปแบบรหัสผ่านสำหรับบัญชีผู้ดูแลระบบ สร้างรหัสผ่านผู้ดูแลระบบใหม่สำหรับเซิร์ฟเวอร์แต่ละเครื่องและทุกเซิร์ฟเวอร์ มากับรหัสผ่านบัญชีที่ไม่ใช่ผู้ดูแลระบบใหม่ แตะเซิร์ฟเวอร์ทุกเครื่องและเปลี่ยนรหัสผ่าน ฉันอยากรู้ว่าใครในสภาพแวดล้อมที่คล้ายกันสามารถแนะนำวิธีการจัดการข้อมูลรับรองเหล่านี้ได้อย่างมีสติ ข้อมูลที่เกี่ยวข้องบางอย่าง: แม้ว่าเซิร์ฟเวอร์ของเราส่วนใหญ่เป็นส่วนหนึ่งของโดเมนโฆษณาของเรา แต่ไม่ใช่ทั้งหมด เราจัดการเซิร์ฟเวอร์ Linux ทั้งหมดของเราด้วย Puppet (การตรวจสอบความถูกต้องที่สำคัญคือตัวเลือกที่ฉันคิด เราจัดหา Linux severs ด้วย …

2
เหตุใดฉันจึงควรใช้คลาสที่กำหนดพารามิเตอร์หุ่นเชิด
โดยทั่วไปเมื่อทำงานกับโมดูลหุ่นกระบอกที่ซับซ้อนฉันจะตั้งค่าตัวแปรที่ระดับโหนดหรือภายในชั้นเรียน เช่น, node 'foo.com' { $file_owner = "larry" include bar } class bar { $file_name = "larry.txt" include do_stuff } class do_stuff { file { $file_name: ensure => file, owner => $file_owner, } } คลาส / parametrized มีวิธีการ / เมื่อ / ทำไมช่วยเมื่อสถานการณ์นี้? คุณใช้คลาสที่กำหนดพารามิเตอร์เพื่อจัดโครงสร้างโมดูลหุ่นเชิดของคุณอย่างไร
12 linux  puppet 

3
Ansible, Chef, Puppet หรือ ____: ซึ่งรองรับ Windows ได้ดีที่สุดและมีขนาดเล็กที่สุด
เราทำส่วนใหญ่ (แต่ไม่เฉพาะ) ชนะเซิร์ฟเวอร์ โดยเฉพาะอย่างยิ่งเราสามารถเริ่มระบบปฏิบัติการและทำเพียงเล็กน้อยหรือไม่มีเลยเพื่อให้พร้อมรับคำสั่ง (เรารู้ว่าเราอาจต้องสร้างอิมเมจพื้นฐานด้วยเอเจนต์หรือเซิร์ฟเวอร์ ssh) จำเป็นต้องสามารถติดตั้ง mongodb, แอพที่ใช้ java, iis config, เป็นต้น เครื่องมือใดมีการสนับสนุน / ชุมชน windows ที่แข็งแกร่งที่สุดและ (ถ้ามี) รอยเท้าเริ่มต้นที่เบาที่สุด คำตอบในการปฏิบัติงาน: Powershell DSC นี่ไม่ใช่เรื่องเต็ม (ไม่ได้ทำทุกอย่างที่พ่อครัว / หุ่นเชิด / อื่น ๆ ทำ) แต่มันตอบสนองความต้องการได้มากใช้งานได้ดีและอยู่นอกกรอบในการชนะ 8.1 / 2012-R2 / 10 เรามีความสุขมากกับมัน

2
ทำอย่างไรให้หุ่นหยุดที่ข้อผิดพลาดแรกในรายการ?
คุณจะกำหนดค่าหุ่นกระบอกให้หยุดที่ความล้มเหลวแรกแทนที่จะดำเนินการต่อไปได้อย่างไรและเพิ่งพ่นข้อผิดพลาดในขั้นตอนที่เหลือซึ่งขึ้นอยู่กับความล้มเหลวครั้งแรก
11 puppet 

1
Puppet-reports จะถูกลบออกเมื่อดำเนินการโดย Puppet-dashboard หรือ PuppetDB หรือไม่
Puppet-reports กำลังใช้พื้นที่ดิสก์จำนวนมากใน: /var/lib/puppet/reports /var/lib/mysql สมมติฐานคือมันเก็บรายงานทั้งหมดในฐานข้อมูล MySQL เพราะเส้นทางทั้งสองมีขนาดใกล้เคียงกัน resource_statusesตารางประกอบด้วยแถวที่แต่ละแทนบรรทัดในไฟล์รายงาน สามารถลบรายงานใน / var / lib / puppet / reports ได้อย่างปลอดภัยหลังจาก Puppet-dashboard หรือ PuppetDB ประมวลผลแล้วหรือไม่? แนวปฏิบัติที่ดีที่สุดสำหรับการจัดการรายงานคืออะไร มีวิธีทำให้ Puppet-dashboard ลบ ไฟล์รายงานyamlโดยอัตโนมัติหลังจากประมวลผลหรือไม่?

1
ไดเร็กทอรีและโครงสร้างไฟล์ใดที่จะใช้สำหรับ Puppet
.ppบทเรียนหุ่นฉันได้อ่านเพื่อให้ห่างไกลไม่ได้กล่าวถึงวิธีการจัดโครงสร้างหุ่น ใครบ้างที่สามารถแบ่งปันประสบการณ์บางอย่างของสิ่งที่ทำงานและปรับขนาดได้ดี
11 linux  ubuntu  centos  puppet 

4
แนวทางปฏิบัติที่ดีที่สุดสำหรับการอัปเดต Linux อัตโนมัติ
เรากำลังดำเนินการเพื่อทำการอัปเดตอัตโนมัติสำหรับเซิร์ฟเวอร์ที่ใช้ RHEL / RHEL ของเรา แนวคิดเริ่มต้น:การใช้ Puppet เราจะปิดการใช้งานที่เก็บข้อมูลเริ่มต้นและชี้ไปที่ของเราเอง จากนั้นเราใช้ensure => latestสำหรับแพ็คเกจที่เราต้องการอัพเดทโดยอัตโนมัติ ปัญหา:เราเห็นว่าบริการบางอย่างเริ่มต้นใหม่หลังจากการอัปเดต (duh) คำถาม:ไม่มีใครมีคำแนะนำใด ๆ เกี่ยวกับวิธีปรับปรุง Linux อัตโนมัติและกลยุทธ์ในการบรรเทาการรีสตาร์ทบริการโดยอัตโนมัติหรือไม่? เราต้องการโซลูชันที่มีหุ่นเชิด แต่ถ้าเราต้องการใช้บริการอื่นนั่นไม่ใช่ตัวจัดการธุรกิจ แก้ไข วิธีแก้ปัญหาที่เป็นไปได้:ฉันส่งโซลูชันที่ใช้ @ voretaq7 และ @ewwhite ที่แนะนำไว้จำนวนมาก ดูเหมือนว่านี่เป็นเส้นทางที่ฉันจะไปในเวลานี้ หากคุณมีข้อเสนอแนะอื่น ๆ โปรดแสดงความคิดเห็นหรือส่งคำตอบ

11
การอัปเดตระบบสำหรับเซิร์ฟเวอร์จำนวนมาก
เรามีเซิร์ฟเวอร์จำนวนมากและยังต้องการอัปเดตทั้งหมด วิธีที่แท้จริงคือ sysadmins ใด ๆ ไปจากเซิร์ฟเวอร์ไปยังเซิร์ฟเวอร์และสร้างaptitude update && aptitude upgrade- มันยังไม่เจ๋ง ฉันกำลังค้นหาวิธีแก้ปัญหาซึ่งยังดีกว่าและฉลาดมาก หุ่นกระบอกสามารถทำงานนี้ได้หรือไม่? คุณจะทำอย่างไรมันได้หรือไม่?

2
Puppet - รับรายการแพ็คเกจและเวอร์ชั่น
เป็นไปได้ไหมที่จะบอกให้ puppet รวบรวมแคตตาล็อกของโหนด (หรือทั้งหมด) หนึ่งโหนดและบันทึกข้อมูลนั้นไว้ที่อื่น? ฉันสนใจที่จะรับแพ็คเกจที่จำเป็นและรุ่นต่อโหนดโดยเฉพาะ แต่วิธีการทั่วไปในการรับข้อมูลใด ๆ ก็เหมาะสมเช่นกัน

5
วิธีการปรับใช้แอปพลิเคชัน (ใน. tar.gz) ด้วย Puppet
ฉันเป็นผู้เริ่มต้นด้วย Puppet และฉันต้องการทราบว่าฉันกำลังใช้งานแอปพลิเคชันด้วย Puppet อย่างถูกต้องหรือไม่ applciations อยู่ในไฟล์ tar.gz ซึ่งมีไฟล์ที่มีหมายเลขเวอร์ชัน ดังนั้นฉันจะทำสิ่งนี้เพื่อปรับใช้ (ฉันไปบนเซิร์ฟเวอร์และทำการรีสตาร์ทไคลเอ็นต์เพื่อรับ tarball ใหม่): nodes.pp node 'server1.domain.com' inherits basenode { apps { apps: version => 56, apps_name => "apps_tarball.tgz", } init.pp (modules) exec {"apps_wget": command => "/usr/bin/wget http://web_server/${version}-${apps_name} -O /tmp/${container_zip_name}", unless => "test -f /tmp/${version}-${apps_name}", require => [ Package["wget"] ], } …

2
การกำหนดค่า filebucket ใน Puppet
คุณกำหนดค่าและทำงานกับ Puppet filebucket ของคุณอย่างไร ฉันอยากจะ: จัดเก็บข้อมูลที่ฝากข้อมูลไฟล์บนเซิร์ฟเวอร์เดียว สามารถตรวจสอบ / แยก / ตัดพรุนที่เก็บไฟล์เมื่อจำเป็น ตรวจสอบให้แน่ใจว่ามีการถ่ายโอนข้อมูล filebucket อย่างปลอดภัยระหว่างไคลเอนต์ -> หลัก
11 linux  unix  puppet 

4
puppet exec เท่านั้นเมื่อไม่มีไฟล์
ฉันต้องการคำสั่ง exec ต่อไปนี้เมื่อไม่มีไฟล์ (/ usr / local / bin / papply) ไม่แน่ใจว่าจะใส่อะไรดี exec { 'git add url': command =>'git remote add origin https://github.com/testing/puppet.git', require => Exec['git init'], cwd => '/home/vagrant/django', user => 'vagrant', onlyif => "not sure what to put here" }
11 puppet 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.