Puppet - это инструмент управления конфигурацией, который позволяет автоматизировать процесс определения и поддержания согласованного состояния нескольких рабочих станций разработчиков. Это описательная, централизованная и клиент-серверная система. Центральный сервер настроен и клиенты синхронизируются с ним, чтобы гарантировать, что все системы завершатся в описанном состоянии. Например, задача обеспечения одинаковой среды разработки для всех систем разработчиков в проекте может быть легко выполнена с использованием Puppet. Вот краткая процедура настройки сервера Puppet и одного кукольного клиента на экземпляр Amazon EC2 с ОС Ubuntu, а также установка Puppet Dashboard на сервере для просмотра состояния клиентов.
Предпосылки
- Два EC2 экземпляры созданы с Ubuntu AMI.
- Один экземпляр, названный как puppetserver и другой как кукольный человек.
Процедура
сервер кукольный и клиент настроить
Настройка хостов файлов Просмотр файла/и т.д./имя хоста на puppetserver и puppetclient. Это имена серверов Puppet и клиентов, соответственно Редактируйте файл/etc/hosts в обеих системах. Добавьте IP-адреса серверов и клиентов и соответствующие имена хостов.
Настройка Puppet сервера Включение хранилища Кукольный Labs пакет
- Загрузить пакет "puppetlabs-релиз" для операционной системы (здесь, Ubuntu 12.04) на кукольном сервере
- Установите пакет, запустив dpkg -i
- Запустите apt-get update, чтобы получить новый список доступных пакетов.
Например, чтобы включить репозиторий для Ubuntu 12.04, Precise Pangolin:
wget https://apt.puppetlabs.com/puppetlabs-release-precise.deb
sudo dpkg -i puppetlabs-release-precise.deb
sudo apt-get updateInstall Puppet
Установить Кукольный
Установите кукловод
sudo apt-get update sudo apt-get install puppetmaster
Настройка клиента Кукольный
Установить Кукольный на кукольный клиента (ов)
sudo apt-get update sudo apt-get install puppet
Укажите доменное имя сервера Puppet на клиенте. Для этого измените файл
/etc/puppet/puppet.conf и добавьте строку server =. Теперь клиент может подключиться к Мастеру Марионеток.
Запустите службу агента Кукольный для создания первой связи между сервером и клиентом.
sudo puppet agent --verbose --no-daemonize --onetime
Это начинает подключение к главному процессу кукольного, который прослушивает порт 8140 на сервере кукол. Результат будет подробным, и агент не будет продолжать работать в фоновом режиме в качестве демона. Кроме того, он будет работать только один раз, то есть после закрытия соединения процесс агента завершится. Вывод выглядит следующим образом:
клиент сделал сам известен серверу, отправив запрос сертификата SSL. Серверу необходимо сертифицировать клиента. Чтобы просмотреть список еще, чтобы быть подписаны сертификаты на сервере
sudo puppet cert --list
Это приводит следующие
подписи сертификата SSL клиентского узла в
sudo puppet cert --sign <puppet client name>
Теперь клиент может установить полное подключение к серверу и опросить мастер-кукольник для любых изменений конфигурации.
Определение конфигурации
Мы создали кукольный как на кукольном сервера и клиента, а также установили связь между двумя машинами. Следующий шаг - определить конфигурацию для целевых систем, используя манифест марионетки. Эти манифесты указаны в файле site.pp.
В качестве примера мы определим манифест, который создаст файл helloworld.txt на клиенте.
Определение манифеста
Поместите следующий манифест определение в файле /etc/puppet/manifests/site.pp,
node "<puppet client hostname>" { file { "/home/ubuntu/helloworld.txt": content => "This is test content", ensure => file, owner => "ubuntu", group => "ubuntu", mode => 0644 } }
Этот манифест определяет, что марионеточный клиент должен иметь helloworld.txt файл в/home/ubuntu/папка с контентом, это тестовое содержимое.
Попадая изменения на клиенте
На кукольный клиента, выполните следующую команду.
sudo puppet agent -t
Кукольный клиент вытаскивает манифесты, определенные в файле site.pp на кукольном сервере. Он узнал, что файл с именем helloworld.txt с определенными спецификациями, как ожидается, будет существовать в location/home/ubuntu. Поскольку на клиенте такого файла нет, агент предпринимает действия и создает файл.
Открыть файл «» helloworld.txt
Чтобы убедиться, что клиент находится в состоянии, определенном сервере кукольного, выполните следующую команду
sudo vi /home/ubuntu/helloworld.txt
Содержимое файла такие же, как определенных в определении манифеста на сервере.
Установка кукольного панель
Обзор Кукольная Панель представляет собой графический интерфейс, который взаимодействует с Куклами. Он может использоваться для просмотра и отчета о состоянии всех клиентских узлов. Кукольная панель работает на порту 3000 на марионеточном сервере.
Ниже приведены шаги для созданы
- Установка внешних зависимостей
Dashboard является рубин на Rails веб-приложение и, таким образом, требует определенного программного обеспечения для установки RubyGems Rake версия 0.8.3 или новее База данных базы данных MySQL 5.x Связывание Ruby-MySQL версии 2.7.x или 2.8.x
Установите пакеты
sudo apt-get install -y build-essential irb libmysql-ruby libmysqlclient-dev libopenssl-ruby libreadline-ruby mysql-server rake rdoc ri ruby ruby-dev
Установите пакетная система RubyGems
(URL="http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz" PACKAGE=$(echo $URL | sed "s/\.[^\.]*$//; s/^.*\///") cd $(mktemp -d /tmp/install_rubygems.XXXXXXXXXX) && \ wget -c -t10 -T20 -q $URL && \ tar xfz $PACKAGE.tgz && \ cd $PACKAGE && \ sudo ruby setup.rb)
Создать камень в качестве альтернативного имени gem1.8
sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.8 1
Установка кукольной панели
Установите кукольную панель из puppetlabs пакет хранилища
sudo apt-get update sudo apt-get install puppet-dashboard
Настройки Dashboard
Измените файл database.yml. Его можно найти на странице /usr/share/puppet-dashboard/config/database.yml.
Под пар ключ-значение для производственной среды, значение базы данных «dashboard_production» указывает имя базы данных информационной панели, и значение имени пользователя «панель» определяет пользователя для этой базы данных. На следующем шаге мы создадим как базу данных, так и пользователя. password - пароль для MySQL.
Создание и настройка базы данных MySQL
Создание пользователя и базы данных для кукольного панели. Перейдите в командную строку MySQL
CREATE DATABASE dashboard_production CHARACTER SET utf8; CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'my_password'; GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';
максимальный размер пакета
Configure MySQL, чтобы разрешить большие строки в базе данных
set global max_allowed_packet = 33554432;
изменить Также конфигурационный файл MySQL /etc/mysql/my.cnf
Позволяющ 32Мб допускается случайный разрыв 17MB с большим количеством свободного места
max_allowed_packet = 32M
Для создания таблицы приборной панели, выполните следующую команду в папке кукольной приборной панели
cd /usr/share/puppet-dashboard rake RAILS_ENV=production db:migrate
тестирования, что Dashboard работает
Запустите панель, используя рубин встроенного сервера WEBrick
cd /usr/share/puppet-dashboard
sudo ./script/server -e production
Экземпляр панели мониторинга запускается на порту 3000 с использованием «производственной» среды. Пользовательский интерфейс приборной панели можно посмотреть на сайте: 3000
Настройка кукольный
Как кукольный сервер и клиент должен быть настроен на приборной панели, чтобы получать отчеты. Настройте узлы агентов для отправки отчетов в мастер, включив их отчет.
puppet.conf (на каждого агента)
[agent]
report = true
Настройка сервера. Добавьте обработчик отчета http к настройкам отчетов марионеточного сервера и установите reporturl в отчеты экземпляра Dashboard/upload URL
кукольный.конф (на кукловоде)
[master]
reports = store, http
reporturl = http://<server hostname>:3000/reports/upload
Для включения внешнего узла классификатора личного кабинета (ENC),
puppet.conf (на кукловоде) соединение
[master]
node_terminus = exec
external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=http://<server hostname>:3000 /usr/share/puppet-dashboard/bin/external_node
Тестирования Кукольного на Dashboard
Перезапустите мастера куколки Запустите один из кукольных агентов, чтобы проверить конфигурации
sudo puppet agent -t
Выход будет:
Это означает, что отчет прибыл. Чтобы обработать его, мы активизируем работников delayed_job.
Запуск рабочих delayed_job
Выполните следующую команду
cd /usr/share/puppet-dashboard
sudo env RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m start
Это начинается рабочих delayed_job, и завершает отложенную задачу.
Таким образом, кукла теперь установлена на двух экземплярах EC2, из которых один является сервером, а другой - клиентом. Кроме того, для просмотра состояния клиентских узлов установлена панель управления марионеткой.