Project

General

Profile

SCI services management » History » Version 8

« Previous - Version 8/15 (diff) - Next » - Current version
Владимир Ипатов, 11/12/2012 04:55 AM


SCI services management

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 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:

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, }
}

If you don't specify node, default classes will be accepted for this node.

Apt

Apt is configured on the instance 'sci' via puppet.

sources.list

Global distributed sources.list template is resided in /etc/puppet/modules/approx/templates/sources.list.erb

Approx

Approx is configured in /etc/puppet/modules/approx/templates/approx.conf.erb
To apply your changes quickly you should issue

/etc/init.d/puppet restart

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

0000000001 ; Serial

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

; here you can put any other records

To apply your changes quickly you should issue

/etc/init.d/bind9 reload

Note that if you using dynamic updates(e.g. from dhcp-server) you must before editing file:

rndc freeze your.domain

for forward zone or
rndc freeze 168.192.in-addr.arpa

for reverse zone.
And after editing the zone you must:
rndc unfreeze your.domain

or
rndc unfreeze 168.192.in-addr.arpa

DHCP

isc-dhcp-server is configured on instance sci via puppet, but disabled by default.
If you want to enable it, you must replase string in nodes.pp:

    class { dhcpd: enabled => no, stage => post1, }

to:
    class { dhcpd: enabled => yes, stage => post1, }

Default setup looks like this:
If you have LAN segment in yous setup, it will be configured on it, else it will be configured on ganeti bridge.
dynamic dns updates is configured by default.
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;
}

locale

Locale in cluster ruled by puppet. 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

class { locale: def_locale => "ru_RU.UTF-8", stage => main, }

You must also add locale in /etc/puppet/modules/locale/templates/locale.gen.erb if locale you want isn't in this list:
en_US ISO-8859-1
en_US UTF-8
ru_RU UTF-8
ru_RU KOI8-R
ru_RU CP1251
ru_RU ISO8859-5

Note that you must add this locale BEFORE last string:
<%= def_locale["."] = " "; def_locale %>