<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
10.2.3. สถานะเกลือและคุณสมบัติอื่นๆ
แม้ว่าการดำเนินการจากระยะไกลจะเป็นหน่วยการสร้างที่สำคัญ แต่ก็เป็นเพียงเศษเสี้ยวของสิ่งที่ SaltStack สามารถทำได้
เมื่อตั้งค่าเครื่องใหม่ คุณมักจะเรียกใช้คำสั่งและการทดสอบจำนวนมากเพื่อกำหนดรายละเอียดของระบบก่อนการติดตั้ง การดำเนินการเหล่านี้สามารถทำให้เป็นทางการได้ในเทมเพลตการกำหนดค่าที่ใช้ซ้ำได้ที่เรียกว่า ไฟล์สถานะ. การดำเนินการที่อธิบายไว้ในไฟล์สถานะสามารถทำได้ด้วย single รัฐสมัคร คำสั่งเกลือ
เพื่อประหยัดเวลา คุณสามารถพึ่งพาไฟล์สถานะพร้อมใช้งานจำนวนมากที่ชุมชนสร้างขึ้นและเผยแพร่ใน "สูตรเกลือ":
➨ https://docs.saltstack.com/en/latest/topics/development/conventions/formulas. html
มีคุณสมบัติอื่น ๆ อีกมากมายที่สามารถรวมกันได้:
• การดำเนินการตามกำหนดเวลาของการดำเนินการ
• กำหนดการกระทำเพื่อตอบสนองต่อเหตุการณ์ที่เกิดจากมินเนี่ยน
• รวบรวมข้อมูลจากมินเนี่ยน
• การจัดลำดับการทำงานของมินเนี่ยนหลายตัว
• การใช้สถานะบน SSH โดยไม่ต้องติดตั้งบริการ Salt-minion
• การจัดเตรียมระบบบนโครงสร้างพื้นฐานคลาวด์และนำอยู่ภายใต้การจัดการ
• และอื่น ๆ
SaltStack นั้นค่อนข้างกว้างใหญ่ และเราไม่สามารถครอบคลุมคุณสมบัติทั้งหมดได้ที่นี่ อันที่จริง มีหนังสือที่อุทิศให้กับ SaltStack ทั้งหมด และเอกสารออนไลน์ก็กว้างขวางเช่นกัน ตรวจสอบว่าคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติของมันหรือไม่:
➨ https://docs.saltstack.com/en/latest/
หากคุณจัดการเครื่องจำนวนมาก คุณควรเรียนรู้เพิ่มเติมเกี่ยวกับ SaltStack เนื่องจากคุณสามารถประหยัดเวลาได้มากเมื่อปรับใช้เครื่องใหม่ และคุณจะสามารถรักษาการกำหนดค่าที่สอดคล้องกันทั่วทั้งเครือข่ายของคุณ
เพื่อให้คุณได้ลิ้มรสว่าการทำงานกับไฟล์สถานะเป็นอย่างไร เราจะครอบคลุมตัวอย่างง่ายๆ: วิธีเปิดใช้งานที่เก็บ APT และติดตั้งแพ็คเกจที่คุณสร้างในหัวข้อ 10.3.3 “การสร้างที่เก็บแพ็คเกจสำหรับ APT” [หน้า 269] และส่วนที่ 10.3.2 “การสร้างแพ็คเกจการกำหนดค่า” [หน้า 263] คุณจะต้องลงทะเบียนคีย์ SSH ในบัญชีของรูทเพื่อให้คุณสามารถเข้าสู่ระบบจากระยะไกลได้ในกรณีที่เกิดปัญหา
โดยค่าเริ่มต้น ไฟล์สถานะจะถูกเก็บไว้ใน /srv/เกลือ บนเจ้านาย; เป็นไฟล์ที่มีโครงสร้าง YAML ที่มี a .sls ส่วนขยาย. เช่นเดียวกับการรันคำสั่ง การใช้สถานะขึ้นอยู่กับโมดูลสถานะจำนวนมาก:
➨ https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html
➨ https://docs.saltstack.com/en/latest/ref/states/all/
ของคุณ /srv/salt/offsec.sls file จะเรียกสามโมดูลเหล่านั้น:
offsec_repository: pkgrepo. จัดการ:
- ชื่อ: deb http://pkgrepo.offsec.com offsec-internal main
- ไฟล์: /etc/apt/sources.list.d/offsec.list
- key_url: เกลือ://offsec-apt-key.asc
- need_in:
- pkg: ค่าเริ่มต้น offsec
ค่าเริ่มต้นของ offsec: pkg.installed
ssh_key_for_root: ssh_auth.ปัจจุบัน:
- ผู้ใช้: root
- ชื่อ: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali
offsec_repository: pkgrepo. จัดการ:
- ชื่อ: deb http://pkgrepo.offsec.com offsec-internal main
- ไฟล์: /etc/apt/sources.list.d/offsec.list
- key_url: เกลือ://offsec-apt-key.asc
- need_in:
- pkg: ค่าเริ่มต้น offsec
ค่าเริ่มต้นของ offsec: pkg.installed
ssh_key_for_root: ssh_auth.ปัจจุบัน:
- ผู้ใช้: root
- ชื่อ: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali
พื้นที่ offsec_repository รัฐพึ่งพา พีเคเกรโป โมดูลสถานะ ตัวอย่างใช้ การจัดการ
ทำงานในโมดูลสถานะนั้นเพื่อลงทะเบียนที่เก็บแพ็คเกจ กับ คีย์_url คุณลักษณะ คุณ
ให้เกลือรู้ว่าคีย์ GPG (หุ้มเกราะ ASCII) ที่จำเป็นในการตรวจสอบลายเซ็นของที่เก็บสามารถดึงมาจาก /srv/salt/offsec-apt-key.asc บนต้นแบบเกลือ NS ต้องการ_in คุณลักษณะช่วยให้มั่นใจได้ว่าสถานะนี้ได้รับการประมวลผลก่อน offsec-ค่าเริ่มต้นเนื่องจากตัวหลังต้องการที่เก็บที่กำหนดค่าไว้อย่างถูกต้องจึงจะสามารถติดตั้งแพ็คเกจได้
พื้นที่ offsec-ค่าเริ่มต้น state ติดตั้งแพ็คเกจที่มีชื่อเดียวกัน นี่แสดงว่าชื่อของคีย์มักจะเป็นค่าที่สำคัญสำหรับรัฐ แม้ว่าจะสามารถแทนที่ด้วย a . ได้เสมอ ชื่อ แอตทริบิวต์ (ตามที่ได้ทำสำหรับรัฐเดิม) สำหรับกรณีง่าย ๆ เช่นนี้ สิ่งนี้สามารถอ่านได้และกระชับ
สถานะสุดท้าย (ssh_key_for_root) เพิ่มคีย์ SSH ที่ระบุใน ชื่อ คุณลักษณะของ /root/.ssh/ Author_keys (ผู้ใช้เป้าหมายถูกตั้งค่าใน ผู้ใช้งาน คุณลักษณะ). โปรดทราบว่าเราได้ย่อคีย์เพื่อให้อ่านง่ายที่นี่ แต่คุณควรใส่คีย์แบบเต็มในแอตทริบิวต์ชื่อ
ไฟล์สถานะนี้สามารถนำไปใช้กับมินเนี่ยนที่กำหนดต่อไปได้:
เซิร์ฟเวอร์# เกลือ kali-scratch state.apply offsec
กาลี-รอยขีดข่วน:
----------
ID: offsec_repository ฟังก์ชัน: pkgrepo.managed
ชื่อ: deb http://pkgrepo.offsec.com offsec-internal main ผลลัพธ์: True
ความคิดเห็น: แพ็คเกจ repo ที่กำหนดค่า 'deb http://pkgrepo.offsec.com offsec-internal
➥ หลัก'
เริ่มเวลา: 06:00:15.767794
Duration: 4707.35 ms การเปลี่ยนแปลง:
----------
ซื้อคืน:
deb http://pkgrepo.offsec.com offsec-internal หลัก
----------
ID: offsec-defaults ฟังก์ชัน: pkg.installed
ผลลัพธ์: จริง
ความคิดเห็น: แพ็คเกจต่อไปนี้ได้รับการติดตั้ง/อัปเดต: offsec-defaults เริ่มการทำงาน: 06:00:21.325184
Duration: 19246.041 ms การเปลี่ยนแปลง:
----------
offsec-ค่าเริ่มต้น:
----------
ใหม่:
1.0
เก่า:
----------
ID: ssh_key_for_root ฟังก์ชัน: ssh_auth.present
เซิร์ฟเวอร์# เกลือ kali-scratch state.apply offsec
กาลี-รอยขีดข่วน:
----------
ID: offsec_repository ฟังก์ชัน: pkgrepo.managed
ชื่อ: deb http://pkgrepo.offsec.com offsec-internal main ผลลัพธ์: True
ความคิดเห็น: แพ็คเกจ repo ที่กำหนดค่า 'deb http://pkgrepo.offsec.com offsec-internal
➥ หลัก'
เริ่มเวลา: 06:00:15.767794
Duration: 4707.35 ms การเปลี่ยนแปลง:
----------
ซื้อคืน:
deb http://pkgrepo.offsec.com offsec-internal หลัก
----------
ID: offsec-defaults ฟังก์ชัน: pkg.installed
ผลลัพธ์: จริง
ความคิดเห็น: แพ็คเกจต่อไปนี้ได้รับการติดตั้ง/อัปเดต: offsec-defaults เริ่มการทำงาน: 06:00:21.325184
Duration: 19246.041 ms การเปลี่ยนแปลง:
----------
offsec-ค่าเริ่มต้น:
----------
ใหม่:
1.0
เก่า:
----------
ID: ssh_key_for_root ฟังก์ชัน: ssh_auth.present
ชื่อ: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali ผลลัพธ์: จริง
ความคิดเห็น: เพิ่มโฮสต์คีย์ที่ได้รับอนุญาต AAAAB3NzaC1yc2...89C4N สำหรับรูทผู้ใช้แล้ว เริ่มต้น: 06:00:40.582539
Duration: 62.103 ms การเปลี่ยนแปลง:
---------- AAAAB3NzaC1yc2...89C4N:
ใหม่
สรุปกาลีเกา
------------
สำเร็จ: 3 (เปลี่ยนแปลง=3)
ล้มเหลว: 0
------------
สถานะทั้งหมดทำงาน: 3
เวลาทำงานทั้งหมด: 24.015 s
ชื่อ: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali ผลลัพธ์: จริง
ความคิดเห็น: เพิ่มโฮสต์คีย์ที่ได้รับอนุญาต AAAAB3NzaC1yc2...89C4N สำหรับรูทผู้ใช้แล้ว เริ่มต้น: 06:00:40.582539
Duration: 62.103 ms การเปลี่ยนแปลง:
---------- AAAAB3NzaC1yc2...89C4N:
ใหม่
สรุปกาลีเกา
------------
สำเร็จ: 3 (เปลี่ยนแปลง=3)
ล้มเหลว: 0
------------
สถานะทั้งหมดทำงาน: 3
เวลาทำงานทั้งหมด: 24.015 s
นอกจากนี้ยังสามารถเชื่อมโยงกับมินเนี่ยนอย่างถาวรโดยบันทึกลงใน /srv/salt/top.sls
ไฟล์ซึ่งใช้โดย รัฐ.ไฮสเตท คำสั่งเพื่อใช้สถานะที่เกี่ยวข้องทั้งหมดในครั้งเดียว:
เซิร์ฟเวอร์# แมว /srv/salt/top.sls
ฐาน:
กาลี-รอยขีดข่วน:
- ออฟเซ
เซิร์ฟเวอร์# เกลือกาลีเกา state.highstate
กาลี-รอยขีดข่วน:
----------
ID: offsec_repository ฟังก์ชัน: pkgrepo.managed
ชื่อ: deb http://pkgrepo.offsec.com offsec-internal main ผลลัพธ์: True
ความคิดเห็น: แพ็คเกจ repo 'deb http://pkgrepo.offsec.com offsec-internal main' แล้ว
➥ กำหนดค่าเริ่มต้น: 06:06:20.650053
Duration: 62.805 ms การเปลี่ยนแปลง:
----------
ID: offsec-defaults ฟังก์ชัน: pkg.installed
ผลลัพธ์: จริง
ความคิดเห็น: ติดตั้งแพ็คเกจ offsec-defaults แล้ว เริ่ม: 06:06:21.436193
Duration: 385.092 ms การเปลี่ยนแปลง:
----------
รหัส: ssh_key_for_root
เซิร์ฟเวอร์# แมว /srv/salt/top.sls
ฐาน:
กาลี-รอยขีดข่วน:
- ออฟเซ
เซิร์ฟเวอร์# เกลือกาลีเกา state.highstate
กาลี-รอยขีดข่วน:
----------
ID: offsec_repository ฟังก์ชัน: pkgrepo.managed
ชื่อ: deb http://pkgrepo.offsec.com offsec-internal main ผลลัพธ์: True
ความคิดเห็น: แพ็คเกจ repo 'deb http://pkgrepo.offsec.com offsec-internal main' แล้ว
➥ กำหนดค่าเริ่มต้น: 06:06:20.650053
Duration: 62.805 ms การเปลี่ยนแปลง:
----------
ID: offsec-defaults ฟังก์ชัน: pkg.installed
ผลลัพธ์: จริง
ความคิดเห็น: ติดตั้งแพ็คเกจ offsec-defaults แล้ว เริ่ม: 06:06:21.436193
Duration: 385.092 ms การเปลี่ยนแปลง:
----------
รหัส: ssh_key_for_root
ฟังก์ชัน: ssh_auth.present
ชื่อ: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali ผลลัพธ์: จริง
ความคิดเห็น: รหัสโฮสต์ที่ได้รับอนุญาต AAAAB3NzaC1yc2...89C4N มีอยู่แล้วสำหรับ
➥ ผู้ใช้ราก
เริ่มเวลา: 06:06:21.821811
Duration: 1.936 ms การเปลี่ยนแปลง:
สรุปกาลีเกา
------------
ประสบความสำเร็จ: 3
ล้มเหลว: 0
------------
สถานะทั้งหมดทำงาน: 3
เวลาทำงานทั้งหมด: 449.833 ms
ฟังก์ชัน: ssh_auth.present
ชื่อ: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali ผลลัพธ์: จริง
ความคิดเห็น: รหัสโฮสต์ที่ได้รับอนุญาต AAAAB3NzaC1yc2...89C4N มีอยู่แล้วสำหรับ
➥ ผู้ใช้ราก
เริ่มเวลา: 06:06:21.821811
Duration: 1.936 ms การเปลี่ยนแปลง:
สรุปกาลีเกา
------------
ประสบความสำเร็จ: 3
ล้มเหลว: 0
------------
สถานะทั้งหมดทำงาน: 3
เวลาทำงานทั้งหมด: 449.833 ms