SaltStack - เกลือสำหรับโครงสร้างพื้นฐานระบบคลาวด์

เกลือมีโมดูลแยกต่างหาก Salt Cloud เพื่อจัดหาเครื่องเสมือนของผู้ให้บริการคลาวด์ต่างๆเช่น Amazon AWS, Google Compute เป็นต้น Salt Cloud เป็นอินเทอร์เฟซทั่วไปสำหรับกำหนดค่าและจัดการ VM ของผู้ให้บริการคลาวด์ต่างๆ

  • Cloud Config- ไฟล์คอนฟิกูเรชันหลักสำหรับ Salt Cloud คือ / etc / salt / cloud และใช้กับ VM ทั้งหมด ไฟล์คอนฟิกูเรชันหลักเรียกว่าCloud Config.

  • Cloud Providers - ในการกำหนดเป้าหมายผู้ให้บริการระบบคลาวด์ที่เฉพาะเจาะจงเราสามารถใช้ไฟล์การกำหนดค่าเฉพาะและอยู่ใน /etc/salt/cloud.providers.d/*.conf สิ่งเหล่านี้เรียกว่า Cloud Providers.

  • Cloud Profiles - ในการกำหนดเป้าหมาย VM เฉพาะเรายังสามารถใช้ไฟล์การกำหนดค่าพิเศษซึ่งใช้กับ VM นั้น ๆ เท่านั้นและอยู่ที่ /etc/salt/cloud.profiles.d/*.conf ซึ่งจะเรียกว่า Cloud Profiles.

สำหรับเครื่องเสมือนการตั้งค่าในไฟล์ Cloud Config ถูกนำไปใช้ก่อนจากนั้นในไฟล์ Cloud Providers และในที่สุดการแทนที่ก็ทำได้โดย Cloud Profiles.

การติดตั้ง Salt Cloud

โดยค่าเริ่มต้น Salt Cloud ถูกสร้างขึ้นใน Salt และพร้อมใช้งาน หากไม่สามารถใช้งานได้เราสามารถติดตั้งได้โดยใช้คำสั่งด้านล่าง

pip install salt-cloud

เนื่องจาก Salt Cloud เป็นโมดูลแยกต่างหากและทำงานในกระบวนการของตัวเองจึงสามารถติดตั้งในระบบ Salt Minion ได้เช่นกันแทน Salt Master

การจัดเตรียมเครื่องเสมือน

ในการจัดเตรียมเครื่องเสมือนเราจำเป็นต้องกำหนดผู้ให้บริการระบบคลาวด์และโปรไฟล์ระบบคลาวด์ เมื่อสร้างทั้งสองแล้วเราสามารถจัดเตรียมเครื่องเสมือนใหม่เพื่อใช้งานได้

ผู้ให้บริการระบบคลาวด์

ข้อมูลโฮสต์คลาวด์ได้รับการกำหนดค่าในไฟล์การกำหนดค่าผู้ให้บริการระบบคลาวด์ โดยปกติข้อมูลพื้นฐานซึ่งจำเป็นต้องกำหนดค่า ได้แก่ โปรแกรมควบคุมระบบคลาวด์ชื่อผู้ใช้รหัสผ่านคีย์ส่วนตัวเป็นต้นให้เราสร้างผู้ให้บริการระบบคลาวด์ใหม่ชื่อเป็นmy-amazon-cloud.

  • สร้างไฟล์ my-amazon-cloud.conf ภายใต้ /etc/salt/cloud.providers.d/

  • เพิ่มผู้ให้บริการใหม่โดยใช้ไฟล์ ec2 คนขับ.

my-amazon-cloud:
   driver: ec2
   id: '<AWS_ID>'
   key: '<AWS_KEY>'
   private_key: /path/to/privatekey.pem
   keyname: <name of the key>
   securitygroup: default

   minion:
      master: <master server>

Salt จัดเตรียมไดรเวอร์สำหรับโฮสต์บนคลาวด์ที่หลากหลายเช่น GoGrid, HP Cloud, Google Compute Engine (GCE), Amazon AWS, Joyent, Linode, OpenNebula, ProfitBricks, Proxmox, Saltify, VexxHost, VMWare เป็นต้น

เมื่อกำหนดค่าผู้ให้บริการระบบคลาวด์แล้วเราสามารถสอบถามตำแหน่งที่มีอยู่ของผู้ให้บริการรูปภาพเครื่องที่มีอยู่และขนาดต่างๆ

salt-cloud --list-location my-amazon-cloud
salt-cloud --list-images my-amazon-cloud
salt-cloud --list-sizes my-amazon-cloud

โปรไฟล์คลาวด์

โปรไฟล์ Cloud ระบุอิมเมจและขนาดเครื่องเสมือน สามารถกำหนดค่าได้ภายใต้ - /etc/salt/cloud.profiles.d/ ให้เราสร้างโปรไฟล์ง่ายๆsimple.conf.

aws_micro:
   provider: my-amazon-cloud
   image: <image_id>
   size: <machine_id e.g. t1.micro>

เครื่องเสมือน

เมื่อกำหนดค่าผู้ให้บริการและโปรไฟล์แล้วเราสามารถจัดหาเครื่องเสมือนได้อย่างง่ายดายโดยใช้ Salt-cloud ดังที่แสดงด้านล่าง

salt-cloud -p aws_micro master minion1 minion2

ที่ไหน p - Profile name master, minion1 และ minion2 เป็นเครื่องเสมือนใหม่

รายละเอียดของเครื่องเสมือนที่สร้างขึ้นใหม่สามารถรับได้โดยใช้คำสั่งต่อไปนี้

salt-cloud --query

เครื่องเสมือนสามารถทำลายได้โดยใช้คำสั่งต่อไปนี้ -

slat-cloud -d master minion1

แผนที่เมฆ

Cloud Map เป็นรูปแบบพิเศษในการสร้างเครื่องเสมือนหลายเครื่องพร้อมกัน รูปแบบของไฟล์แผนที่คือการระบุโปรไฟล์จากนั้นเพิ่มรายชื่อเครื่องเสมือนที่อยู่ด้านล่าง

ไฟล์แผนที่ตัวอย่างมีดังนี้ -

micro:
   - web1
   - web2
large:
   - db1
   - db2

ไฟล์แผนที่สามารถส่งผ่านเป็นอาร์กิวเมนต์ไปยังคำสั่ง salt-cloud เพื่อสร้างเครื่องเสมือนดังต่อไปนี้ -

salt-cloud -m /path/to/mapfile