Foreman - це інструмент управління повним життєвим циклом серверів. Проект розпочав 6 років тому Ohad Levy, співробітник RedHat в Ізраїлі. Проект розвивається дуже активно та має обширне співтовариство. По замовчуванню працює з Puppet, з певними зауваженнями також може інтегруватись з Chef, Salt, а через систему плагінів і з Ansible.
Під управлінням повним життєвим циклом вузла розуміються такі етапи:
Щоб зрозуміти як Foreman забезпечує виконання цих етапів спочатку розглянемо його складові:
Під управлінням повним життєвим циклом вузла розуміються такі етапи:
- Установка - початкова установка операційної системи.
- Конфігурація - установка та налаштування усього необхідного програмного забезпечення та налаштування самої операційної системи (додавання користувачів, налаштування мережевих інтерфейсів і т.п.)
- Оновлення, Управління та Аудит - установка виправлень помилок софту, додавання змін до конфігурацій діючих програм, моніторинг вузлів на протязі усього життєвого циклу.
Щоб зрозуміти як Foreman забезпечує виконання цих етапів спочатку розглянемо його складові:
- Веб-панель Foreman - панель для зручного адміністрування Puppet-модулями, групами та ін.
- API - програмний інтерфейс Foreman.
- DB - база даних Foreman. У якості бази може виступати як PosgreSQl, так і MySQL.
- LDAP/AD - користувачі можуть авторизуватись через віддалені бази LDAP чи Active Directory, що дуже зручно навіть для відносно великих компаній.
- Smart Proxy (DHCP, DNS, TFTP, CA) - група сервісів Foreman, що можуть перебувати як на одному вузлі, так і на різних. Відповідають за різні дії: provisioning нових серверів, збереження та підписання сертифікатів та ін. Таких проксі може бути декілька, наприклад для зв'язку із різними підмережами.
- Puppet Master - майстер, що надає конфігурації за іменем хосту Puppet-агента. Foreman-інсталятор налаштовує майстер на роботу через Apache та Passenger.
- Puppet Agents - агенти, що мають бути установлені на серверах, що адмініструються за допомогою Foreman.