Foreman+Puppet+Ansible+ALSE1.7.2
Товарищи, кто-нибудь Foreman+Puppet+Ansible на ALSE 1.7 (обновление 1.7.2) натягивал?
Puppet и Ansible взлетают без проблем согласно вот этой инструкции. А Foreman либо сам по себе устаревший и собран под старую ALCE 2.12, либо еще какие-то трабблы в связке с ним и с Puppet — идет ругань то на postgresql-client-11, то на кучу некорректных инструкций в /opt/puppetlabs/puppet/lib/. Получаю проблемы, как косвенно указано тут.
ZeV$
New member
oko
New member
Нет, увы. Поднял на Debian 11 — там влет все завелось. Проблему зависимостей и ошибок решить не смог. С другой стороны, это было два месяца назад. Возможно, репозитории уже претерпели изменения. Но пока проверять тоже нет ни сил, ни желания.
Botsmans
New member
Астра 1.7.3 Установлен Puppet 6.13 из репозитория астры, Foreman 2.1.4 из репозитория астры не встает. Foreman других версий так же не встает.
Execution of ‘/usr/bin/apt-get -q -y -o DPkg::Options::=—force-confold install postgresql-client-11’ returned 100: Reading package lists.
Building dependency tree.
Reading state information.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
postgresql-client-11 : Depends: libpq5 (= 11.17-astra.se1+b1) but 14.2-1.astra2 is to be installed
E: Unable to correct problems, you have held broken packages.
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/execution.rb:297:in `execute’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/command.rb:23:in `execute’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider.rb:222:in `block in has_command’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider.rb:444:in `block in create_class_and_instance_method’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package/apt.rb:80:in `install’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/package.rb:92:in `block (3 levels) in ‘
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/property.rb:490:in `set’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/property.rb:570:in `sync’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:241:in `sync’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:136:in `sync_if_needed’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:82:in `perform_changes’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:21:in `evaluate’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:267:in `apply’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:287:in `eval_resource’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:191:in `call’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:191:in `block (2 levels) in evaluate’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:521:in `block in thinmark’
/opt/puppetlabs/puppet/lib/ruby/2.5.0/benchmark.rb:308:in `realtime’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:520:in `thinmark’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:191:in `block in evaluate’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:122:in `traverse’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:178:in `evaluate’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:240:in `block (2 levels) in apply’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:521:in `block in thinmark’
/opt/puppetlabs/puppet/lib/ruby/2.5.0/benchmark.rb:308:in `realtime’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:520:in `thinmark’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:239:in `block in apply’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:161:in `with_destination’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/report.rb:146:in `as_logging_destination’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:238:in `apply’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:185:in `block (2 levels) in apply_catalog’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:521:in `block in thinmark’
/opt/puppetlabs/puppet/lib/ruby/2.5.0/benchmark.rb:308:in `realtime’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:520:in `thinmark’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:184:in `block in apply_catalog’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:233:in `block in benchmark’
/opt/puppetlabs/puppet/lib/ruby/2.5.0/benchmark.rb:308:in `realtime’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:232:in `benchmark’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:183:in `apply_catalog’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:387:in `run_internal’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:227:in `block in run’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:62:in `override’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:290:in `override’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:210:in `run’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:343:in `apply_catalog’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:260:in `block (2 levels) in main’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:62:in `override’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:290:in `override’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:243:in `block in main’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:62:in `override’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:290:in `override’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:207:in `main’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:177:in `run_command’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:382:in `block in run’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:710:in `exit_on_fail’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:382:in `run’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:143:in `run’
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:77:in `execute’
/opt/puppetlabs/puppet/bin/puppet:5:in `’
Установка сервера Puppet
ВАЖНО. Системные требования 2 ядра 6 гигабайт оперативной памяти на 10 узлов. Далее +1 ядро на 300 узлов и +1 оперативной памяти на 150 узлов.
1. Настраиваем службу времени:
По желанию можно добавить свои серверы в конфигурации ntp
2. Устанавка репозитория и самого пакета puppetserver:
cd ~ && wget https://apt.puppetlabs.com/puppetlabs-release-pc1- xenial.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
sudo apt-get update
sudo apt-get install –y puppetserver
Примечание: для Ubuntu 16.04 LTS Xenial Xerus нужен пакет puppetlabs-release-pc1- xenial.deb (подходит для Astra Linux Special Edition).
3. Для определения количества ОЗУ доступного серверу puppet редактируем файл /etc/default/puppetserver , а именно параметры 2g
JAVA_ARGS=”-Xms2g –Xmx2g –XX:MaxPermSize
sudo nano /etc/default/puppetserver
Расчёт памяти определяется 150 узлов = 1g
4. Для указания агенту puppet на сервере редактируем файл
sudo nano /etc/puppetlabs/puppet/puppet.conf
,а именно в него добавляется [main] секция над секцией [master]:
Примечание: Имя можно узнать, выполнив hostname -f
вносим IP-адрес сервера и имя
6. Настраиваем брандмауэер, пробросим порт 8140
sudo systemctl start puppetserver
Проверяем запустился ли puppetserver
sudo systemctl status puppetserver
Включаем автозапуск сервера
sudo systemctl enable puppetserver
sudo /opt/puppetlabs/bin/puppet agent --test
Если всё зеленое, то всё ОК.
Установка PUPPET AGENT.
1. Устанавливаем информацию о репозитории puppet и сам puppet-agent на Linux, согласно версии (в случае Astra Linux Special Edition, Stretch):
cd ~ && wget https://apt.puppetlabs.com/puppetlabs-release-pc1-stretch.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
sudo apt-get update
sudo apt-get install –y puppet-agent
2. Прописываем информацию о сервере в host:
вносим IP-адрес сервера и имя:
3. Настраиваем службу точного времени:
sudo apt-get -y install ntp
По желанию можно добавить свои серверы в конфигурации ntp
4. Настраиваем брандмауэер, пробросим порт 8140
5. Для указания агенту puppet на rjvgm.ntht редактируется файл
sudo nano /etc/puppetlabs/puppet/puppet.conf
,а именно в него необходимо добавить:
[agent]
server = server-puppet
sudo systemctl start puppet
Проверяем запустился ли puppetserver
sudo systemctl status puppet
Включаем автозапуск сервера
sudo systemctl enable puppet
sudo /opt/puppetlabs/bin/puppet agent --test
Если всё зеленое, то всё ОК.
Аннотация
В данной статье представлена инструкция по установке системы управления конфигурациями Puppet и клиентского агента Puppet для управления конфигурациями. Для успешной установки требуется подключение расширенного репозитория. Подробнее про структуру и использование репозиториев см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования .
Программное обеспечение расширенного репозитория является сторонним по отношению к Astra Linux, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации.
Подробнее см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition.
При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере) [п. 7.2 РукКСЗ1]. При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном [п. 7.2.1] или выделенном [п. 7.2.7] уровне МКЦ.
Что такое Puppet
Общая информация
Puppet — кроссплатформенное распределенное клиент-серверное приложение, позволяющее централизованно управлять конфигурацией операционных систем и программ, установленных на удаленных компьютерах, использующих практически любую операционную систему.
На компьютеры, управляемые с помощью Puppet, устанавливается специальное ПО — агент Puppet. Агент Puppet периодически опрашивают сервер Puppet, получает и применяет централизованно внесенные администратором изменения в конфигурацию. Конфигурация описывается на специальном декларативном предметно-ориентированном языке.
Для управления компьютерами без установки на них агентов см. Система управления конфигурациями Ansible
Оригинальная документация Puppet
Оригинальная документация Puppet доступна по ссылке: https://puppet.com/docs/
Установка пакетов
- Подключить актуальное оперативное обновление расширенного репозитория;