Puppet

Puppet (маріонетка англійською) — багатоплатформовий клієнт-серверний застосунок, який дозволяє централізовано керувати конфігурацією операційних систем та програм, встановлених на кількох комп'ютерах. Puppet написано мовою програмування Ruby.[2]

Puppet
Тип управління конфігураціями
Розробник Puppet Labs
Перший випуск 2005 (2005)
Стабільний випуск 4.0 (15 квітня 2015 (2015-04-15))
Версії 7.10.0 (16 серпня 2021)[1]
Репозиторій github.com/puppetlabs/puppet
Операційна система GNU/Linux, Unix-like, Windows
Мова програмування Ruby
Стан розробки активний
Ліцензія Apache для >2.7.0;
GPL для попередніх версій.
Вебсайт www.puppetlabs.com

 Puppet у Вікісховищі

Puppet дозволяє просто налаштувати і згодом швидко керувати майже кожною мережею на базі будь-якої операційної системи Red Hat, CentOS, Fedora, Debian, Ubuntu, OpenSUSE , Solaris, BSD, Mac OS X і Microsoft Windows (через cygwin).[2][3]

Система Puppet досить поширена у світі IT, де у своїй роботі її використовують такі компанії як Google, Fedora Project, Стенфордський університет, Red Hat, Siemens IT Solution, Badoo[4] і SugarCRM.[2]

Puppet дозволяє автоматизувати роботу з адміністрування групи серверів, уможливлюючи централізоване керування користувачами, установку пакетів, оновлення конфігурації тощо. Вузли мережі, керовані за допомогою Puppet, час від часу опитують сервер, отримують і застосовують зміни конфігурації внесені адміністратором. Для описання конфігурації вживається особлива декларативна мова.

Схема роботи Puppet - клієнт-серверна, хоча підтримується і варіант роботи без сервера з обмеженою функціональністю. Використовується pull-модель роботи: за замовчуванням раз в півгодини клієнти звертаються до сервера за конфігурацією і застосовують її.

Наприклад у аналогічного за призначенням продукту Ansible, використовується push-модель: адміністратор ініціює процес застосування конфігурації, самі по собі клієнти нічого не застосовуватимуть.

При мережевій взаємодії використовується двостороннє TLS-шифрування: у сервера і клієнта є свої закриті ключі і відповідні їм сертифікати. Щоб підключити агент до основного сервера, на агенті слід сгенерувати RSA-ключ SSL, та зробити запит до сервера на підпис ключа. В результаті, на сервері з'явиться відповідний запит на підпис сертифікату, після чтого його слід підписати. Після чого захищений SSL зв'язок встановлено. Зазвичай сервер випускає сертифікати для клієнтів, але в принципі можливо використання і зовнішнього CA. Завдяки цьому алгоритму взаємодії Puppet може працювати без ssh протоколу, на відміну від Ansible.

Приклад файлу маніфеста manifest.pp:

node 'server1.testdomain' {            # блок конфигурації, стосується агена server1.testdomain
    file { '/etc/issue':               # описуємо файл /etc/issue
        ensure  => present,            # файл має існувати
        content => 'Debian GNU/Linux', # файл містить текст
        owner   => root                # власник файлу root 
    }
}

Файл manifest.pp описує, що на агенті server1.testdomain має існувати файл /etc/issue з текстом 'Debian GNU/Linux'.

Агент server1.testdomain протягом пів години звернеться до сервера за конфігурацією і в результаті її застосування буде створено вказаний вище файл.

Література

Виноски

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.