Використання SaltStack With Pillars в Ubuntu 17.04

Хоча SaltStack є чудовим інструментом для одночасного виконання операцій на багатьох серверах, він також підтримує певні налаштування конфігурації для кожного хоста, що зберігаються в унікальному файлі, який далі називають «стовп». У цьому посібнику ми напишемо невелику формулу SaltStack для встановлення Nginx та автоматизації розгортання віртуальних хостів за допомогою стовпів.

Вимоги

  • Примірник Vultr під керуванням Ubuntu 17.04 (головний)
  • Два екземпляри Vultr під керуванням Ubuntu 17.04 (міньйони)

Майстер налаштування

Якщо ви тільки починаєте роботу і ще не налаштували свій майстер SaltStack, перегляньте цю статтю, в якій пояснюється, як розпочати роботу з SaltStack.

Формула

Ми починаємо зі створення папки для нашої формули, яка надалі містить файли, необхідні для операцій SaltStack над нашими слугами.

mkdir -p /srv/salt/nginx

Після створення папки ми можемо продовжити запис init.slsфайлу, який є важливою частиною кожної формули:

nginx:
  pkg:
    - installed

/etc/nginx/sites-enabled/virtualhosts.conf:
    file.managed:
        - source: salt://nginx/files/virtualhosts.jinja
        - template: jinja
        - user: root
        - group: root
        - mode: 655

  cmd:
    - run
    - names:
        - service nginx restart

Як ви, напевно, помітили, SaltStack використовує механізм шаблонів Jinja для створення динамічних файлів конфігурації. Це надає широкий спектр можливостей у наших файлах шаблонів конфігурації, таких як доступ до рідного коду Python або змінних налаштування тощо. Наступний крок складається зі створення шаблону для нашого virtualhosts.confфайлу, тоді як нам спочатку потрібно створити папку:

mkdir -p /srv/salt/nginx/files

Після створення папки ми можемо продовжити запис virtualhosts.jinjaфайлу:

{% for vhost in pillar['vhosts'] %}
server {
    listen {{ vhost['listenPort'] }};
    server_name {{ vhost['serverName'] }};
    root {{ vhost['documentRoot'] }};
    index {%- for index in vhost['indexFiles'] -%}{{ index }}{%- endfor -%};
    location / {
        try_files $uri $uri/ =404;
    }
}
{% endfor %}

Стовп

Після створення формули ми можемо продовжити і налаштувати нашу базу Pillar:

mkdir -p /srv/pillar/

Будь-які посилання на хости, що відповідають певному файлу стовпця, записуються у top.slsфайл у тому каталозі, який ми щойно створили. У нашому прикладі ми припускаємо, що з іменем хоста існують два міньйони, nginxwww1і nginxwww2тоді ми призначимо їм обидва унікальні файли стовпців:

base:
  'id:nginxwww1':
    - match: grain
    - nginxwww1
  'id:nginxwww2':
    - match: grain
    - nginxwww2

Далі ми продовжимо створення файлу стовпця для, nginxwww1тоді як ми створимо vhost, який прослуховує порт 81 для домену example.com, корінь документа /var/www/example_com/та файли індексу index.shtml:

vhosts:
    -
      listenPort: '81'
      serverName: 'example.com'
      documentRoot: '/var/www/example_com'
      indexFiles:
        - index.shtml

Ми продовжимо створення файлу стовпця для, nginxwww2тоді як ми створимо vhost, який прослуховує порт 82 для домену example2.com, корінь документа, /var/www/example2_com/а файли індексу будуть index.jsі index.css:

vhosts:
    -
      listenPort: '82'
      serverName: 'example2.com'
      documentRoot: '/var/www/example2_com'
      indexFiles:
        - index.js
        - index.css

Примітка: файли Pillar зберігаються всередині/srv/pillar/

Розгортання

Тепер ми можемо завершити нашу першу спробу зі стовпами, оновивши їх на наших слугах:

salt '*' saltutil.refresh_pillar

Після цього ми можемо запустити формулу SaltStack:

salt '*' state.sls nginx

Підтвердження

Після того , як формула SaltStack була запущена і завершена без будь - яких помилок, ми повинні бути в змозі бачити nginxна порт 81на nginxwww1і на порт 82на nginxwww2якості підтвердження.

Висновок

Цю досить легку, але вже потужну формулу SaltStack можна розширити, щоб додати підтримку HTTPS, можливо, за допомогою інтеграції Let's Encrypt, підтримки CGI або PHP серверів і всього, що ви також можете зробити вручну. Цей посібник мав дати вам основне уявлення про формули та стовпи SaltStack, які використовуються для розгортання файлів конфігурації. Приємної автоматизації!

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше