Використання 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, які використовуються для розгортання файлів конфігурації. Приємної автоматизації!


Як встановити Jenkins на CentOS 7

Як встановити Jenkins на CentOS 7

Jenkins — популярний інструмент CI (безперервна інтеграція) з відкритим кодом, який широко використовується для розробки, розгортання та автоматизації проектів. Ця стаття буде

Як встановити та налаштувати Concourse CI в Ubuntu 16.04

Як встановити та налаштувати Concourse CI в Ubuntu 16.04

Використання іншої системи? Вступ Постійна інтеграція – це практика розробки програмного забезпечення DevOps, яка дозволяє розробникам часто об’єднувати

Як встановити та налаштувати Ansible на Debian 9 для використання з Windows Server

Як встановити та налаштувати Ansible на Debian 9 для використання з Windows Server

Використання іншої системи? Ansible — інструмент з відкритим кодом для автоматизації завдань. Він керує конфігурацією ваших серверів Linux і Windows. Це працює

Як встановити та налаштувати GoCD на CentOS 7

Як встановити та налаштувати GoCD на CentOS 7

Використання іншої системи? GoCD — це система безперервної доставки та автоматизації з відкритим вихідним кодом. Він дозволяє моделювати складні робочі процеси, використовуючи його паралельний an

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

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

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

Як встановити та налаштувати Ansible на CentOS 7 для використання з Windows Server

Як встановити та налаштувати Ansible на CentOS 7 для використання з Windows Server

Використання іншої системи? Ansible — інструмент з відкритим кодом для автоматизації завдань. Він керує конфігурацією ваших серверів Linux і Windows. Це працює

Як встановити Drone CI на Ubuntu 18.04

Як встановити Drone CI на Ubuntu 18.04

Вступ Drone — це автоматизована платформа безперервного тестування та доставки, яка працює на вашій власній інфраструктурі. Дрон підтримує будь-яку мову, сервіс о

Балансувальники навантаження Vultr

Балансувальники навантаження Vultr

Що таке Load Balancer Балансувальники навантаження розташовані перед вашою програмою і розподіляють вхідний трафік між кількома екземплярами вашої програми. Fo

Як встановити Foreman на CentOS 7

Як встановити Foreman на CentOS 7

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

Як встановити SaltStack на CentOS 7

Як встановити SaltStack на CentOS 7

SaltStack, або Salt, — це популярне рішення для керування конфігурацією з відкритим вихідним кодом, яке можна використовувати для реалізації віддаленого виконання, керування конфігурацією, код

Як встановити Strider CD на Ubuntu 18.04

Як встановити Strider CD на Ubuntu 18.04

Вступ Strider CD — це платформа безперервного розгортання з відкритим вихідним кодом. Програма написана на Node.js і використовує MongoDB як бекенд сховища. Шрок

Використання диспетчера пакетів Chocolatey у Windows

Використання диспетчера пакетів Chocolatey у Windows

Вступ Chocolatey забезпечує керування пакетами, що спрощує адміністрування програмного забезпечення та залежностей у Linux у Windows. Можна швидко і легко

Створення знімків за допомогою Packer

Створення знімків за допомогою Packer

Що таке Пакер? Packer — це інструмент створення зображень сервера, розроблений HashiCorp. Обробка зображень сервера; або, як альтернатива, незмінна інфраструктура; є популярною альтернативою

Як встановити та налаштувати Concourse CI на CentOS 7

Як встановити та налаштувати Concourse CI на CentOS 7

Використання іншої системи? Вступ Постійна інтеграція – це практика розробки програмного забезпечення DevOps, яка дозволяє розробникам часто об’єднувати

Використання Chef-solo для налаштування програми Django в Ubuntu

Використання Chef-solo для налаштування програми Django в Ubuntu

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

Як встановити Foreman на Ubuntu 16.04 LTS

Як встановити Foreman на Ubuntu 16.04 LTS

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

Початок роботи з SaltStack в Ubuntu 17.04

Початок роботи з SaltStack в Ubuntu 17.04

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

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

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

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

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. Прочитайте цю статтю, щоб дізнатися більше