Проект

Общее

Профиль

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

Владимир Ипатов, 06.12.2012 16:37

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 1 Владимир Ипатов
If you have LAN segment in yous setup, it will be configured on it, else it will be configured on ganeti bridge.
105 1 Владимир Ипатов
dynamic dns updates is configured by default.
106 9 Владимир Ипатов
Default setup looks like this:
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>
160 10 Владимир Ипатов
161 10 Владимир Ипатов
h2. system mail
162 10 Владимир Ипатов
163 10 Владимир Ипатов
There are two approaches to system mail delivery.
164 10 Владимир Ипатов
1) all system mail delivers to one host called mailhub in puppet (sci by default) and stored on it in local mailbox for given user.
165 10 Владимир Ипатов
2) all system mail delivers to external mailbox via smarthost. It is a more comfortably approach, but requires smarthost that can deliver mail via internet, so the first approach is default.
166 10 Владимир Ипатов
167 10 Владимир Ипатов
This module configures by arguments in nodes.pp. In mailhub schema it is:
168 10 Владимир Ипатов
<pre>
169 10 Владимир Ипатов
node 'default' {
170 10 Владимир Ипатов
...........
171 10 Владимир Ипатов
	class { exim4: smarthost => "default", forward_to => 'admin', stage => main, }
172 10 Владимир Ипатов
}
173 10 Владимир Ипатов
174 10 Владимир Ипатов
node 'sci' {
175 10 Владимир Ипатов
...........
176 10 Владимир Ипатов
	class { exim4: mailhub => yes, forward_to => 'admin', stage => main, }
177 10 Владимир Ипатов
}
178 10 Владимир Ипатов
</pre>
179 10 Владимир Ипатов
All mail delivers to admin(root by default) on sci.
180 10 Владимир Ипатов
And this is example for external mailbox:
181 10 Владимир Ипатов
<pre>
182 10 Владимир Ипатов
node 'default' {
183 10 Владимир Ипатов
...........
184 10 Владимир Ипатов
	class { exim4: smarthost => "my-smarthost.localdomain", forward_to => 'notify@other.domain', stage => main, }
185 10 Владимир Ипатов
}
186 10 Владимир Ипатов
187 10 Владимир Ипатов
node 'sci' {
188 10 Владимир Ипатов
...........
189 10 Владимир Ипатов
	class { exim4: smarthost => "my-smarthost.localdomain", forward_to => 'notify@other.domain', stage => main, }
190 10 Владимир Ипатов
}
191 10 Владимир Ипатов
</pre>