Проект

Общее

Профиль

SCI services management » История » Версия 8

Владимир Ипатов, 12.11.2012 04:55

1 4 Владимир Ипатов
{{toc}}
2 4 Владимир Ипатов
3 1 Владимир Ипатов
h1. SCI services management
4 1 Владимир Ипатов
5 1 Владимир Ипатов
h2. PUPPET
6 1 Владимир Ипатов
7 1 Владимир Ипатов
Puppet http://www.puppetlabs.com/) is the open source platform for enterprise systems management.
8 1 Владимир Ипатов
Puppet is used to deploy the configuration to the cluster instances.
9 1 Владимир Ипатов
Documentation can be found at http://docs.puppetlabs.com/
10 1 Владимир Ипатов
11 1 Владимир Ипатов
Puppet master is installed on the instance 'sci'.
12 1 Владимир Ипатов
13 2 Владимир Ипатов
By default you have several modules in puppet:
14 2 Владимир Ипатов
* Apt config(approx)
15 2 Владимир Ипатов
* DNS config(bind9)
16 2 Владимир Ипатов
* DHCP config(dhcpd)
17 2 Владимир Ипатов
* locale config(locale)
18 2 Владимир Ипатов
* timezone config(timezone).
19 1 Владимир Ипатов
20 2 Владимир Ипатов
Classes pick and providing parameters for it made by /etc/puppet/manifests/nodes.pp:
21 1 Владимир Ипатов
<pre>
22 2 Владимир Ипатов
node 'default' {
23 2 Владимир Ипатов
	class { sources_list_local: stage => pre0, }
24 2 Владимир Ипатов
	class { common_profile: stage => pre1, }
25 2 Владимир Ипатов
	class { timezone: zone => "Europe/Moscow", stage => main, }
26 2 Владимир Ипатов
	class { locale: def_locale => "ru_RU.UTF-8", stage => main, }
27 2 Владимир Ипатов
}
28 1 Владимир Ипатов
29 2 Владимир Ипатов
node 'sci' {
30 2 Владимир Ипатов
	class { approx_local: stage => pre0, }
31 2 Владимир Ипатов
	class { sources_list_local: stage => pre0, }
32 2 Владимир Ипатов
	class { common_profile: stage => pre1, }
33 2 Владимир Ипатов
	class { bind9_sci: stage => main, }
34 2 Владимир Ипатов
	class { timezone: zone => "Europe/Moscow", stage => main, }
35 2 Владимир Ипатов
	class { locale: def_locale => "ru_RU.UTF-8", stage => main, }
36 2 Владимир Ипатов
	class { dhcpd: enabled => no, stage => post1, }
37 2 Владимир Ипатов
}
38 1 Владимир Ипатов
</pre>
39 2 Владимир Ипатов
If you don't specify node, default classes will be accepted for this node.
40 1 Владимир Ипатов
41 1 Владимир Ипатов
42 1 Владимир Ипатов
h2. Apt
43 1 Владимир Ипатов
44 1 Владимир Ипатов
Apt is configured on the instance 'sci' via puppet.
45 1 Владимир Ипатов
46 1 Владимир Ипатов
h3. sources.list
47 1 Владимир Ипатов
48 1 Владимир Ипатов
Global distributed sources.list template is resided in @/etc/puppet/modules/approx/templates/sources.list.erb@
49 1 Владимир Ипатов
50 1 Владимир Ипатов
h3. Approx
51 1 Владимир Ипатов
52 1 Владимир Ипатов
Approx is configured in @/etc/puppet/modules/approx/templates/approx.conf.erb@
53 1 Владимир Ипатов
To apply your changes quickly you should issue
54 1 Владимир Ипатов
<pre>
55 1 Владимир Ипатов
/etc/init.d/puppet restart
56 1 Владимир Ипатов
</pre>
57 2 Владимир Ипатов
58 2 Владимир Ипатов
h2. DNS
59 2 Владимир Ипатов
60 2 Владимир Ипатов
DNS is configured on the instance 'sci' via puppet.
61 2 Владимир Ипатов
62 2 Владимир Ипатов
The forward zone file is stored as a template at @/etc/puppet/modules/bind9/templates/sci/zone.erb@
63 2 Владимир Ипатов
in system it will be at @/etc/bind/master/$domain@
64 2 Владимир Ипатов
The reverse zone file is stored as a template at @/etc/puppet/modules/bind9/templates/sci/in-addr.erb@
65 2 Владимир Ипатов
in system it will be at @/etc/bind/master/in-addr@
66 2 Владимир Ипатов
On each update you should set new (growing) zone serial number, initially
67 2 Владимир Ипатов
<pre>
68 2 Владимир Ипатов
0000000001 ; Serial
69 2 Владимир Ипатов
</pre>
70 2 Владимир Ипатов
to the new growing value. YYYYMMDDNN is recommended (NN - is the change number in one day).
71 2 Владимир Ипатов
Feel free to modify it to adjust your system.
72 2 Владимир Ипатов
73 2 Владимир Ипатов
New names should be placed below the string
74 2 Владимир Ипатов
<pre>
75 2 Владимир Ипатов
; here you can put any other records
76 2 Владимир Ипатов
</pre>
77 2 Владимир Ипатов
78 2 Владимир Ипатов
To apply your changes quickly you should issue
79 2 Владимир Ипатов
<pre>
80 2 Владимир Ипатов
/etc/init.d/bind9 reload
81 2 Владимир Ипатов
</pre>
82 2 Владимир Ипатов
83 2 Владимир Ипатов
Note that if you using dynamic updates(e.g. from dhcp-server) you must before editing file:
84 2 Владимир Ипатов
<pre>rndc freeze your.domain</pre>
85 2 Владимир Ипатов
for forward zone or
86 2 Владимир Ипатов
<pre>rndc freeze 168.192.in-addr.arpa</pre>
87 2 Владимир Ипатов
for reverse zone.
88 2 Владимир Ипатов
And after editing the zone you must:
89 2 Владимир Ипатов
<pre>rndc unfreeze your.domain</pre>
90 2 Владимир Ипатов
or
91 2 Владимир Ипатов
<pre>rndc unfreeze 168.192.in-addr.arpa</pre>
92 5 Владимир Ипатов
93 6 Владимир Ипатов
h2. DHCP
94 5 Владимир Ипатов
95 5 Владимир Ипатов
isc-dhcp-server is configured on instance sci via puppet, but disabled by default.
96 8 Владимир Ипатов
If you want to enable it, you must replase string in nodes.pp:
97 8 Владимир Ипатов
<pre>
98 8 Владимир Ипатов
	class { dhcpd: enabled => no, stage => post1, }
99 8 Владимир Ипатов
</pre>
100 8 Владимир Ипатов
to:
101 8 Владимир Ипатов
<pre>
102 8 Владимир Ипатов
	class { dhcpd: enabled => yes, stage => post1, }
103 8 Владимир Ипатов
</pre>
104 5 Владимир Ипатов
Default setup looks like this:
105 1 Владимир Ипатов
If you have LAN segment in yous setup, it will be configured on it, else it will be configured on ganeti bridge.
106 8 Владимир Ипатов
dynamic dns updates is configured by default.
107 5 Владимир Ипатов
<pre>
108 5 Владимир Ипатов
ddns-update-style interim;
109 5 Владимир Ипатов
ddns-updates on;
110 5 Владимир Ипатов
allow-unknown-clients;
111 5 Владимир Ипатов
autoritative;
112 5 Владимир Ипатов
ddns-domainname "your.domain";
113 5 Владимир Ипатов
update-static-leases on;
114 5 Владимир Ипатов
allow client-updates;
115 5 Владимир Ипатов
116 5 Владимир Ипатов
key DHCP_UPDATE {
117 5 Владимир Ипатов
	algorithm HMAC-MD5;
118 5 Владимир Ипатов
	secret secret-generated-md5;
119 5 Владимир Ипатов
};
120 5 Владимир Ипатов
121 5 Владимир Ипатов
122 5 Владимир Ипатов
123 5 Владимир Ипатов
subnet 192.168.5.0 netmask 255.255.255.0 {
124 5 Владимир Ипатов
	authoritative;
125 5 Владимир Ипатов
	ddns-updates on;
126 5 Владимир Ипатов
	range 192.168.5.11 192.168.5.254;
127 5 Владимир Ипатов
	option routers 192.168.5.35;
128 5 Владимир Ипатов
	option domain-name-servers 192.168.5.35;
129 5 Владимир Ипатов
	option domain-name "your.domain";
130 5 Владимир Ипатов
	default-lease-time 604800;
131 5 Владимир Ипатов
	max-lease-time 2592000;
132 5 Владимир Ипатов
	}
133 5 Владимир Ипатов
134 5 Владимир Ипатов
135 5 Владимир Ипатов
zone your.domain. {
136 5 Владимир Ипатов
	primary 127.0.0.1;
137 5 Владимир Ипатов
	key DHCP_UPDATE;
138 5 Владимир Ипатов
}
139 5 Владимир Ипатов
140 5 Владимир Ипатов
zone 168.192.in-addr.arpa. {
141 5 Владимир Ипатов
	primary 127.0.0.1;
142 5 Владимир Ипатов
	key DHCP_UPDATE;
143 5 Владимир Ипатов
}
144 5 Владимир Ипатов
</pre>
145 7 Владимир Ипатов
146 7 Владимир Ипатов
h2. locale
147 7 Владимир Ипатов
148 7 Владимир Ипатов
Locale in cluster ruled by puppet. By default it is en_US.UTF-8
149 7 Владимир Ипатов
If you want to set locale you need, you must set it in @/etc/puppet/manifests/nodes.pp@
150 7 Владимир Ипатов
<pre>class { locale: def_locale => "ru_RU.UTF-8", stage => main, }</pre>
151 7 Владимир Ипатов
You must also add locale in @/etc/puppet/modules/locale/templates/locale.gen.erb@ if locale you want isn't in this list:
152 7 Владимир Ипатов
<pre>en_US ISO-8859-1
153 7 Владимир Ипатов
en_US UTF-8
154 7 Владимир Ипатов
ru_RU UTF-8
155 7 Владимир Ипатов
ru_RU KOI8-R
156 7 Владимир Ипатов
ru_RU CP1251
157 7 Владимир Ипатов
ru_RU ISO8859-5</pre>
158 7 Владимир Ипатов
Note that you must add this locale *BEFORE* last string:
159 7 Владимир Ипатов
<pre><%= def_locale["."] = " "; def_locale %></pre>