SaltStack - Quản lý cấu hình
Quản lý cấu hình là một trong những khái niệm quan trọng nhất trong SaltStack. Nó được sử dụng để tạo một mẫu cấu hình có thể sử dụng lại, được gọi làstate. Trạng thái mô tả mọi thứ cần thiết để đưa một thành phần hệ thống hoặc một ứng dụng vào một cấu hình đã biết.
Trạng thái muối
Trạng thái muối là một cấu hình có thể tái sử dụng cho một phần cụ thể của hệ thống. Các tiểu bang dễ hiểu hơn và được mô tả bằng YAML đơn giản.
Tạo trạng thái muối
Các trạng thái muối rất dễ tạo ra. Hãy để chúng tôi tạo một trạng thái đơn giản trong chương này. Di chuyển đến thư mục “salt-vagrant-demo / saltstack / salt /” và tạo một tệp có tênsamples.sls và thêm các dòng sau vào đó.
samples.sls
install_network_packages:
pkg.installed:
- pkgs:
- rsync
- lftp
- curl
Bây giờ, hãy lưu tệp và chạy lệnh sau trong Salt master.
root@saltmaster:/home/vagrant# salt 'minion1’ state.apply samples
Ở đây, chúng tôi đã cài đặt rsync, lftp và curl thông qua pkg.installed mô-đun sử dụng trạng thái Salt trong một minion muối, minion1. Nếu nó hoạt động bình thường, bạn có thể thấy phản hồi như hình dưới đây.
Nó sẽ tạo ra những thứ sau output -
minion1:
----------
ID: install_network_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 08:08:48.612336
Duration: 545.385 ms
Changes:
Summary for minion1
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 545.385 ms
Áp dụng trạng thái muối
Bây giờ chúng ta đã tạo một trạng thái bằng cách sử dụng tệp '.sls' và áp dụng nó bằng cách gọi cụ thể nó. Salt có một tệp trạng thái mặc định được gọi làtop.slstập tin. Tệp trên cùng được sử dụng để áp dụng nhiều tệp trạng thái cho các tay sai của Salt. Tệp trên cùng mô tả nơi các trạng thái nên được áp dụng. Tốt,States và Top file làm việc cùng nhau để tạo ra cốt lõi cho khả năng quản lý cấu hình của SaltStack.
Bây giờ chúng ta hãy tạo một tệp top.sls đơn giản trong thư mục saltstack/salt và thêm phần sau.
top.sls
base:
'*':
- common
'minion1':
- samples
Đây, state, thông thường applies đến all system tiểu bang, samples áp dụng đối với minion1.
Tiếp theo, chạy Salt master và áp dụng trạng thái như hình dưới đây.
root@saltmaster:/home/vagrant# salt '*' state.apply
Nó sẽ tạo ra những thứ sau output -
minion1:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 09:33:35.642355
Duration: 588.21 ms
Changes:
Summary for minion1
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 588.210 ms
minion2:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 09:33:35.890331
Duration: 602.79 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 602.790 ms
Áp dụng kích thước hàng loạt
Nếu bạn có một số lượng lớn các tay sai được kết nối, thì bạn có thể giới hạn số lượng hệ thống được cập nhật cùng một lúc. Nó được thực hiện bằng cách sử dụng–batch-size tùy chọn, được định nghĩa bên dưới.
root@saltmaster:/home/vagrant# salt --batch-size 5 '*' state.apply
Nó sẽ tạo ra những thứ sau output -
Executing run on ['minion2', 'minion1']
jid:
20170314094638482664
minion1:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 09:46:41.228519
Duration: 582.24 ms
Changes:
Summary for minion1
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 582.240 ms
retcode:
0
jid:
20170314094638482664
minion2:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 09:46:41.153609
Duration: 605.235 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 605.235 ms
retcode:
0
Chức năng trạng thái muối
Các chức năng trạng thái muối được sử dụng để cài đặt và cấu hình các ứng dụng trên hệ thống từ xa của bạn. Hãy để chúng tôi cài đặt gói “Vim” bằng chức năng trạng thái Muối.
Tạo và áp dụng chức năng trạng thái
Tạo một tệp có tên “sample.sls” trong thư mục “salt-vagrant-demo / saltstack / salt / sample.sls” và thêm phần sau:
sample.sls
install vim:
pkg.installed:
- name: vim
Sau khi môi trường Vagrant hoạt động, hãy chạy chính muối và áp dụng sample.sls bằng cách chạy lệnh sau.
root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample
Nó sẽ tạo ra những thứ sau output -
minion2:
----------
ID: install vim
Function: pkg.installed
Name: vim
Result: True
Comment: Package vim is installed
Started: 15:07:45.752764
Duration: 553.506 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 553.506 ms
Bây giờ, chúng tôi đã thêm một gói “Vim”. Bây giờ chúng ta hãy kiểm tra gói bằng phương pháp kiểm tra Salt.
Kiểm tra trạng thái muối
Việc chạy thử nghiệm được yêu cầu bằng cách thêm tùy chọn “test = True” vào các trạng thái. Thông tin trả về sẽ hiển thị các trạng thái sẽ được áp dụng màu vàng và kết quả được báo cáo là 'Không có'.
Lệnh sau được sử dụng để kiểm tra trạng thái:
root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample test = True
Nó sẽ tạo ra những thứ sau output -
minion2:
----------
ID: install vim
Function: pkg.installed
Name: vim
Result: True
Comment: Package vim is already installed
Started: 15:07:45.752764
Duration: 553.506 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 553.506 ms
SaltStack ─ Thành phần trụ cột
Pillar là thành phần thiết yếu để tạo ra các trạng thái Salt có thể tái sử dụng. Nó được sử dụng để xác định dữ liệu an toàn cho các tay sai được chỉ định bằng cách sử dụng các mục tiêu. Dữ liệu cột muối lưu trữ các giá trị như cổng, đường dẫn tệp, thông số cấu hình và mật khẩu.
Tệp cấu hình cột
Cấu hình cho pillar_roots trong tệp cấu hình chính được hiển thị bên dưới:
pillar_roots:
base:
- /srv/pillar
Ở đây, tệp nằm trong thư mục “/ srv / column”.
Hãy xem xét, tệp hàng đầu nằm trong /srv/pillar/top.sls có cấu trúc như sau:
base:
'*':
- default
Bây giờ, di chuyển đến tệp default.sls nằm trong /srv/pillar/default.sls và thêm mã sau.
# Default pillar values
apache
git
Sau khi lưu tệp, hãy làm mới cột để cập nhật tất cả các thay đổi.
Làm mới Trụ cột
Bạn có thể làm mới cột bằng lệnh sau.
root@saltmaster:/home/vagrant# salt '*' saltutil.refresh_pillar
Lệnh trên được sử dụng để làm mới dữ liệu cột muối trên tất cả các tay sai.
Liệt kê dữ liệu cột
Để liệt kê dữ liệu trụ cột, bạn có thể sử dụng lệnh dưới đây.
root@saltmaster:/home/vagrant# salt '*' pillar.ls
Nó sẽ tạo ra những thứ sau output -
minion2:
- apache
- git
minion1:
- apache
- git
Mục trụ cột
Khi trụ được thiết lập, dữ liệu có thể được xem trên minion thông qua mô-đun trụ. Nó có thể được truy cập thông qua chức năngpillar.items, được định nghĩa bên dưới.
root@saltmaster:/home/vagrant# salt '*' pillar.items
Nó sẽ tạo ra những thứ sau output -
minion2:
----------
apache:
httpd
git:
git
minion1:
----------
apache:
httpd
git:
git
SaltStack - Bao gồm thành phần
Thành phần 'Bao gồm' được sử dụng để xác định cùng một tác vụ cấu hình ở nhiều nơi. Nó rất dễ dàng để thực hiện. Ở đầu tệp trạng thái của bạn, thêm một bao gồm bằng cách sử dụng định dạng sau:
include:
- state file 1
- state file 2
Đây, state file 1 và state file 2là tên của các tệp SLS mà bạn muốn đưa vào. Không cần bao gồm.slssự mở rộng. Các trạng thái Muối bao gồm được chèn vào đầu tệp hiện tại.
Tệp trạng thái trong Thư mục con
Bạn có thể bao gồm tệp trạng thái thư mục con bằng cách sử dụng dấu chấm (.). Nó hoạt động như một ngăn cách thư mục.
include:
- dir.sls1
Giao diện Grains
Grains là một giao diện được sử dụng để lấy thông tin về hệ thống cơ bản. Grains được thu thập cho hệ điều hành, tên miền, địa chỉ IP, hạt nhân, loại hệ điều hành, bộ nhớ và nhiều thuộc tính hệ thống khác.
Nhắm mục tiêu Ngũ cốc
Dữ liệu hạt có thể được sử dụng khi nhắm mục tiêu tay sai, được xác định trong khối mã sau.
root@saltmaster:/home/vagrant# salt -G 'os:Ubuntu' test.ping
Nó sẽ tạo ra những thứ sau output -
minion1:
True
minion2:
True
Liệt kê ngũ cốc
Các loại ngũ cốc có thể được liệt kê bằng cách sử dụng mô-đun 'grain.ls', được định nghĩa bên dưới.
root@saltmaster:/home/vagrant# salt '*' grains.ls
Danh sách sản phẩm
Giống như Pillar, dữ liệu về Ngũ cốc cũng có thể được liệt kê bằng cách sử dụng 'grain.items'.
root@saltmaster:/home/vagrant# salt '*' grains.items