Управление SCI сервисами » История » Версия 4
Версия 3 (Владимир Ипатов, 12.11.2012 04:59) → Версия 4/16 (Dmitry Chernyak, 06.12.2012 16:39)
{{toc}}
h1. Управление SCI сервисами
h2. PUPPET
"Puppet":http://www.puppetlabs.com Puppet http://www.puppetlabs.com/) - это Открытая платформа для автоматизации системного администрирования большого количества компьютеров. управления платформами в промышленных масштабах.
Puppet позволяет легко автоматизировать задачи по настройке операционных систем и используется для автоматической настройки узлов нод и виртуальных машин в кластере.
Документация можно найти здесь: http://docs.puppetlabs.com/
Управляющий сервер - "Puppet master" Puppet master, управляющий сервер, установлен на сервисной виртуальной машине 'sci'.
В комплекте поставки По умолчанию у нас есть следующие модули: несколько модулей:
* Общая настройка сервера (common) - установка полезных пакетов и удобных умолчаний Apt config(approx)
* locale (locale) DNS config(bind9)
* timezone (timezone) DHCP config(dhcpd)
* Approx (approx) - прокси для пакетов обновления Debian locale config(locale)
* DNS (bind9) - запуск в chroot и пред-настройка для обслуживания кластера
* DHCP (dhcpd) - пред-настройка для кластера и DDNS timezone config(timezone).
Конфигурация Выбор классов для хостов задается в файле и передача им параметров обеспечивается файлом /etc/puppet/manifests/nodes.pp:
<pre>
node 'default' {
class { sources_list_local: stage => pre0, }
class { common_profile: stage => pre1, }
class { timezone: zone => "Europe/Moscow", stage => main, }
class { locale: def_locale => "ru_RU.UTF-8", stage => main, }
}
node 'sci' {
class { approx_local: stage => pre0, }
class { sources_list_local: stage => pre0, }
class { common_profile: stage => pre1, }
class { bind9_sci: stage => main, }
class { timezone: zone => "Europe/Moscow", stage => main, }
class { locale: def_locale => "ru_RU.UTF-8", stage => main, }
class { dhcpd: enabled => no, stage => post1, }
}
</pre>
Если Вы не указали хост в файле, то к нему ней применяются настройки классы default.
h2. Apt
Apt автоматически настраивается во всем кластере средствами puppet
h3. sources.list
Шаблон для sources.list находится в @/etc/puppet/modules/approx/templates/sources.list.erb@ и настроен для работы через ссылается на approx.
h3. Approx
Шаблон конфига Approx находится @/etc/puppet/modules/approx/templates/approx.conf.erb@
Для быстрого применения изменений выполните: следует:
<pre>
/etc/init.d/puppet restart
</pre>
h2. DNS
DNS автоматически устанавливается настраивается на машине 'sci'. 'sci' посресдством паппета.
Шаблон прямой зоны находится в @/etc/puppet/modules/bind9/templates/sci/zone.erb@
В системе она будет в @/etc/bind/master/$domain@
Шаблон обратной зоны находится в @/etc/puppet/modules/bind9/templates/sci/in-addr.erb@
В системе она будет в @/etc/bind/master/in-addr@
При каждом ручном изменении зоны Вы должны увеличивать счетчик в начале файла:
<pre>
0000000001 ; Serial
</pre>
Рекомендуется формат YYYYMMDDNN (NN порядковый номер изменения за этот день).
Вы можете изменять этот файл как угодно для того, чтобы он подходил к Вашей системе.
Новые записи должны идти после:
<pre>
; here you can put any other records
</pre>
Чтобы применить изменения, следует:
<pre>
/etc/init.d/bind9 reload
</pre>
*ПРИМЕЧАНИЕ*: Если Вы используете динамические апдейты зоны(например, от dhcp сервера),
до ручного изменения файла следует "заморозить" зону:
<pre>rndc freeze your.domain</pre>
для прямой зоны
<pre>rndc freeze 168.192.in-addr.arpa</pre>
для обратной зоны
а после изменения файла следует "разморозить" зону:
<pre>rndc unfreeze your.domain</pre>
или
<pre>rndc unfreeze 168.192.in-addr.arpa</pre>
h2. DHCP
isc-dhcp-server настроен на машине sci, но отключен по умолчанию.
Если Вы хотите его включить, Вам следует сменить строчку в nodes.pp:
<pre>
class { dhcpd: enabled => no, stage => post1, }
</pre>
на:
<pre>
class { dhcpd: enabled => yes, stage => post1, }
</pre>
Если у Вас есть отдельный lan сегмент, то dhcp настраивается на него, если нет - на основной сегмент.
Дефолтный конфиг выглядит наподобие этого:
<pre>
ddns-update-style interim;
ddns-updates on;
allow-unknown-clients;
autoritative;
ddns-domainname "your.domain";
update-static-leases on;
allow client-updates;
key DHCP_UPDATE {
algorithm HMAC-MD5;
secret secret-generated-md5;
};
subnet 192.168.5.0 netmask 255.255.255.0 {
authoritative;
ddns-updates on;
range 192.168.5.11 192.168.5.254;
option routers 192.168.5.35;
option domain-name-servers 192.168.5.35;
option domain-name "your.domain";
default-lease-time 604800;
max-lease-time 2592000;
}
zone your.domain. {
primary 127.0.0.1;
key DHCP_UPDATE;
}
zone 168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATE;
}
</pre>
h2. Локаль
Локаль в кластере настраивается с помощью puppet. По умолчанию она - ru_RU.UTF-8
Если Вам нужна другая локаль, назначьте ее в @/etc/puppet/manifests/nodes.pp@
<pre>class { locale: def_locale => "ru_RU.cp1251", stage => main, }</pre>
Также Вы должны внести нужную локаль в список генерируемых локалей @/etc/puppet/modules/locale/templates/locale.gen.erb@
если этой локали нет в этом списке:
<pre>en_US ISO-8859-1
en_US UTF-8
ru_RU UTF-8
ru_RU KOI8-R
ru_RU CP1251
ru_RU ISO8859-5</pre>
*ПРИМЕЧАНИЕ*: нужную локаль следует вносить *ДО* этой строки:
<pre><%= def_locale["."] = " "; def_locale %></pre>
h1. Управление SCI сервисами
h2. PUPPET
"Puppet":http://www.puppetlabs.com Puppet http://www.puppetlabs.com/) - это Открытая платформа для автоматизации системного администрирования большого количества компьютеров. управления платформами в промышленных масштабах.
Puppet позволяет легко автоматизировать задачи по настройке операционных систем и используется для автоматической настройки узлов нод и виртуальных машин в кластере.
Документация можно найти здесь: http://docs.puppetlabs.com/
Управляющий сервер - "Puppet master" Puppet master, управляющий сервер, установлен на сервисной виртуальной машине 'sci'.
В комплекте поставки По умолчанию у нас есть следующие модули: несколько модулей:
* Общая настройка сервера (common) - установка полезных пакетов и удобных умолчаний Apt config(approx)
* locale (locale) DNS config(bind9)
* timezone (timezone) DHCP config(dhcpd)
* Approx (approx) - прокси для пакетов обновления Debian locale config(locale)
* DNS (bind9) - запуск в chroot и пред-настройка для обслуживания кластера
* DHCP (dhcpd) - пред-настройка для кластера и DDNS timezone config(timezone).
Конфигурация Выбор классов для хостов задается в файле и передача им параметров обеспечивается файлом /etc/puppet/manifests/nodes.pp:
<pre>
node 'default' {
class { sources_list_local: stage => pre0, }
class { common_profile: stage => pre1, }
class { timezone: zone => "Europe/Moscow", stage => main, }
class { locale: def_locale => "ru_RU.UTF-8", stage => main, }
}
node 'sci' {
class { approx_local: stage => pre0, }
class { sources_list_local: stage => pre0, }
class { common_profile: stage => pre1, }
class { bind9_sci: stage => main, }
class { timezone: zone => "Europe/Moscow", stage => main, }
class { locale: def_locale => "ru_RU.UTF-8", stage => main, }
class { dhcpd: enabled => no, stage => post1, }
}
</pre>
Если Вы не указали хост в файле, то к нему ней применяются настройки классы default.
h2. Apt
Apt автоматически настраивается во всем кластере средствами puppet
h3. sources.list
Шаблон для sources.list находится в @/etc/puppet/modules/approx/templates/sources.list.erb@ и настроен для работы через ссылается на approx.
h3. Approx
Шаблон конфига Approx находится @/etc/puppet/modules/approx/templates/approx.conf.erb@
Для быстрого применения изменений выполните: следует:
<pre>
/etc/init.d/puppet restart
</pre>
h2. DNS
DNS автоматически устанавливается настраивается на машине 'sci'. 'sci' посресдством паппета.
Шаблон прямой зоны находится в @/etc/puppet/modules/bind9/templates/sci/zone.erb@
В системе она будет в @/etc/bind/master/$domain@
Шаблон обратной зоны находится в @/etc/puppet/modules/bind9/templates/sci/in-addr.erb@
В системе она будет в @/etc/bind/master/in-addr@
При каждом ручном изменении зоны Вы должны увеличивать счетчик в начале файла:
<pre>
0000000001 ; Serial
</pre>
Рекомендуется формат YYYYMMDDNN (NN порядковый номер изменения за этот день).
Вы можете изменять этот файл как угодно для того, чтобы он подходил к Вашей системе.
Новые записи должны идти после:
<pre>
; here you can put any other records
</pre>
Чтобы применить изменения, следует:
<pre>
/etc/init.d/bind9 reload
</pre>
*ПРИМЕЧАНИЕ*: Если Вы используете динамические апдейты зоны(например, от dhcp сервера),
до ручного изменения файла следует "заморозить" зону:
<pre>rndc freeze your.domain</pre>
для прямой зоны
<pre>rndc freeze 168.192.in-addr.arpa</pre>
для обратной зоны
а после изменения файла следует "разморозить" зону:
<pre>rndc unfreeze your.domain</pre>
или
<pre>rndc unfreeze 168.192.in-addr.arpa</pre>
h2. DHCP
isc-dhcp-server настроен на машине sci, но отключен по умолчанию.
Если Вы хотите его включить, Вам следует сменить строчку в nodes.pp:
<pre>
class { dhcpd: enabled => no, stage => post1, }
</pre>
на:
<pre>
class { dhcpd: enabled => yes, stage => post1, }
</pre>
Если у Вас есть отдельный lan сегмент, то dhcp настраивается на него, если нет - на основной сегмент.
Дефолтный конфиг выглядит наподобие этого:
<pre>
ddns-update-style interim;
ddns-updates on;
allow-unknown-clients;
autoritative;
ddns-domainname "your.domain";
update-static-leases on;
allow client-updates;
key DHCP_UPDATE {
algorithm HMAC-MD5;
secret secret-generated-md5;
};
subnet 192.168.5.0 netmask 255.255.255.0 {
authoritative;
ddns-updates on;
range 192.168.5.11 192.168.5.254;
option routers 192.168.5.35;
option domain-name-servers 192.168.5.35;
option domain-name "your.domain";
default-lease-time 604800;
max-lease-time 2592000;
}
zone your.domain. {
primary 127.0.0.1;
key DHCP_UPDATE;
}
zone 168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATE;
}
</pre>
h2. Локаль
Локаль в кластере настраивается с помощью puppet. По умолчанию она - ru_RU.UTF-8
Если Вам нужна другая локаль, назначьте ее в @/etc/puppet/manifests/nodes.pp@
<pre>class { locale: def_locale => "ru_RU.cp1251", stage => main, }</pre>
Также Вы должны внести нужную локаль в список генерируемых локалей @/etc/puppet/modules/locale/templates/locale.gen.erb@
если этой локали нет в этом списке:
<pre>en_US ISO-8859-1
en_US UTF-8
ru_RU UTF-8
ru_RU KOI8-R
ru_RU CP1251
ru_RU ISO8859-5</pre>
*ПРИМЕЧАНИЕ*: нужную локаль следует вносить *ДО* этой строки:
<pre><%= def_locale["."] = " "; def_locale %></pre>