SaltStack - Thực thi từ xa
Một trong những khái niệm cốt lõi của Salt là thực thi từ xa. Salt có thể thực hiện các lệnh trên hàng nghìn hệ thống chỉ trong vài giây. Salt sử dụng lệnh riêng của nó để thực hiện chức năng này. Bây giờ chúng ta hãy hiểu các lệnh Salt khác nhau để thực hiện từ xa trong chương.
Lệnh muối
Lệnh Salt cho phép bậc thầy Salt giao tiếp với một hoặc nhiều Salt minions. Cú pháp cơ bản như sau,
salt '<target>' <module.function> [arguments]
Cú pháp lệnh trên bao gồm ba thành phần chính sau đây.
target - Nó xác định hệ thống nào được áp dụng bởi lệnh.
module.function- Đó là một mệnh lệnh. Các lệnh bao gồm một mô-đun và chức năng.
arguments - Dữ liệu bổ sung cần thiết cho việc gọi hàm.
Hãy để chúng tôi hiểu chi tiết từng thành phần.
Thành phần mục tiêu là gì?
Target là một thành phần, cho phép bạn lọc các tay sai (hệ thống được quản lý) để chạy chức năng. Một lệnh đơn giản sử dụng thành phần đích được định nghĩa bên dưới.
salt '*' test.ping
Nó sẽ tạo ra những thứ sau output -
minion2:
True
minion1:
True
Đây, mục tiêu ‘*’đại diện cho tất cả các hệ thống được quản lý. Các 'test'đây là một mô-đun và pinglà một chức năng. Điều này được sử dụng để kiểm tra dịch vụ ping trong hệ thống từ xa. Chúng ta sẽ tìm hiểu về các mô-đun khác nhau và chức năng của nó trong các chương tiếp theo.
Nhắm mục tiêu bằng ID (minion)
Bạn có thể gửi lệnh tới một tay sai cụ thể bằng cách sử dụng idtrong mục tiêu. Thay vì sử dụng'*', bạn có thể thay thế nó bằng cách sử dụng minion id. Nó được định nghĩa dưới đây.
salt 'minion1’ test.ping
Nó sẽ tạo ra những thứ sau output -
minion1:
True
Nhắm mục tiêu sử dụng Cụm từ Thông dụng
Các mục tiêu có thể được lọc theo biểu thức chính quy cụ thể. Nó được định nghĩa dưới đây.
salt -E 'minion[0-9]' test.ping
Nó sẽ tạo ra những thứ sau output -
minion2:
True
minion1:
True
Nhắm mục tiêu bằng Danh sách
Mục tiêu có thể được chỉ định rõ ràng trong một danh sách. Nó được định nghĩa trong khối mã sau.
salt -L 'minion1,minion2' test.ping
Nó sẽ tạo ra những thứ sau output -
minion2:
True
minion1:
True
Mục tiêu theo điều kiện
Các mục tiêu có thể được kết hợp trong một lệnh như được hiển thị trong khối mã bên dưới.
salt -C 'G@os:Ubuntu and minion* or [email protected].*' test.ping
Nó sẽ tạo ra những thứ sau output -
minion1:
True
minion2:
True
Mô-đun và chức năng (mô-đun. chức năng)
Salt có thể thực hiện các lệnh shell; cập nhật gói và phân phối tệp, v.v., trong tất cả các hệ thống được quản lý của nó đồng thời. Salt thực hiện các hoạt động này bằng cách sử dụng các mô-đun. Salt có các mô-đun đặc biệt cho tất cả các chức năng có sẵn. Hãy để chúng tôi hiểu các mô-đun Salt khác nhau bằng cách sử dụng một số ví dụ đơn giản trong chương này.
Lệnh Shell
Salt thực hiện các lệnh shell từ xa trên nhiều hệ thống bằng cách sử dụng cmd.runchỉ huy. Cáccmd là mô-đun chính và run là một trong những chức năng có sẵn trong cmdmô-đun. Cácrun chức năng cho phép bất kỳ lệnh shell nào được thực thi trong hệ thống từ xa như được hiển thị trong khối mã bên dưới.
salt '*' cmd.run 'ls -l /etc'
Nó sẽ tạo ra những thứ sau output -
minion2:
total 868
drwxr-xr-x 7 root root 4096 Jan 26 22:10 X11
drwxr-xr-x 3 root root 4096 Jan 26 21:02 acpi
-rw-r--r-- 1 root root 2981 Jan 26 20:48 adduser.conf
-rw-r--r-- 1 root root 10 Jan 26 21:04 adjtime
drwxr-xr-x 2 root root 4096 Jan 26 22:10 alternatives
drwxr-xr-x 3 root root 4096 Jan 26 20:53 apm
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apparmor
drwxr-xr-x 9 root root 4096 Jan 26 21:02 apparmor.d
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apport
drwxr-xr-x 6 root root 4096 Jan 29 07:14 apt
drwxr-xr-x 2 root root 4096 Jan 26 22:10 at-spi2
……………
……………
minion1:
total 868
drwxr-xr-x 7 root root 4096 Jan 26 22:10 X11
drwxr-xr-x 3 root root 4096 Jan 26 21:02 acpi
-rw-r--r-- 1 root root 2981 Jan 26 20:48 adduser.conf
-rw-r--r-- 1 root root 10 Jan 26 21:04 adjtime
drwxr-xr-x 2 root root 4096 Jan 26 22:10 alternatives
drwxr-xr-x 3 root root 4096 Jan 26 20:53 apm
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apparmor
drwxr-xr-x 9 root root 4096 Jan 26 21:02 apparmor.d
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apport
drwxr-xr-x 6 root root 4096 Jan 29 07:09 apt
drwxr-xr-x 2 root root 4096 Jan 26 22:10 at-spi2
-rw-r----- 1 root daemon 144 Oct 21 2013 at.deny
-rw-r--r-- 1 root root 2177 Apr 9 2014 bash.bashrc
-rw-r--r-- 1 root root 45 Mar 22 2014 bash_completion
……………
……………
Hiển thị mức sử dụng đĩa
Muối cung cấp một mô-đun đặc biệt, diskđể có được toàn bộ chi tiết về đĩa của hệ thống được quản lý. Cácdiskmodule có một usage chức năng để truy vấn các chi tiết.
salt '*' disk.usage
Nó sẽ tạo ra những thứ sau output -
minion1:
----------
/:
----------
1K-blocks:
41251136
available:
37852804
capacity:
5%
filesystem:
/dev/sda1
used:
1662420
/dev:
----------
1K-blocks:
503908
available:
503896
capacity:
1%
filesystem:
udev
used:
12
/run:
----------
1K-blocks:
101780
available:
101412
capacity:
1%
filesystem:
tmpfs
used:
368
/run/lock:
----------
1K-blocks:
5120
available:
5120
capacity:
0%
filesystem:
none
used:
0
/run/shm:
----------
1K-blocks:
508884
available:
508872
capacity:
1%
filesystem:
none
used:
12
/run/user:
----------
1K-blocks:
102400
available:
102400
capacity:
0%
filesystem:
none
used:
0
/sys/fs/cgroup:
----------
1K-blocks:
4
available:
4
capacity:
0%
filesystem:
none
used:
0
/vagrant:
----------
1K-blocks:
303114632
available:
252331440
capacity:
17%
filesystem:
none
used:
50783192
minion2:
----------
/:
----------
1K-blocks:
41251136
available:
37852804
capacity:
5%
filesystem:
/dev/sda1
used:
1662420
/dev:
----------
1K-blocks:
503908
available:
503896
capacity:
1%
filesystem:
udev
used:
12
/run:
----------
1K-blocks:
101780
available:
101412
capacity:
1%
filesystem:
tmpfs
used:
368
/run/lock:
----------
1K-blocks:
5120
available:
5120
capacity:
0%
filesystem:
none
used:
0
/run/shm:
----------
1K-blocks:
508884
available:
508872
capacity:
1%
filesystem:
none
used:
12
/run/user:
----------
1K-blocks:
102400
available:
102400
capacity:
0%
filesystem:
none
used:
0
/sys/fs/cgroup:
----------
1K-blocks:
4
available:
4
capacity:
0%
filesystem:
none
used:
0
/vagrant:
----------
1K-blocks:
303114632
available:
252331440
capacity:
17%
filesystem:
none
used:
50783192
Giao diện mạng
Salt cung cấp một mô-đun, mạng và chức năng riêng biệt, các giao diện bên trong mô-đun để truy vấn thông tin giao diện mạng về các hệ thống được quản lý.
salt '*' network.interfaces
Nó sẽ tạo ra những thứ sau output -
minion1:
----------
eth0:
----------
hwaddr:
08:00:27:04:3e:28
inet:
|_
----------
address:
10.0.2.15
broadcast:
10.0.2.255
label:
eth0
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe04:3e28
prefixlen:
64
scope:
link
up:
True
eth1:
----------
hwaddr:
08:00:27:34:10:52
inet:
|_
----------
address:
192.168.50.11
broadcast:
192.168.50.255
label:
eth1
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe34:1052
prefixlen:
64
scope:
link
up:
True
lo:
----------
hwaddr:
00:00:00:00:00:00
inet:
|_
----------
address:
127.0.0.1
broadcast:
None
label:
lo
netmask:
255.0.0.0
inet6:
|_
----------
address:
::1
prefixlen:
128
scope:
host
up:
True
minion2:
----------
eth0:
----------
hwaddr:
08:00:27:04:3e:28
inet:
|_
----------
address:
10.0.2.15
broadcast:
10.0.2.255
label:
eth0
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe04:3e28
prefixlen:
64
scope:
link
up:
True
eth1:
----------
hwaddr:
08:00:27:a7:31:8e
inet:
|_
----------
address:
192.168.50.12
broadcast:
192.168.50.255
label:
eth1
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fea7:318e
prefixlen:
64
scope:
link
up:
True
lo:
----------
hwaddr:
00:00:00:00:00:00
inet:
|_
----------
address:
127.0.0.1
broadcast:
None
label:
lo
netmask:
255.0.0.0
inet6:
|_
----------
address:
::1
prefixlen:
128
scope:
host
up:
True
Mô-đun thực thi sys.doc
Các chức năng muối có thể được gửi đến sys.docmô-đun thực thi. Điều này được sử dụng để lấy thông tin chi tiết về bất kỳ mô-đun nào trực tiếp từ dòng lệnh. Các hàm Salt tự ghi lại. Tất cả tài liệu về hàm có thể được truy xuất từ các minion thông qua hàm sys.doc (), được định nghĩa bên dưới.
salt '*' sys.doc
Đối số cho một lệnh gọi hàm
Các đối số được sử dụng để cung cấp dữ liệu bổ sung cho lệnh gọi hàm. Dưới đây là một ví dụ đối số đơn giản.
salt '*' sys.doc pkg.install
Đây, đối số pkg.install là một mô-đun để cài đặt các gói cụ thể.
Hàm Python
Đối số là các tham số được phân cách bằng dấu cách cho hàm. Nó cho phép mã python được truyền dưới dạng các đối số như dưới đây.
salt '*' cmd.exec_code python 'import sys;print sys.version'
Nó sẽ tạo ra những thứ sau output -
minion2:
2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4]
minion1:
2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4]
Tương tự, bạn có thể sử dụng các từ khóa tùy chọn và YAML định dạng.