Обновить
0

Puppet *

Система управления конфигурациями

Сначала показывать
Порог рейтинга
Уровень сложности

Установка и настройка Puppet + Foreman на Ubuntu 14.04 (пошаговое руководство)

Время на прочтение8 мин
Охват и читатели28K
image Доброго времени суток, жителям Хабра!

Когда число управляемых серверов достигает нескольких десятков, а то и сотен, приходится искать решение по автоматической настройке и управлению таким парком. Тут на помощь приходит Puppet. Почему Puppet? Puppet кроссплатформенный, имеет богатое сообщество, имеет множество готовых модулей (4800+), имеет Enterprise версии. Все эти плюсы не дают усомнится в мощи данного продукта. Но управлять из консоли таким «комбайном» не так просто. Потому для удобного управления и настройки Puppet был разработан Foreman. Далее установка и настройка этой связки на примере задачи управления SSH-ключами.
Читать дальше →

Почему мы уверены в том, что развернули

Время на прочтение6 мин
Охват и читатели14K
image
Часто бывает, когда что-то не работает. И никто не хочет, чтобы что-то не работало по его вине. В контексте больших инфраструктур и распределенных приложений ошибка конфигурации может быть фатальной.

В статье я покажу как правильно тестировать окружение для приложения, какие инструменты использовать, приведу примеры удачного и целесообразного тестирования.

Статья будет интересна командам, которые практикуют DevOps или SRE, ответственным Dev, и прочим хорошим людям.
Читать дальше →

CodingFuture + Puppet. Часть VI: актуальные чёрные списки и защищённый стук

Время на прочтение7 мин
Охват и читатели5.5K

use cases


Вкратце:


  1. Защита сервисов и открытие портов по стуку криптографически стойким и не воспроизводимым Single Packet Authorization (SPA) с fwknop 2.6.9+.
  2. Динамически настраиваемое обновление чёрных списков с All Cybercrime IP Feeds by FireHOL.
  3. Полноценная поддержка ipset в cfnetwork.
  4. Поддержка собственных чёрных списков.
  5. Типичные варианты применения.

Читать дальше →

RubyMine 2016.3: Отладка в режиме attach, обновленная поддержка Puppet, синхронизация SDK через rsync

Время на прочтение4 мин
Охват и читатели5K
Привет, хабравчане!

В ноябре мы анонсировали обновленные IntelliJ IDEA, CLion, PyCharm и DataGrip, а эта статья — для Ruby/Rails-разработчиков. Мы выпустили RubyMine 2016.3, заключительное обновление нашей IDE для Ruby и Rails в этом году! Обновление доступно для скачивания и бесплатного 30-дневного ознакомления на нашем сайте.


Читать дальше →

Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть III. Настройка puppet-db с помощью Puppet

Время на прочтение6 мин
Охват и читатели4.5K
Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть I. Подготовительная
Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть II. Настройка Puppet Masters

Настройка puppet-db с помощью Puppet


Зададим настройки для ноды puppet-db в репозитории puppet-environments.git.

В случае стандартного размещения datadir для postgresql


В репозитории puppet-environments.git в файл manifests/nodes.pp добавим настройки puppet-db:

node default {

}
node puppet-db {
  class { 'puppetdb':
    listen_addresses => '0.0.0.0',
  }
}
Читать дальше →

Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть II. Настройка Puppet Masters

Время на прочтение11 мин
Охват и читатели6.2K
Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть I. Подготовительная
Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть III. Настройка puppet-db с помощью Puppet

Настройка серверов puppet


Общие настройки серверов. На серверах puppet-master01, puppet-master02 и на puppet-db добавим репозитории puppetlabs:

wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
sudo apt update

На серверах puppet-master01, puppet-master02 установим puppet-сервер:

sudo apt install puppetserver

Проверим адрес, порт и требование авторизации в файле /etc/puppetlabs/puppetserver/conf.d/webserver.conf, по умолчанию должно быть:

client-auth: want
ssl-host: 0.0.0.0
ssl-port: 8140

На сервере puppet-db достаточно puppet-агента:

sudo apt install puppet-agent

Остальное на puppet-db установим с помощью Puppet.
Читать дальше →

CodingFuture + Puppet. Часть V: базы данных (cfdb)

Время на прочтение8 мин
Охват и читатели6.4K

cfdb use cases


Вкратце:


  1. cfdb — модуль развёртывания и автонастройки узлов и кластеров баз данных и доступа к ним с высокой доступностью и защитой от сбоев.
  2. Как proof-of-concept поддерживаются MySQL и PostgreSQL на базе Percona Server/XtraDB Cluster и официальных сборок PostgreSQL+repmgr.
  3. Изоляция ресурсов на базе cgroups, интеграция с настройками сетевого фильтра через модуль cfnetwork и строгий контроль доступа средствами СУБД.
  4. Запись на один узел для минимизации конфликтов и распределение нагрузки для read-only доступа.
  5. Автоматическая проверка здоровья кластера и фактической осуществимости доступа.
  6. Ручное и автоматическое локальное резервное копирование, автоматизированное восстановление данных.
  7. Поддержка автоматической миграции уже существующих баз данных

Читать дальше →

Валидация Fuel-плагинов в рамках Mirantis Unlocked validation program. Оно вам надо?

Время на прочтение6 мин
Охват и читатели2.5K
Авторы: Евгения Шумахер, Илья Стечкин

Всем привет. Да, если вы любите деньги, то оно вам надо. Дальше мы расскажем, что такое “валидация плагинов” и почему это полезно для бизнеса. Если у вас нет бизнес-интересов, а программирование — способ самовыражения, то дальше можете не читать.
Читать дальше →

Пример программирования в Puppet версии 3.8 с использованием Hiera и R10K

Время на прочтение9 мин
Охват и читатели14K
We Need To Go Deeper.
Inception.


Здесь я хочу описать примеры/приёмы программирования. Причина всё та же: в интернете должно быть больше доков. В моей прошлой статье было рассказано про установку и нaстройку Puppet версии 3.8 на примере Centos 6.5. Там же бы простейший пример, чтобы проверить работоспособность связки клиент-сервер. Теперь посмотрим как это можно усложнить и для чего это надо.

Читать дальше →

CodingFuture + Puppet. Часть IV: централизованное управление (cftotalcontrol)

Время на прочтение10 мин
Охват и читатели5.8K

Вкратце:


  1. cftotalcontrol — модуль создания среды специальной учётной записи с SSH доступом к другим узлам инфраструктуры и выполнения массовых рутинных задач параллельно.
  2. Отвлечённая от реализации теория организации безопасного и контролируемого доступа к инфраструктуре.
  3. Описывается практическое применение конкретного решения

Читать дальше →

CodingFuture + Puppet. Часть III: установка Puppet Server (cfpuppetserver)

Время на прочтение11 мин
Охват и читатели11K

Вкратце:


  1. cfpuppetserver — модуль автоматической настройки Puppet Server + PuppetDB + PostgreSQL + r10k + librarian-puppet
  2. Краткое введение в Puppet
  3. Описывается изначальное развёртывание с нуля

Читать дальше →

Поняв Docker

Время на прочтение14 мин
Охват и читатели223K

Если вы еще никогда не поддерживали чужие приложения, или пусть даже свои, но таких размеров, что уже не помещаются в одной голове, то прошу вас расслабиться, откинуться на спинку кресла и воспринимать прочитанное как поучительную сказку с надуманными проблемами, забавным сюжетом и очевидным счастливым концом. В противном случае, если реальный боевой опыт у вас имеется, добро пожаловать в ад, но с IDDQD и IDKFA.


К вашему сведению! В этой статье мы рассматриваем само явление docker-контейнеров, а не составляем список микросервисов, которые гнездятся внутри. Этим мы займемся в следующей серии, во имя справедливости!


UPDATE: пришлось заменить «докер» на «docker», иначе статья не ищется. Заранее прошу прощения за все «docker'ы» в тексте. Селяви.


Что мы имеем сегодня


  • Зоопарк дубовых VPS-хостингов.
  • Дорогие IaaS и PaaS с гарантированным vendor lock in.
  • Уникальные сервера-снежинки.
  • Ворох устаревших зависимостей на неподдерживаемой операционке.
  • Скрытые связи частей приложения.
  • Незаменимый админ полубог на скейтборде.
  • Радуга окружений: development, testing, integration, staging, production.
  • Генерация конфигов для системы управления конфигами.
  • Feature flagging.
docker run docker

CodingFuture + Puppet. Часть II: доступ и стандартное окружение (cfauth + cfsystem)

Время на прочтение8 мин
Охват и читатели7K

Вариант развёртывания Linux систем на базе Puppet 4. Часть II: доступ и стандартное окружение (cfauth + cfsystem)


Вкратце:


  1. cfauth — настраивает сервис SSH, админскую учётную запись, sudo, пароль суперпользователя
  2. cfsystem — настройка: APT, временной зоны, отправки системных писем, синхронизация времени, расширенный список стандартных пакетов
  3. Все модули интегрированы с модулем сетевого фильтра cfnetwork и не требуют дополнительных настроек

Читать дальше →

Ближайшие события

«Крылья, лапы и хвосты» нашего Linux-хостинга, часть 1: как мы автоматизировали развёртывание инфраструктуры

Время на прочтение5 мин
Охват и читатели10K
— Эй, птичка, летим со мной, там столько вкусного!!!
— Столько? [разводя руки]
— у-у [мотая головой и соединяя руки]


Одна из основных проблем, которая встаёт перед провайдерами shared-хостинга, ‒ это изолирование пользователей. Было бы, конечно, проще и надёжнее создавать для каждого пользователя контейнер, но это съедает лишние ресурсы и здорово уменьшает плотность упаковки сайтов на одну машину (я исхожу из комфортной для клиента упаковки, а не вариант “селёдки в бочке”, который всё ещё встречается на ультрадешёвых хостингах, когда открытие даже статичной страницы сайта клиента заметно тормозит из-за нагрузки на веб-бокс). Скажу больше, нередки ситуации, когда один клиент, случайно или намеренно, занимает слишком много ресурсов, в ущерб всем остальным.

Решить эти задачи, не тратя ресурсы серверов впустую, мы и намеревались при помощи CloudLinux. CloudLinux уже упоминался на Хабре. Это RHEL-совместимый дистрибутив, базирующийся на ядре OpenVZ. При помощи хитрых компонентов (CageFS и LVE) и модифицированного ядра позволяет ограничивать пользователей в ресурсах (процессор память диск) без создания контейнеров.
Читать дальше →

Установка и нaстройка Puppet версии 3.8 на примере Centos 6.5

Время на прочтение8 мин
Охват и читатели14K
Puppet, Chef, Ansible — это так называемые системы управления конфигурациями, которые можно часто встретить в зарубежных IT вакансиях типа Server/DevOps Admin. Фактически же это мощные инструменты которые могут полностью настроить нулёвый сервер или же достаточно быстро массово перенастроить набор из 1-100+ серверов. Работа с пакетами, с командной строкой, файлами настроек, доступно всё.

Общий обзор можно прочитать в публикации «Как стать кукловодом».

Собственно к написанию этой начальной статьи для Puppet меня сподвигло крайне скудное описание во встречающихся в интернете результатах. И даже при использовании официальной документации умудряешься наткнуться на кучу грабель и подводных камней и получить не то, что ожидал.

Причина использования ветки 3.8, вместо 4.3 заключается в использовании именно этой версии на «моих» серверах из-за наличия именно этих пакетов в репо. Платный вариант Enterprise также не рассматривается, т. к. я с ним не работал. Причина использования Centos – он достаточно широко распространён, включая доработанные версии от Amazon.

Для локальных тестов можно использовать две виртуалки на VirtualBox под CentOS-6.5-x86_64.

Читать дальше →

Управление конфигурацией в программном проекте

Время на прочтение6 мин
Охват и читатели14K
Сначала все было просто. Молодость, задор. Проект пилили несколько программистов. Все кодили, по мере готовности копировали код на общую виртуалку, изредка попинывали админа на предмет доставить какой-нибудь пакет или поправить конфиг. Как только понимали, что все, шли делать релиз. Сначала backup, потом старшой собирал всю свою крутизну в кулак, копировал проект на production сервер и, при содействии админа, добивался, чтобы оно там заработало. Команда выжидала два дня, убеждалась, что очереди из благодарных пользователей с топориками не образовалось, и, с чувством гордости за выполненную работу, шла пить пиво.

Потом все чуть-чуть повзрослели. Появились и начали как-то использоваться redmine/jira/etc, git/svn, jenkins, spinx-docs/rubydoc/doxygen/etc, wiki, unit тесты. Появились подпроекты, стенд подрос. Production сервачков стало несколько. Админ поднял salt/puppet/etc, мониторинг, сидит в своем логове как паук, правит конфиги на salt-master и дергает оттуда state.highstate.
А дальше что?

Некоторые приемы YAML

Время на прочтение3 мин
Охват и читатели86K
В этом посте я расскажу про не очень известные особенности языка YAML.

Пролог


Системное администрирование за последние несколько лет несколько изменилось. Вместо маленьких скриптиков на bash у нас теперь огромные проекты системы конфигурации. Puppet с миллионом модулей готов «отконфигурять» для нас любую машинку, все поставить и все настроить. И конечно же, венчает это торжество автоматизации Hiera — система управления системой управления.

В начале идея выделения всех конфигурационных данных в иерархическую структуру и редактирования красивых и удобных YAML файлов кажется невероятно соблазнительной, особенно если вспомнить множество форматов конфиг-файлов, создатели которых, кажется, участвовали в соревнованиях по оригинальности мышления. Однако очень уже скоро мы оказываемся с тысячами строк YAML. Давайте посмотрим как можно использовать YAML чтобы наши конфигурации было легче читать и поддерживать.
Читать дальше →

Централизованное управление конфигурациями: Puppet + Foreman. Часть ІI

Время на прочтение3 мин
Охват и читатели11K
Это вторая часть из серии статей о связке Puppet + Foreman, в ней будет рассмотрено следующее:

* Создание групп хостов
* Добавление хоста в группу
* Применение манифестов на группу хостов
* Автоподпись сертификатов
* Автоматическое распределение хостов по группам
Читать дальше →

Централизованное управление конфигурациями: Puppet + Foreman. Часть І

Время на прочтение5 мин
Охват и читатели47K
В этой статье будет рассмотрена установка и настройка связки Puppet + Foreman для централизованного управления конфигурациями.

Для сервера, на котором будет установлена связка Puppet + Foreman, будет использоваться виртуальная машина (1 CPU, 2 Gb RAM, 20Gb HDD), в качестве клиентов будут физические ПК на которых установлена Ubuntu. Конфигурация моего виртуального сервера с указанными выше характеристиками позволяет без проблем обслуживать 500 клиентов (можно и больше).

Установка Puppet довольно простая (все последующие команды выполняются от root):

Установка Puppet
wget apt.puppetlabs.com/puppetlabs-release-trusty.deb
dpkg -i puppetlabs-release-trusty.deb

Этими командами мы скачиваем deb пакет с сайта разработчиков puppet и устанавливаем его. Данный пакет puppetlabs-release-trusty.deb при установке создает файл /etc/apt/sources.list.d/puppetlabs.list в котором прописаны репозитории puppet, а также импортируется gpg ключ которым подписан репозиторий puppet. Сам puppetmaster мы не устанавливаем, он будет установлен автоматически при установке Foreman.

На этом установка Puppet закончена, приступим к установке веб-интерфейса Foreman:
Читать дальше →

Как перестать настраивать и начать жить или настройка Puppet в школьном классе на 25 компьютеров

Время на прочтение7 мин
Охват и читатели30K
Можно настраивать компьютеры по одному, но иногда их становится слишком много...



Так уж вышло, что я устроился преподавателем на один бесплатный курс для школьников по разработке под Android, спонсируемый одной крупной корпорацией, и, естественно, мне потребовалось осваивать соответствующую технику в количестве 25 ноутбуков, 25 планшетов, 2 стационарных компьютеров и сенсорной панели. До недавнего времени ноутбуки использовались с ОС Windows 8.1, но мало кого устраивала производительность и стабильность работы этой ОС при разработке в Eclipse и Android Studio. После одного года под Windows, наше руководство решило все ноутбуки перевести на Xubuntu 14.04, чтобы разрешить эти сложности. Был подготовлен образ, настроенный под конкретную модель ноутбуков, что у нас использовалась, и со всеми необходимыми программами. Накатил и работай. Одна беда — не было предусмотрено никакого решения для централизованного управления конфигурацией. На мой логичный вопрос по этому поводу был дан ответ, что внедрение подобной системы усложняет процедуру установки Linux на ноутбуки и, поскольку в образе уже все сделано как надо, никаких изменений после его установки вносить не понадобится. (ох уж эти оптимисты!)
Читать дальше →

Вклад авторов