Проект

Общее

Профиль

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

Владимир Ипатов, 05.02.2013 02:07

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