Как удалить puppet полностью linux

Управление сертификатами Puppet 4

Puppet – это инструмент управления конфигурациями, который позволяет автоматизировать оркестровку, настройку и управление инфраструктурой. Обычно Puppet используется в режиме мастер-агент, где мастер-сервер управляет агентами-нодами и отвечает за их настройку. Мастер и подчиненные ему ноды взаимодействуют по HTTPS, а для этого нужны валидные SSL-сертификаты. Мастер Puppet выступает в роли центра сертификации и подписывает запросы нод.

Это краткое руководство научит вас управлять сертификатами с помощью команды puppet cert.

Примечание: Это руководство – простая и удобная шпаргалка. Выполнять все действия подряд необязательно. Вы можете перейти к любому интересующему вас разделу.

Если путь к puppet не указан в настройках, вам придётся постоянно указывать его в командах.

Список запросов на подпись сертификата

Новый агент отправляет мастеру Puppet запрос на подпись сертификата сразу после своего запуска. Просмотреть эти запросы можно с помощью команды puppet cert list.

Просмотр всех запросов

Чтобы просмотреть все поступившие запросы (подписанные и неподписанные), используйте флаг –all:

sudo puppet cert list —all

Если сертификат подписан, в начале строки будет стоять +. Например:

+ «host1.example.com» (SHA256) 51:D8:7A:EB:40:66:74:FD:0A:03:5D:35:AA:4D:B3:FA:35:99:C2:A8:C9:01:83:34:F6:16:60:BB:46:1F:33:3F
«host2.example.com» (SHA256) 3C:A9:96:3A:8D:24:5F:25:DB:FF:67:B5:22:B1:46:D9:89:F1:75:EC:BA:F2:D6:87:70:0C:59:97:11:11:01:E3
+ «puppet.example.com» (SHA256) 12:32:47:18:D1:12:85:A6:EA:D4:51:9C:24:96:E2:8A:51:41:8D:EB:E8:7C:EB:47:94:B0:8B:16:16:51:6A:D1 (alt names: «DNS:puppet», «DNS:puppet.localdomain», «DNS:puppet.example.com»)

Сертификаты host1 и puppet были подписаны, а host2 – нет.

Просмотр неподписанных сертификатов

Чтобы иметь возможность взаимодействовать с нодой, сервер Puppet должен подписать отправленный ею сертификат. Просмотреть неподписанные сертификаты можно с помощью команды:

sudo puppet cert list

Команда вернёт примерно следующее:

«host2.example.com» (SHA256) 9D:49:DE:46:1C:0F:40:19:9B:55:FC:97:69:E9:2B:C4:93:D8:A6:3C:B8:AB:CB:DD:E6:F5:A0:9C:37:C8:66:A0

Как видите, в начале строки нет символа +, значит, сертификат не был подписан сервером.

Подпись сертификатов

Подпись определённого сертификата

Чтобы подписать один конкретный сертификат, нужно указать имя хоста ноды, которая отправила его:

puppet cert sign host2.example.com

Notice: Signed certificate request for host1.example.com
Notice: Removing file Puppet::SSL::CertificateRequest host2.example.com at ‘/etc/puppetlabs/puppet/ssl/ca/requests/host1.example.com.pem’

Подпись всех сертификатов

Чтобы подписать все поступившие сертификаты, введите:

sudo puppet cert sign —all

Отзыв сертификатов

В дальнейшем вы можете удалить ноду из инфраструктуры или изменить мастер-сервер. В этом случае нужно будет отозвать сертификат ноды. Для этого используйте команду clean:

sudo cp -R /etc/puppetlabs/puppet/ssl/ /root/

Примечание: Прежде чем отзывать сертификат, рекомендуется создать его резервную копию.

Отзыв определённого сертификата

Чтобы отозвать сертификат конкретной ноды, укажите в команде её имя хоста.

sudo puppet cert clean host1.example.com

Отозвав сертификат, перезагрузите мастер Puppet, чтобы обновить настройки.

sudo service puppetserver reload

Если вы снова запустите эту ноду, она отправит мастеру новый сертификат, который можно подписать с помощью команды puppet cert sign.

Чтобы немедленно отправить запрос, введите:

sudo puppet agent —test

Отзыв нескольких сертификатов

Puppet не поддерживает флаг –all для удаления сертификатов. Чтобы удалить несколько сертификатов одновременно, укажите имена хостов их нод через пробел:

sudo puppet cert clean host1.example.com host2.example.com . . .

Отозвав сертификат, перезагрузите мастер Puppet:

sudo service puppetserver reload

Заключение

Данное руководство предлагает вам список общих команд для управления сертификатами Puppet. Получить полный список опций можно здесь.

Источник

Операционные системы Astra Linux

Оперативные обновления и методические указания

Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).

1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

Читайте также:  Lumia windows phone или android

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

  • реализации и совершенствования функциональных возможностей;
  • поддержки современного оборудования;
  • обеспечения соответствия актуальным требованиям безопасности информации;
  • повышения удобства использования, управления компонентами и другие.

Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:

  1. инструкций и методических указаний по настройке и особенностям эксплуатации ОС, содержащих сведения о компенсирующих мерах или ограничениях по примене- нию ОС при эксплуатации;
  2. отдельных программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, инструкций по их установке и настройке, а также информации, содержащей сведения о контрольных суммах всех файлов оперативного обновления;
  3. обновлений безопасности, представляющих собой файл с совокупностью программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, а также информации, содержащей сведения о контрольных суммах всех файлов обновлений безопасности, указания по установке, настройке и особенностям эксплуатации ОС с установленными обновлениями безопасности.

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

Источник

linux-notes.org

Puppet — кроссплатформенное клиент-серверное ПО, которое позволяет централизованно управлять конфигурацией ОС и утилит, которые установлены на разных серверах. Многие большие компании используют puppet для своих целей.

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

Puppet выпускается в двух вариантах: Puppet Enterprise и open source Puppet. Он работает на большинстве дистрибутивов Linux, на разных платформах UNIX и Windows.

Паппет терминология.

  • Facts: Паппет агент на каждом узле отправляет данные о состоянии ноды ( которые называются фактами) на сервер с puppet-master-ом.
  • Catalog: Сервер с паппет-мастером использует факт чтобы скомпилировать подробные данные о том, как должен быть сконфигурирован узел ( это так званый каталог) и отправить его обратно на паппет-агент. Паппет-агент вносит любые изменения в catalog. Puppet-agent может симулировать данные изменения (имеется опция — ‘—noop’) для того, чтобы провести тесты.
  • Report: Каждый паппет-агент отправляет отчет на паппет-масте с указанием любых изменений, внесенных в конфигурацию.
  • Report Collection: Открытое puppet API которе может быть использовано для отправки данных. Таким образом, инфраструктура может использоваться совместно с другими командами.

Особенности Puppet

  • Разработан таким образом, что он предотвращает дублирование выполнение запущенных манифестов.
  • Готовый к использованию инструмент.
  • Мощный Framework.
  • Упрощаете выполнение рутинных задач системного администратора.
  • Помогает в управлении физическими и виртуальными устройствами, а также облаками.
  • 192.168.130.10 puppet-server
  • 192.168.13.207 puppet-agent

Установка Puppet в Unix/Linux

Puppet в репозиториях состоит из нескольких пакетов, puppet-сервер и puppet-клиент — это 2 основных пакета которые потребуются.

Паппет поддерживает 2 режима использования:

  • Standalone Mode — это когда устанавливается на каждую из машин puppet-server и puppet-agent и он провиженит все дело на одной только ноде. Все манифесты, все настройки будет только на одном сервере. Можно запускать по cron.
  • Master-Agent — это когда у вас имеется puppet-server и установленные puppet-agent-ы на других машинах. Puppet-агент периодически отправляет факты на puppetmaster и запрашивает каталог. Puppetmaster компилирует и возвращает каталог конкретного узла, используя источники информации, к которым он имеет доступ.

Установка Puppet в Debian/Ubuntu

Добавляем репозиторий, в зависимости от вашего типа ОС, например:

Где, VERSION — версия Debian/Ubuntu. Например, — trusty, jessie,wheezy и так далее.

Данный репозиторий содержит puppet4, и если вы хотели бы установить 5-ю версию ПО (на данный момент самая последняя), то стоит использовать:

Где, VERSION — версия Debian/Ubuntu. Например, — trusty, jessie,wheezy и так далее.

Установка puppet-server в Debian/Ubuntu

Для установки puppetserver выполните:

По умолчанию Puppet-server настроен на использование 2 ГБ ОЗУ. Вы должны настроить этот параметр в зависимости от того, насколько свободна память вашего сервера и сколько узлов он будет менеджить.

Затем, найдите строку JAVA_ARGS и используйте параметры -Xms и -Xmx, чтобы установить распределение памяти. Например, если вы хотите использовать 4ГБ памяти, строка должна выглядеть так:

Сохраняем и закрываем файл.

Если вы не предполагаете использовать DNS, вы можете добавить записи в файл на сервере и клиенте. Открываем файл:

Прописываем имя для сервера:

Смотрим какой хостнейм:

Стоит прописать нужный PATH, для этого открываем:

Чтобы изменения вступили в силу, выполните:

Читайте также:  Openvpn linux ����������� �� ������

Теперь можно запустить Puppet-server с помощью этой команды:

Добавляем паппет в автозагрузку ОС:

Убедимся что он работает:

Так же, можно запустить puppetmaster без демона:

После чего, можно использовать паппет. Например, можно посмотреть версию puppet-server можно вот так:

Puppet Server запущен, но он еще не управляет агентами. Сейчас перейдем к этому шагу.

Установка puppet-agent в Debian/Ubuntu

Стоит прописать нужный PATH, для этого открываем:

Чтобы изменения вступили в силу, выполните:

Для автозагрузку агента при старте ОС, используйте:

Теперь можно запустить Puppet-server с помощью этой команды:

Установка Puppet в CentOS/Fedora/RedHat

Нужно подготовить сервер к использованию…

И так, можно подключить репозиторий EPEL — включить EPEL репозиторий на CentOS и потом, выполним поиск пакетов:

Но лучше всего, использовать уже готовый репозиторий с официального сайта.

Смотрим какйо тип ОС имеется в системе, для этого можно выполнить:

И потом выбираем версию ОС….

У меня CentOS 7 и я буду приводить примеры именно для нее. Но это не сильно существенно!

Установка puppet-server в CentOS/Fedora/RedHat

Устанавливаем сам puppet-server:

Выставим ограничение по использованию RAM в puppet:

Затем найдите строку JAVA_ARGS и используйте -Xms и -Xmx параметры , чтобы установить распределение памяти. Например, если вы хотите использовать 4 ГБ памяти, строка должна выглядеть так:

PS: У меня, нет сколько RAM (т.к я использую паппет для тестов) и по этому, я выделю 512Мб:

АХ ДА, ЭТО НУЖНО ДЛЯ PUPPET 4 (насчет 5-го я не уверен), Т.К ИСПОЛЬЗУЕТСЯ JAVA ВНУТРИ PUPPET.

Данный сервер, написан на рубене, по этому — он тоже поставится (вместе с зависимостями).

Если вы не предполагаете использовать DNS, вы можете добавить записи в файл на сервере и клиенте. Открываем файл:

Прописываем имя для сервера:

Смотрим какой хостнейм:

Запускаем сервер с паппетом:

Убедимся что он работает:

Так же, можно запустить puppetmaster без демона:

Если используете puppet 4, стоит прописать нужный PATH, для этого открываем:

Чтобы изменения вступили в силу, выполните:

После чего, можно использовать паппет. Например, можно посмотреть версию puppet-server можно вот так:

Так же, можно прогнать тест:

Для обновления сервера, используйте следующую команду:

-===Добавляем правило — iptables ===-

Если используете iptables, то пропишем правило:

И еще одно (если его нет):

После чего, выполняем сохранение:

Добавляем в автозапуск:

И чтобы проверить, выполните:

-===Добавляем правило — systemd===-

Посмотреть все текущие настройки можно выполнив следующую команду:

Для каждой опции, можно выводить значение — это можно использовать следующим образом:

Пока что сервер настроили и переходим к установке агентов.

Установка puppet-agent в CentOS/Fedora/RedHat

Puppet-agent должен быть установлен на сервер, который будет управлять puppet-master (puppet-server).

На каждом клиенте Puppet добавьте запись о сервере + хостнейм для нод с клиентом:

Проверяем наpuppet-анегте имя хоста:

Так же, если используете puppet 4, стоит прописать нужный PATH, для этого открываем:

Чтобы изменения вступили в силу, выполните:

После чего, можно использовать паппет. Например, можно посмотреть версию puppet-server можно вот так:

Теперь, когда агент Puppet установлен, запустите его с помощью этой команды:

После этого, он будет запускаться автоматически, после старта ОС.

Проверяем, запущен ли он:

Добавляем в автозапуск:

Для обновления клиента, используйте команду:

Теперь проверим как всё работает.

Установка Puppet на Mac OS X

Пока что не было необходимости в этом.

Установка Puppet на FreeBSD

Пока что не было необходимости в этом.

Настройка Puppet в Unix/Linux

Давайте настроим сие чудо.

Настройка puppet-agent-а в CentOS/Fedora/RedHat

Так же, настраиваем puppet-agent-ы:

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

В первый раз, когда puppet-agent запускается, он отправит запрос на подпись сертификата в puppet-server. Прежде чем Puppet-server сможет взаимодействовать с puppet-agent-ом и управлять им, он должен подписать сертификат конкретного агента.

Можно посмотреть некоторые пути к конфигам следующим образом:

Настройка puppet-server в CentOS/Fedora/RedHat

Теперь как уже имеется puppet-server (он же, puppetmaster) и ноды с puppet-agent-ами, можно кое-что настроить еще.

И так, чтобы просмотреть все неподписанные запросы сертификата, выполните на puppet-server-е, следующую команду:

Если вы настроили свой puppet-agent, вы увидите один запрос. Он будет выглядеть примерно так:

Чтобы подписать сертификат, используйте команду:

Где, puppet-agent- это название ноды.

Puppet-master теперь может связываться и управлять узлом, которому принадлежит подписанный сертификат.

Если вы хотите подписать все текущие запросы, используйте опцию -all, например:

Вы можете удалить хост из Puppet или перестроить хост, а затем добавить его обратно в Puppet. В этом случае вы должны удалить сертификат хоста с Puppet-а. Для этого вы можете использовать:

Где, your_hostname — Хостнейм ноды puppet-agent-а.

PS: Когда сервер удаляет уже подписанный сертификат для агента, вы должны удалить сертификаты из паппет-агента следующим образом:

Чтобы просмотреть все запросы, подписанные и неподписанные, выполните следующую команду:

Просмотрите отпечаток сертфиката клиента

Читайте также:  Настройка прокси для всего windows

Можно посмотреть некоторые пути к конфигам следующим образом:

Каждый раз добавлять сертификаты для новых нод — это не труъ! Можно сделать так, чтобы сервер автоматически добавлял новые ноды в себе в листинг добавлял их сертификат себе на сервер. Для этого, смотрим где хранится конфиг:

Обычно, этот путь находится:

У меня — /etc/puppetlabs/puppet/ и в этой директории, открываем (создаем) файл:

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

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

Настройка hiera на puppet-server-е

Прежде всего, я бы рекомендовал, — настроить хиеру (нужна чтобы определять переменные), для этого, — открываем:

И приводим его к следующему виду:

Создаем исмолическую ссылку:

Создам для примера хиеру-файл:

И смотрим что вышло:

Видим что работает все.

Работа с Puppet в Unix/Linux

Для начала, можно создать простой манифест, для этого создаем файл (на стороне сервера с паппет):

Открываем созданный файл и прописываем:

Теперь сохраните и выйдите. Вы можете либо дождаться, когда агент автоматически проведет проверку с мастером, либо вы можете запустить команду (на стороне клиента):

Видим что паппет-агент отработал манифест который создали.

PS: Для дебага, используйте «—debug» опцию:

Но давайте проверим что получилось:

И вывод у меня будет следующим:

Если вы хотите запускать манифест только для некоторых нод, то стоит определить узел в манифесте. Открываем:

И тогда только для указанного списка, будет выполнятся манифест.

Так же, можно выполнить манифест руками, для этого служит команда:

Ничего сложного нет, нужно время на ознакомление.

Добавление модулей

Приведу наглядный(ые) пример(ы) использования.

-=== ПРИМЕР 1 — Добавление ограниченного пользователя ===-

Можно ограничить использования puppet по пользователю, для этого на puppetmaster-е (паппет сервере), создадим папку для модуля и перейдем в нее:

Создайте следующие каталоги, которые необходимы для функционирования модуля:

  • examples — Директория для тестирования модуля локально.
  • files — Папка, которая содержит любые статические файлы, которые могут потребоваться для отредактирования или добавления.
  • manifests — Фолдер, в котором содержится фактический puppet код для модуля (т.е манифест действий).
  • templates — Содержит любые не статические файлы, которые могут потребоваться.

Перейдите в каталог manifests и создайте свой первый класс под названием init.pp. Все модули требуют, чтобы файл init.pp использовался в качестве основного файла определения модуля:

И вставляем в него:

Примите во внимание, vagrant — это пользователь на puppet-server-е, который уже имеется в системе. И, password — это хеш от пароля (для пользователя vagrant) и его можно получить, выполнив:

Создаем еще один файл:

И добавьте следующее содержимое:

Проверяем валидность файла:

Давайте протестируем модуль:

И получаем вывод:

Как вы уже поняли, я применил созданный модуль на сервере с паппет и он применил все то, что я описывал ранее.

-=== ПРИМЕР 2 — Редактирование SSH настроек ===-

Открываем конфиг и правим строку:

И прописываем в него:

И добавляем в него:

Должно выйти, что-то типа:

Сново, проверяем валидацию:

-=== ПРИМЕР 3 — Добавление и настройка IPTABLES ===-

В этом разделе я покажу как можно настраивать правила брандмауэра с помощью iptables. Однако по умолчанию эти правила не будут сохраняться при перезагрузке. Чтобы этого избежать, перед тем, как продолжить, установите соответствующий пакет на каждом узле (puppetmaster- е, puppet-агенте):

PS : Полезное чтиво:

Идем дальше, нужно установить модуль на puppetmaster-е, для этого служит следующая команда:

Вывод говорит что модуль установился в /etc/puppetlabs/code/environments/production/modules/firewall директорию, давайте перейдем в нее:

После этого, создаем файл:

И вставляем в него:

В этой директории, создаем еще один файл:

И прописываем в него:

Данные правила будут применятся в фаэрволе.

Создаем еще файл для тестирования:

Прописываем в него:

Смотрим что получилось:

Вроде бы все то, что прописывали в правилах — уже имеется.

Но это же я настраивал все на паппет-сервере, чтобы добавить модуль\манифест для нод, нужно кое-что прописать.

Запускаем на паппет-агенте манифет:

Видим что у меня имеется ошибка, не может прочитать файл с паппет-сервера (не хватает прав), но все остальное — отработало отлично.

Проверяем iptables на паппет-агенте:

Видим что правила применились!

Сколько узлов может поддерживать Puppet Open Source и Puppet Enterprise?

Все это зависит от нескольких факторов:

  1. Сколько ядер у вашего puppetmaster-а?
  2. Насколько большие каталоги для каждого узла?
  3. Нужно ли применять все сразу, или можно их запланировать в разное время?

Если вы ищете точку отсчета, я могу сказать вам, что паппет-сервер с открытым исходным кодом сможет обрабатывать 1000+ узлов на 12 ядрах, но если время запуска puppet манифестов будет соответствующим образом распределено.

У меня все, статья «Установка Puppet в Unix/Linux» подошла к завершению.

One thought on “ Установка Puppet в Unix/Linux ”

«puppet cert list —all», там где «puppet cert list —all»

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Оцените статью