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, lftpcurl 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,StatesTop 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 1state 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