SaltStack - เกลือผ่าน SSH

Salt ดำเนินการคำสั่งในระบบระยะไกลโดยใช้ salt-minion. นี่คือพฤติกรรมปกติ ในบางสถานการณ์ระบบรีโมตสามารถเข้าถึงได้โดยโปรโตคอล SSH เท่านั้น สำหรับสถานการณ์เหล่านี้ Salt มีตัวเลือกในการเชื่อมต่อระบบระยะไกลโดยใช้โปรโตคอล SSH เท่านั้นและดำเนินการคำสั่งผ่านเลเยอร์ SSH

Salt SSHง่ายมากในการกำหนดค่า การกำหนดค่าที่จำเป็นเพียงอย่างเดียวคือการระบุรายละเอียดระบบระยะไกลในไฟล์พิเศษที่เรียกว่าRoster file. โดยปกติไฟล์บัญชีรายชื่อนี้จะอยู่ใน/etc/salt/roster. ไฟล์บัญชีรายชื่อจะมีข้อมูลทั้งหมดเกี่ยวกับระบบระยะไกลและเราจะเชื่อมต่อกับมันได้อย่างไร เมื่อกำหนดค่าไฟล์บัญชีรายชื่อแล้วคำสั่ง Salt ทั้งหมดจะดำเนินการโดยใช้ไฟล์salt-ssh แทนคำสั่งเกลือ

ไฟล์บัญชีรายชื่อ

ระบบบัญชีรายชื่อออกแบบมาเฉพาะสำหรับ Salt SSH สิ่งนี้ได้รับการออกแบบให้เป็นระบบที่เสียบปลั๊กได้ จุดประสงค์เดียวของระบบบัญชีรายชื่อคือการรวบรวมข้อมูลเกี่ยวกับระบบระยะไกล ไฟล์บัญชีรายชื่อคือไฟล์YAML based configuration file มีข้อมูลระบบระยะไกลเป็น targets. เป้าหมายเหล่านี้เป็นโครงสร้างข้อมูลพิเศษที่มีชุดแอตทริบิวต์ที่กำหนดไว้ล่วงหน้า ไฟล์บัญชีรายชื่อมีเป้าหมายตั้งแต่หนึ่งรายการขึ้นไปและแต่ละเป้าหมายจะถูกระบุโดยไฟล์Salt ID.

โครงสร้างพื้นฐานของไฟล์บัญชีรายชื่อมีดังนี้ -

<Salt ID>:
   host: <host name>
   user: <user name>
   passwd: <password of the user>

แอตทริบิวต์อื่น ๆ ทั้งหมดที่สนับสนุนโดยไฟล์บัญชีรายชื่อเป็นทางเลือก มีดังนี้ -

  • port - หมายเลขพอร์ต SSH

  • sudo - ไม่ว่าจะเรียกใช้คำสั่งผ่าน sudo

  • sudo_user - ชื่อผู้ใช้ sudo

  • tty - จริงถ้าเปิดใช้งาน sudo

  • priv - คีย์ส่วนตัว

  • timeout - หมดเวลาสำหรับการเชื่อมต่อ SSH

  • minion_opts - พจนานุกรมของ minion ตัวเลือก

  • thin_dir - ไดเร็กทอรีหน่วยเก็บข้อมูลของระบบเป้าหมายสำหรับส่วนประกอบเกลือ

  • cmd_umask - umask เพื่อบังคับสำหรับคำสั่ง salt-call

ไฟล์บัญชีรายชื่อตัวอย่างมีดังนี้ -

web:
   host: 192.168.2.1
   user: webuser
   passwd: secret
   sudo: True   
db:
   host: 192.168.2.2

ปรับใช้คีย์ SSH

Salt SSH จะสร้างคู่คีย์สาธารณะ / ส่วนตัวเริ่มต้นสำหรับการเข้าสู่ระบบ SSH เส้นทางเริ่มต้นจะเป็น /etc/salt/pki/master/ssh/salt-ssh.rsa คีย์นี้สามารถปรับใช้กับระบบรีโมตโดยใช้ssh-copy-id คำสั่งดังที่แสดงด้านล่าง

ssh-copy-id -i /etc/salt/pki/master/ssh/salt-ssh.rsa.pub [email protected]

ดำเนินการคำสั่ง

การดำเนินการคำสั่ง salt ทำได้ง่ายเพียงแค่เปลี่ยนไฟล์ salt cli สั่งเป็น salt-ssh ดังแสดงด้านล่าง

salt-ssh '*' test.ping

คำสั่งเชลล์ดิบ

Salt SSH มีตัวเลือก (-r) เพื่อดำเนินการคำสั่ง raw ในระบบรีโมตโดยข้ามโมดูลและฟังก์ชันของเกลือ

salt-ssh '*' -r 'ls'

กำหนดเป้าหมายด้วย Salt SSH

การกำหนดเป้าหมายระบบระยะไกลใน Salt SSH รองรับเฉพาะเป้าหมาย glob และ regex เนื่องจาก Salt SSH เป็นโมดูลแยกต่างหากจึงมีตัวเลือกที่ จำกัด เท่านั้น ณ ตอนนี้และจะให้คุณสมบัติเพิ่มเติมในอนาคตอันใกล้