Управление SCI сервисами » История » Версия 3
Версия 2 (Владимир Ипатов, 12.11.2012 03:48) → Версия 3/16 (Владимир Ипатов, 12.11.2012 04:59)
{{toc}}
h1. Управление SCI сервисами
h2. PUPPET
Puppet http://www.puppetlabs.com/) - Открытая платформа для управления платформами в промышленных масштабах. is the open source platform for enterprise systems management.
Puppet используется для автоматической настройки нод и виртуальных машин в кластере. is used to deploy the configuration to the cluster instances.
Документация можно найти здесь: Documentation can be found at http://docs.puppetlabs.com/
Puppet master, управляющий сервер, установлен на сервисной машине master is installed on the instance 'sci'.
По умолчанию у нас есть несколько модулей: By default you have several modules in puppet:
* Apt config(approx)
* DNS config(bind9)
* DHCP config(dhcpd)
* locale config(locale)
* timezone config(timezone).
Выбор классов для хостов и передача им параметров обеспечивается файлом Classes pick and providing parameters for it made by /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. If you don't specify node, default classes will be accepted for this node.
h2. Apt
Apt настраивается во всем кластере средствами puppet is configured on the instance 'sci' via puppet.
h3. sources.list
Шаблон для Global distributed sources.list находится в template is resided in @/etc/puppet/modules/approx/templates/sources.list.erb@ и ссылается на approx.
h3. Approx
Шаблон конфига Approx находится is configured in @/etc/puppet/modules/approx/templates/approx.conf.erb@
Для быстрого применения изменений следует: To apply your changes quickly you should issue
<pre>
/etc/init.d/puppet restart
</pre>
h2. DNS
DNS настраивается на машине is configured on the instance 'sci' посресдством паппета. via puppet.
Шаблон прямой зоны находится в The forward zone file is stored as a template at @/etc/puppet/modules/bind9/templates/sci/zone.erb@
В системе она будет в in system it will be at @/etc/bind/master/$domain@
Шаблон обратной зоны находится в The reverse zone file is stored as a template at @/etc/puppet/modules/bind9/templates/sci/in-addr.erb@
В системе она будет в in system it will be at @/etc/bind/master/in-addr@
При каждом ручном изменении зоны Вы должны увеличивать счетчик в начале файла: On each update you should set new (growing) zone serial number, initially
<pre>
0000000001 ; Serial
</pre>
Рекомендуется формат to the new growing value. YYYYMMDDNN is recommended (NN порядковый номер изменения за этот день). - is the change number in one day).
Вы можете изменять этот файл как угодно для того, чтобы он подходил к Вашей системе. Feel free to modify it to adjust your system.
Новые записи должны идти после: New names should be placed below the string
<pre>
; here you can put any other records
</pre>
Чтобы применить изменения, следует: To apply your changes quickly you should issue
<pre>
/etc/init.d/bind9 reload
</pre>
*ПРИМЕЧАНИЕ*: Если Вы используете динамические апдейты зоны(например, от dhcp сервера), Note that if you using dynamic updates(e.g. from dhcp-server) you must before editing file:
до ручного изменения файла следует "заморозить" зону:
<pre>rndc freeze your.domain</pre>
для прямой зоны for forward zone or
<pre>rndc freeze 168.192.in-addr.arpa</pre>
для обратной зоны for reverse zone.
а после изменения файла следует "разморозить" зону: And after editing the zone you must:
<pre>rndc unfreeze your.domain</pre>
или or
<pre>rndc unfreeze 168.192.in-addr.arpa</pre>
h2. DHCP
isc-dhcp-server настроен на машине sci, но отключен по умолчанию. is configured on instance sci via puppet, but disabled by default.
Если Вы хотите его включить, Вам следует сменить строчку в nodes.pp: Default setup looks like this:
<pre>
class { dhcpd: enabled => no, stage => post1, } If you have LAN segment in yous setup, it will be configured on it, else it will be configured on ganeti bridge.
</pre> dynamic dns updates configured by default.
на:
<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. Локаль locale
Локаль в кластере настраивается с помощью Locale in cluster ruled by puppet. По умолчанию она - ru_RU.UTF-8 By default it is en_US.UTF-8
Если Вам нужна другая локаль, назначьте ее в If you want to set locale you need, you must set it in @/etc/puppet/manifests/nodes.pp@
<pre>class { locale: def_locale => "ru_RU.cp1251", "ru_RU.UTF-8", stage => main, }</pre>
Также Вы должны внести нужную локаль в список генерируемых локалей You must also add locale in @/etc/puppet/modules/locale/templates/locale.gen.erb@ if locale you want isn't in this list:
если этой локали нет в этом списке:
<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>
*ПРИМЕЧАНИЕ*: нужную локаль следует вносить *ДО* этой строки: Note that you must add this locale *BEFORE* last string:
<pre><%= def_locale["."] = " "; def_locale %></pre>
h1. Управление SCI сервисами
h2. PUPPET
Puppet http://www.puppetlabs.com/) - Открытая платформа для управления платформами в промышленных масштабах. is the open source platform for enterprise systems management.
Puppet используется для автоматической настройки нод и виртуальных машин в кластере. is used to deploy the configuration to the cluster instances.
Документация можно найти здесь: Documentation can be found at http://docs.puppetlabs.com/
Puppet master, управляющий сервер, установлен на сервисной машине master is installed on the instance 'sci'.
По умолчанию у нас есть несколько модулей: By default you have several modules in puppet:
* Apt config(approx)
* DNS config(bind9)
* DHCP config(dhcpd)
* locale config(locale)
* timezone config(timezone).
Выбор классов для хостов и передача им параметров обеспечивается файлом Classes pick and providing parameters for it made by /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. If you don't specify node, default classes will be accepted for this node.
h2. Apt
Apt настраивается во всем кластере средствами puppet is configured on the instance 'sci' via puppet.
h3. sources.list
Шаблон для Global distributed sources.list находится в template is resided in @/etc/puppet/modules/approx/templates/sources.list.erb@ и ссылается на approx.
h3. Approx
Шаблон конфига Approx находится is configured in @/etc/puppet/modules/approx/templates/approx.conf.erb@
Для быстрого применения изменений следует: To apply your changes quickly you should issue
<pre>
/etc/init.d/puppet restart
</pre>
h2. DNS
DNS настраивается на машине is configured on the instance 'sci' посресдством паппета. via puppet.
Шаблон прямой зоны находится в The forward zone file is stored as a template at @/etc/puppet/modules/bind9/templates/sci/zone.erb@
В системе она будет в in system it will be at @/etc/bind/master/$domain@
Шаблон обратной зоны находится в The reverse zone file is stored as a template at @/etc/puppet/modules/bind9/templates/sci/in-addr.erb@
В системе она будет в in system it will be at @/etc/bind/master/in-addr@
При каждом ручном изменении зоны Вы должны увеличивать счетчик в начале файла: On each update you should set new (growing) zone serial number, initially
<pre>
0000000001 ; Serial
</pre>
Рекомендуется формат to the new growing value. YYYYMMDDNN is recommended (NN порядковый номер изменения за этот день). - is the change number in one day).
Вы можете изменять этот файл как угодно для того, чтобы он подходил к Вашей системе. Feel free to modify it to adjust your system.
Новые записи должны идти после: New names should be placed below the string
<pre>
; here you can put any other records
</pre>
Чтобы применить изменения, следует: To apply your changes quickly you should issue
<pre>
/etc/init.d/bind9 reload
</pre>
*ПРИМЕЧАНИЕ*: Если Вы используете динамические апдейты зоны(например, от dhcp сервера), Note that if you using dynamic updates(e.g. from dhcp-server) you must before editing file:
до ручного изменения файла следует "заморозить" зону:
<pre>rndc freeze your.domain</pre>
для прямой зоны for forward zone or
<pre>rndc freeze 168.192.in-addr.arpa</pre>
для обратной зоны for reverse zone.
а после изменения файла следует "разморозить" зону: And after editing the zone you must:
<pre>rndc unfreeze your.domain</pre>
или or
<pre>rndc unfreeze 168.192.in-addr.arpa</pre>
h2. DHCP
isc-dhcp-server настроен на машине sci, но отключен по умолчанию. is configured on instance sci via puppet, but disabled by default.
Если Вы хотите его включить, Вам следует сменить строчку в nodes.pp: Default setup looks like this:
<pre>
class { dhcpd: enabled => no, stage => post1, } If you have LAN segment in yous setup, it will be configured on it, else it will be configured on ganeti bridge.
</pre> dynamic dns updates configured by default.
на:
<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. Локаль locale
Локаль в кластере настраивается с помощью Locale in cluster ruled by puppet. По умолчанию она - ru_RU.UTF-8 By default it is en_US.UTF-8
Если Вам нужна другая локаль, назначьте ее в If you want to set locale you need, you must set it in @/etc/puppet/manifests/nodes.pp@
<pre>class { locale: def_locale => "ru_RU.cp1251", "ru_RU.UTF-8", stage => main, }</pre>
Также Вы должны внести нужную локаль в список генерируемых локалей You must also add locale in @/etc/puppet/modules/locale/templates/locale.gen.erb@ if locale you want isn't in this list:
если этой локали нет в этом списке:
<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>
*ПРИМЕЧАНИЕ*: нужную локаль следует вносить *ДО* этой строки: Note that you must add this locale *BEFORE* last string:
<pre><%= def_locale["."] = " "; def_locale %></pre>