مقدمه
SaltStack ابزار قدرتمند اتوماسیون زیرساخت و مدیریت پیکربندی است که در مدیریت هزاران سرور بهصورت همزمان برتری دارد. برخلاف مدل push انسیبل، Salt از معماری master-minion با یک message bus رمزنگاریشده ZeroMQ استفاده میکند که اجرای real-time از راه دور را ممکن میسازد.
نصب و راهاندازی
BASH
# نصب Salt Master
curl -fsSL https://bootstrap.saltproject.io | sudo sh -s -- -M stable
# نصب Salt Minion روی سرورهای مدیریتشده
curl -fsSL https://bootstrap.saltproject.io | sudo sh -s -- stable
# پیکربندی minion
# /etc/salt/minion:
# master: 192.168.1.10
# پذیرش کلیدهای minion
salt-key -Aاجرای دستورات از راه دور
BASH
# تست اتصال
salt '*' test.ping
# هدفگیری بر اساس grain
salt -G 'os:Ubuntu' cmd.run 'uname -a'
# نصب پکیج روی همه web server ها
salt -G 'role:webserver' pkg.install nginx
# بررسی فضای دیسک
salt '*' disk.usageنوشتن Salt States
YAML
# /srv/salt/nginx/init.sls
nginx_package:
pkg.installed:
- name: nginx
nginx_service:
service.running:
- name: nginx
- enable: True
- watch:
- file: nginx_config
nginx_config:
file.managed:
- name: /etc/nginx/nginx.conf
- source: salt://nginx/files/nginx.conf
- template: jinjaPillar: دادههای پیکربندی امن
YAML
# /srv/pillar/database.sls
postgres:
password: "super-secret-password"
max_connections: 200
# بررسی دادههای pillar
salt 'db-01' pillar.get postgresTop File: هدفگیری State ها
YAML
# /srv/salt/top.sls
base:
'*':
- common.users
- common.security
'role:webserver':
- match: grain
- nginx
'role:database':
- match: grain
- postgresقدرت واقعی SaltStack زمانی ظهور میکند که اجرای از راه دور را با مدیریت state و سیستم reactor ترکیب کنید — پلتفرمی که میتواند با واکنش به رویدادها و اعمال خودکار وضعیت مطلوب، زیرساخت شما را self-heal کند.
