1. Огляд Puppet — це відкритий інструмент автоматизації конфігурації та розгортання програмного забезпечення, який простий у використанні та потужний, і який привертає все більше уваги, і багато великих ІТ-компаній зараз використовують Puppet для керування та розгортання програмного забезпечення в кластерах, наприклад, Google використовує Puppet для керування понад 6 000 настільними комп'ютерами Mac (дані 2007 року). Ця стаття головним чином ознайомляється з методом встановлення, архітектурою дизайну та методом використання ляльки.
2. Архітектура дизайну Puppet базується на архітектурі C/S. На стороні сервера зберігається весь конфігураційний код клієнтського сервера, який називається manifest in puppet. Після завантаження маніфесту клієнтом сервер можна налаштувати відповідно до маніфесту, наприклад, керування пакетами, користувачами та файлами.
Як показано на рисунку вище, робочий процес puppet виглядає так: (1) Клієнт-ляльник називає facter, а facter виявляє деякі змінні хоста, такі як ім'я хоста, розмір пам'яті, IP-адреса тощо. pupppetd надсилає цю інформацію серверу через SSL-з'єднання; (2) Серверний лялькар виявляє ім'я хоста клієнта, потім знаходить відповідну конфігурацію вузла в маніфесті і аналізує цю частину вмісту. Парсинг поділяється на кілька етапів: перевірка синтаксису та звітування про помилки, якщо синтаксис неправильний. Якщо синтаксис правильний, продовжуйте розбір, і результат парсінгу генерує проміжний «псевдокод», а потім надсилає псевдокод клієнту; (3) Клієнт отримує «псевдокод» і виконує його, а результат виконання надсилає на сервер; (4) Серверна сторона записує результат виконання клієнта у журнал. Є два моменти, які варто відзначити у процесі роботи PUPPET: по-перше, для забезпечення безпеки клієнт і майстер базуються на SSL та сертифікатах, і лише клієнт, автентифікований майстер-сертифікатом, може спілкуватися з головним сертифікатом; По-друге, puppet підтримуватиме систему в певному стані, який ви очікуєте, і підтримує її постійно, наприклад, виявляє файл і забезпечує його постійне існування, гарантує, що ssh-сервіс завжди увімкнений, якщо файл видалено або ssh-сервіс закрито, наступного разу, коли лялька буде запущена (за замовчуванням 30 хвилин), вона відтворить файл або запустить SSH-сервіс.
3. Встановлення програмного забезпечення Не рекомендується використовувати команду apt-get для встановлення, оскільки лялька, завантажена цією командою, має помилку. Його можна встановити безпосередньо з вихідного коду, а програмне забезпечення, яке потрібно встановити, — це ruby, facter і puppet.
3.1 Процедура встановлення Редагуйте /etc/host, щоб змінити ім'я хоста, оскільки puppet базується на сертифікаті і містить ім'я хоста у сертифікаті; Встановіть Ruby, Facter і Puppet на Master і Slave, а також використовуйте Ruby Install.rb для встановлення Facter і Puppet.
3.2 Структура каталогу після встановлення (1) Каталог встановлення Інсталяційна папка зберігається у /etc/puppet і проявляється у файлах маніфестів цього сховища каталогу. Інші виконувані файли під /user/sbin переважно включають: puppet: використовується для виконання незалежних файлів mainfests, написаних користувачем, таких як: Puppet -l /tmp/manifest.log manifest.pp puppetd: клієнтська програма, яка працює на керованому хості, наприклад: puppet –server servername –waitforcert 60 puppetmasterd: серверна програма, яка працює на керуючій машині, наприклад: Puppetmasterd –Debug Програма сертифікації Puppeta Puppet переважно використовується для автентифікації підлеглих сертифікатів, таких як: Перевірте раб для автентифікації: puppetca –list Сертифікуйте цих рабів: puppetca -s –a Puppetrun використовується для підключення до клієнта, змушуючи локальний конфігураційний файл запускатися, наприклад: Puppetrun -p 10 –Host Host1 –Host Host2 -T Remotefile -T WebServer (2) Конфігураційні файли puppet.conf Основний конфігураційний файл Puppet — /etc/puppet/puppet.conf для кореневих користувачів, а для звичайних користувачів — ~user/.puppet/puppet.conf Для конкретних параметрів конфігурації див. також:
http://docs.puppetlabs.com/references/stable/configuration.html#configuration-files fileserver.conf Конфігураційний файл файлового сервера ляльок. Використайте шлях конфігурації шляху до файлу та дозволяйте/забороняйте для налаштування дозволів доступу, див. http://docs.puppetlabs.com/guides/file_serving.html
3.3 Перевірити успішність встановлення Виберіть підлеглого для перевірки з майстром, припускаючи, що хост слейва є slave00, а хост господаря — masterhost, введіть на slave00: puppetd –test –server servername Потім подивіться на підлеглого для автентифікації на masterhost: Пуппетка –список Якщо це нормально, ви можете побачити, як slave00 підписує сертифікат раба: пуппетка -с -а Таким чином, slave00 пройшов перевірку сертифіката і може взаємодіяти з майстром далі. Запишіть файл site.pp у каталог /etc/puppet/manifests masterhost, який звучить так: вузол за замовчуванням { файл { "/tmp/test": content=>"привіт", режим => 0644;
}
} Водночас введіть puppetd –test –server server name у slave00, перевірте папку /tmp у slave00 і згенеруйте новий файл-тест, вміст якого — hello, а дозвіл файлу — -rw-r—r-. Таким чином, встановлення ляльки доводиться успішним
|