
Salt Cloud là gì?
Salt Cloud là một công cụ quản lý cấu hình cho phép người dùng cung cấp hệ thống trên máy chủ đám mây hoặc trình quản lý ảo. Trong quá trình cài đặt, Salt Cloud cài đặt Salt trên tất cả các hệ thống được cung cấp theo mặc định. Điều này cho phép người dùng đưa hệ thống vào trạng thái mong muốn trong quá trình cung cấp.
Đám mây muối:
- Giúp thu thập thông tin về hệ thống của bạn và quản lý vòng đời của chúng thông qua Giao diện dòng lệnh (CLI).
- Hỗ trợ Linode như một nhà cung cấp ngay từ đầu. Bạn không cần phải cài đặt bất kỳ plugin bổ sung nào.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Salt Cloud và cấu hình để nó hoạt động trên Linode.
Trước khi bạn bắt đầu
- Tạo một máy chủ quản lý sẽ được sử dụng để tạo và quản lý máy chủ Linode của bạn. Bạn có thể lưu trữ máy chủ quản lý từ xa trên Linode hoặc trên máy cục bộ. Điều kiện duy nhất là máy chủ đó có khả năng cài đặt và thực thi Salt Cloud.
- Hướng dẫn này giả định rằng Salt Cloud sẽ được cài đặt cùng với máy chủ Salt master.
- Tạo khóa API để truy cập API Linode. Khóa này sẽ được Salt Cloud sử dụng để quản lý các phiên bản của bạn. Đảm bảo giữ khóa API của bạn an toàn. Đặt biến môi trường
API_TOKEN
và kiểm tra khóa API của bạn đang hoạt động thông qua giao diện REST:curl -H "Authorization:Bearer $API_TOKEN" https://api.linode.com/v4/account | json_pp
- Máy chủ quản lý phải có quyền truy cập vào API Linode (truy cập internet không qua proxy).
Cài đặt Salt và Salt Cloud thông qua Bootstrap Script
Cách được khuyến nghị để cài đặt Salt Cloud là sử dụng tập lệnh Salt Bootstrap. Tập lệnh này sẽ cài đặt Salt, các gói Salt Cloud và tất cả các phụ thuộc cần thiết. Chạy tập lệnh có -h
cờ để xem các tùy chọn bổ sung có sẵn hoặc tham khảo Hướng dẫn Salt Bootstrap để biết hướng dẫn chi tiết.
1.Tải xuống tập lệnh Salt Bootstrap qua curl:
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
2.Thực thi tập lệnh và sử dụng -L
tùy chọn để cài đặt Salt và Salt Cloud:
sh bootstrap-salt.sh -L
Cấu hình Salt Cloud
Thiết lập Cấu hình Nhà cung cấp:
Cấu hình và kiểm tra quyền truy cập vào API Linode.
1.Chỉnh sửa /etc/salt/cloud.providers.d/linode.conf
để cấu hình tên cấu hình nhà cung cấp của bạn. Salt Cloud sẽ sử dụng tên này trong quá trình vận hành với các phiên bản trong CLI. Sử dụng tên ngắn (hoặc tên viết tắt như li
) dễ nhớ. Bạn cũng có thể chỉ định nhiều nhà cung cấp Linode để quản lý nhiều tài khoản. Linode yêu cầu mật khẩu gốc mặc định cho các máy chủ mới phải được thiết lập. Mật khẩu này cần có tám ký tự và bao gồm chữ thường, chữ hoa và số.
my-linode-provider:
api_version: v4
apikey: <Your API key>
password: <Default password for the new instances>
driver: linode
Ghi chú: Tất cả các tệp cấu hình đều lưu trữ dữ liệu theo định dạng YAML. Hãy cẩn thận với thụt lề – chỉ sử dụng khoảng trắng và không sử dụng tab. Mỗi cấp thụt lề thường được phân tách bằng 2 khoảng trắng.
2.Kiểm tra quyền truy cập vào API Linode:
Thực hiện lệnh sau từ máy chủ của bạn để kiểm tra quyền truy cập vào API Linode:
salt-cloud --list-locations my-linode-provider
Nếu bạn đã thiết lập kết nối với Linode đúng cách, bạn sẽ thấy đầu ra tương tự như sau:
my-linode_provider:
----------
linode:
----------
Atlanta, GA, USA:
----------
ABBR:
atlanta
DATACENTERID:
4
LOCATION:
Atlanta, GA, USA
Tạo một phiên bản Salt Cloud mới
Liệt kê các vị trí, hình ảnh và kích thước có sẵn
Trước khi tạo phiên bản mới, hãy chỉ định kích thước phiên bản: dung lượng bộ nhớ hệ thống, CPU và dung lượng lưu trữ; vị trí: vị trí vật lý của trung tâm dữ liệu; và hình ảnh: hệ điều hành.
Bạn có thể lấy thông tin này bằng các lệnh sau:
- Địa điểm có sẵn:
salt-cloud --list-locations my-linode-provider
- Kích thước có sẵn:
salt-cloud --list-sizes my-linode-provider
- Hình ảnh có sẵn:
salt-cloud --list-images my-linode-provider
Thiết lập Cấu hình Hồ sơ
Tạo một hồ sơ cá thể. Trong hồ sơ này, bạn mô tả một máy chủ sẽ được tạo trên tài khoản Linode của bạn. Cấu hình tối thiểu phải bao gồm nhà cung cấp, kích thước, hình ảnh và vị trí.
Trong ví dụ này, hãy tạo một phiên bản có kích thước chuẩn, sử dụng ảnh Debian 11, đặt tại London.
1.Mở /etc/salt/cloud.profiles.d/linode-london-1gb.conf
và dán nội dung sau:
linode_1gb:
provider: my-linode-provider
size: g6-standard-1
image: linode/debian11
location: eu-west
Bạn có thể sử dụng một tệp cho tất cả các cấu hình hoặc sử dụng một tệp cho mỗi cấu hình phiên bản. Tất cả các tệp từ /etc/salt/cloud.profiles.d/
được đọc trong khi thực thi.
2.Theo mặc định, Salt Cloud sẽ cài đặt Salt Minion trên tất cả các máy chủ được cung cấp. Để cho phép các hệ thống được cung cấp kết nối với máy chủ chính, hãy đặt cấu hình máy chủ chính mặc định cho tất cả các hệ thống được cung cấp.Chỉnh sửa /etc/salt/cloud.conf.d/master.conf
và dán nội dung sau, thay thế saltmaster.example.com
bằng địa chỉ IP hoặc tên miền của máy chủ chính của bạn:
minion:
master: saltmaster.example.com
Một tùy chọn khác là thiết lập tham số này cho cấu hình phiên bản cụ thể:
linode_1gb_with_master:
provider: my-linode-provider
size: g6-standard-1
image: linode/debian11
location: eu-west
minion:
master: mymaster.example.com
3.Thiết lập xác thực khóa SSH cho phiên bản của bạn. Để thực hiện việc này trong quá trình cung cấp, hãy thiết lập hồ sơ như sau, thay thế ssh_pubkey
và ssh_key_file
bằng thông tin khóa cho khóa SSH trên máy chủ chính của bạn:
linode_1gb_with_ssh_key:
provider: my-linode-provider
size: g6-standard-1
image: linode/debian11
location: eu-west
ssh_pubkey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKHEOLLbeXgaqRQT9NBAopVz366SdYc0KKX33vAnq+2R user@host
ssh_key_file: ~/.ssh/id_ed25519
Ghi chú: Nếu máy chủ chính của bạn nằm sau tường lửa, bạn sẽ phải mở các cổng 4505-4506
trong tường lửa . Tùy thuộc vào cấu hình mạng của bạn, bạn có thể phải thiết lập chuyển tiếp cổng cho các cổng này.
Giao diện Salt Cloud
Tạo các phiên bản Linode
Có một số cách để tạo phiên bản mới:
Tạo một phiên bản mới duy nhất :
salt-cloud -p linode_1gb linode1
Việc tạo phiên bản và cài đặt Salt Minion trên đó có thể mất một thời gian.
Khi triển khai hoàn tất, bạn sẽ thấy tóm tắt sau:
linode1:
----------
deployed:
True
id:
<ID>
image:
linode/debian11
name:
linode1
private_ips:
public_ips:
- <ip_address>
size:
g6-standard-1
state:
Running
Bạn có thể kết nối tới phiên bản này bằng tên người dùng root
và mật khẩu được chỉ định trong tệp cấu hình.
Để tạo nhiều máy chủ trong một lệnh, hãy nhập lệnh sau:
salt-cloud -p linode_1gb linode1 linode2
- Tên phiên bản mà bạn cung cấp trong lệnh này được sử dụng để quản lý phiên bản nội bộ và chúng không được kết nối với tên máy chủ phiên bản.Nhãn Linode:
- Chỉ có thể chứa các chữ cái hoặc số ASCII, dấu gạch ngang và dấu gạch dưới
- Phải bắt đầu và kết thúc bằng chữ cái hoặc số, và
- Có độ dài ít nhất là ba ký tự.
- Thông thường khi tạo các phiên bản, chúng được thực hiện tuần tự. Sử dụng
salt-cloud
lệnh với-P
tùy chọn để tạo các phiên bản song song cho phép triển khai :salt-cloud -P -p linode_1gb linode1 linode2
- Nếu bạn không muốn cài đặt Salt Minion trên máy chủ được cung cấp , hãy chạy
salt-cloud
với--no-deploy
tùy chọn:
salt-cloud -p linode_1gb --no-deploy linode3
Salt cloud sẽ tạo ra thông báo lỗi nhưng phiên bản sẽ được tạo:
linode3:
----------
Error:
----------
No Deploy:
'deploy' is not enabled. Not deploying.
Phá hủy các phiên bản Salt Cloud
1.Để hủy một thể hiện, hãy thực hiện salt-cloud
với -d
tùy chọn:
salt-cloud -d linode1
2.Máy chủ sẽ bị hủy sau khi bạn xác nhận xóa.
Nhận thông tin về các phiên bản đang chạy
Thông tin một phần
Thu thập thông tin một phần bằng cách thực hiện salt-cloud
với -Q
tùy chọn:
salt-cloud -Q
Thông tin đầy đủ
Nhận thông tin đầy đủ về các trường hợp bằng cách sử dụng -F
tùy chọn:
salt-cloud -F
Cấu hình truy vấn có chọn lọc
1.Chỉnh sửa /etc/salt/cloud.conf.d/query.conf
và thêm các trường bạn muốn chọn:
query.selection:
- image
- size
2.Thực hiện truy vấn chọn lọc bằng -S
tùy chọn:
salt-cloud -S
Đầu ra:
linode3:
----------
image:
linode/debian11
size:
1024
Cách thực hiện hành động trên Salt Cloud Instances
Hành động là các tính năng áp dụng cho một trường hợp cụ thể. Hiện tại, các hành động sau được hỗ trợ:
show_instance
start
stop
Ví dụ, để dừng một linode1
phiên bản đang chạy, hãy thực hiện salt-cloud
lệnh với -a
tùy chọn và stop
lệnh:
salt-cloud -a stop linode1
Sử dụng Cloud Map Files để quản lý các môi trường phức tạp
Việc mở rộng quy mô, tạo và hủy từng máy chủ một có thể rất phức tạp. Để giảm bớt điều này, hãy sử dụng tệp Cloud Map.
Bản đồ đám mây gán các cấu hình cho một danh sách các phiên bản. Trong quá trình thực thi, Salt Cloud sẽ cố gắng đưa trạng thái của các phiên bản này vào phù hợp với tệp bản đồ. Các phiên bản mới sẽ được tạo và các phiên bản hiện tại sẽ không bị thay đổi.
Cấu hình bản đồ cloud
Trong ví dụ này, Cloud map sẽ định nghĩa hai phiên bản: linode_web
và linode_db
. Cả hai phiên bản sẽ sử dụng hồ sơ linode_1gb
đã định nghĩa trước đó.
1.Chỉnh sửa /etc/salt/cloud.conf.d/linode.map
và dán nội dung sau:
linode_1gb:
- linode_web
- linode_db
Tệp bản đồ đám mây cho phép bạn xác định các phiên bản từ nhiều tài khoản Linode hoặc thậm chí từ một nhà cung cấp khác. Kiểm tra tài liệu Bản đồ đám mây để biết hướng dẫn chi tiết.
2.Để tạo các phiên bản từ tệp bản đồ Đám mây, hãy thực hiện salt-cloud
với -m
tùy chọn và trỏ đến .map
tệp:
salt-cloud -m /etc/salt/cloud.conf.d/linode.map
3.Salt Cloud sẽ yêu cầu bạn xác nhận cấu hình mục tiêu:
The following virtual machines are set to be created:
linode_web
linode_db
Proceed? [N/y] y
... proceeding
. . .
Để tạo các phiên bản song song, hãy sử dụng -P
tùy chọn với tệp bản đồ đám mây.
Xóa các phiên bản được tạo bởi Cloud Map Files
Nếu một phiên bản hiện có bị xóa khỏi tệp bản đồ Cloud, phiên bản đó sẽ vẫn chạy. Để xóa các phiên bản được tạo bởi tệp bản đồ:
- Xóa một hoặc nhiều trường hợp, chỉ định tên của chúng:
salt-cloud -d linode_web linode_db
- Xóa tất cả các trường hợp được mô tả trong
map
tệp:salt-cloud -d -m /etc/salt/cloud.conf.d/linode.map
- Cho phép Salt Cloud hủy mọi phiên bản không được mô tả trong
map
tệp. SaltStack coi việc xóa các phiên bản như vậy là nguy hiểm. Tính năng này bị vô hiệu hóa theo mặc định. Để bật tính năng này:
1.Sửa đổi /etc/salt/cloud
và thêm:
enable_hard_maps: True
2.Thực hiện salt-cloud
với --hard
tùy chọn:
salt-cloud -d -m /etc/salt/cloud.conf.d/linode.map
3.Xác nhận xóa khi được nhắc.
Nguồn: https://www.linode.com/docs/guides/configure-and-use-salt-cloud-and-cloud-maps-to-provision-systems/