f30908893b9db0be42a4353689dba6ade759e7e9
[racktables-incomplete-works] / README
1 Thank you for selecting RackTables as your datacenter management solution!
2 If you are looking for documentation or wish to send feedback, please
3 look for the respective links at project's web-site (racktables.org).
4
5 *******************************************************
6 * *
7 * INSTALLING RACKTABLES *
8 * *
9 *******************************************************
10
11 *** I. SERVER ***
12
13 RackTables requires a MySQL server version 5.x built with InnoDB and
14 Unicode support and configured appropriately. It also requires an Apache
15 httpd with PHP 5 module and several PHP extensions. Below is a list of
16 known-good distributions with respective setup notes.
17
18 *** Fedora 8-16
19 * MySQL: yum install mysql-server mysql
20 * Apache/PHP: yum install httpd php php-mysql php-pdo php-gd php-snmp \
21 php-mbstring php-bcmath
22 * To enable Unicode, add "character-set-server=utf8" line to "[mysqld]"
23 section of "/etc/my.cnf" file and restart mysqld.
24
25 *** Debian 6
26 * MySQL: aptitude install mysql-server-5.1
27 * Apache/PHP: aptitude install libapache2-mod-php5 php5-gd php5-mysql php5-snmp
28 * To enable Unicode, add "character-set-server=utf8" line to "[mysqld]"
29 section of "/etc/mysql/my.cnf" file and restart mysqld.
30
31 *** ALTLinux 4.0
32 * MySQL: apt-get install MySQL-server
33 * Apache/PHP: apt-get install apache2-httpd-prefork php5-gd2 \
34 php5-pdo_mysql php5-pdo apache2-mod_php5 php5-mbstring
35 * To enable Unicode, add "CHSET=utf8" line to "/etc/sysconfig/mysqld" file
36 and restart mysqld.
37
38 *** openSUSE 11.0
39 * MySQL: YaST -> Software -> software management -> Web and LAMP server -> mysql
40 * Apache/PHP: use YaST to install apache2-mod_php5, php5-gd, php5-mbstring,
41 php5-mysql, php5-bcmath, php5-snmp and php5-ldap
42 * To enable Unicode, add "default-character-set=utf8" line to "[mysql]"
43 section of "/etc/my.cnf" file and restart mysqld.
44
45 *** Scientific Linux 6
46 * MySQL: yum install mysql-server mysql
47 * Apache/PHP: httpd php php-mysql php-pdo php-gd php-mbstring php-bcmath
48 * To enable Unicode, add "character-set-server=utf8" line to "[mysqld]"
49 section of "/etc/my.cnf" file and restart mysqld.
50
51 *** CentOS 5
52 * MySQL: yum install mysql-server mysql
53 * Apache/PHP: httpd php53 php53-mysql php53-pdo php53-gd php53-mbstring \
54 php53-bcmath
55 * To enable Unicode, add "character-set-server=utf8" line to "[mysqld]"
56 section of "/etc/my.cnf" file and restart mysqld.
57
58 *** FreeBSD 8
59 * Apache/PHP:
60 # make -C /usr/ports/www/apache13-modssl install
61 # make -C /usr/ports/www/php5-session install
62 [X] CLI Build CLI version
63 [X] APACHE Build Apache module
64 [X] MULTIBYTE Enable zend multibyte support
65 # make -C /usr/ports/graphics/php5-gd install
66 # make -C /usr/ports/databases/php5-pdo_mysql install
67 # make -C /usr/ports/devel/pcre install
68 !!! Enable UTF-8 support ............ : yes
69 !!! Unicode properties .............. : yes
70 # make -C /usr/ports/devel/php5-pcre install
71 # make -C /usr/ports/converters/php5-mbstring install
72 [X] REGEX Enable multibyte regex support
73
74 # make -C /usr/ports/net-mgmt/php5-snmp install
75 # make -C /usr/ports/net/php5-ldap install
76
77 *** II. FILES ***
78 Unpack the tar.gz/zip archive to a directory of your choice and configure Apache
79 httpd to use "wwwroot" subdirectory as a new DocumentRoot. Alternatively,
80 symlinks to "wwwroot" or even to "index.php" from an existing DocumentRoot are
81 also possible and often adisable (see README.Fedora).
82
83 *** III. INSTALLER ***
84 Open the configured RackTables URL and you will be prompted to configure
85 and initialize the application.
86
87 *******************************************************
88 * *
89 * UPGRADING RACKTABLES *
90 * *
91 *******************************************************
92
93 0. BACKUP YOUR DATABASE and check the release notes below before actually
94 starting the upgrade.
95 1. Remove all existing files except configuration (the "inc/secret.php" file)
96 and local plugins (in the "plugins" directory).
97 2. Put the contents of the new tar.gz/zip archive into the place.
98 3. Open the RackTables page in a browser. The software will detect version
99 mismatch and display a message telling to log in as admin to finish
100 the upgrade.
101 4. Do that and report any errors to the bug tracker or the mailing list.
102
103 *******************************************************
104 * *
105 * RELEASE NOTES *
106 * *
107 *******************************************************
108
109 *** Upgrading to 0.20.7 ***
110
111 From now on the minimum (oldest) release of PHP that can run RackTables is
112 5.2.10. In particular, to continue running RackTables on CentOS 5 it is
113 necessary to replace its php* RPM packages with respective php53* packages
114 before the upgrade (except the JSON package, which PHP 5.3 provides internally).
115
116 Database triggers are used for some data consistency measures. The database
117 user account must have the 'TRIGGER' privilege, which was introduced in
118 MySQL 5.1.7.
119
120 The IPV4OBJ_LISTSRC configuration option is reset to an expression which enables
121 the IP addressing feature for all object types except those listed.
122
123 Tags could now be assigned on the Edit/Properties tab using a text input with
124 auto-completion. Type a star '*' to view full tag tree in auto-complete menu.
125 It is worth to add the following line to the permissions script if the
126 old-fashioned 'Tags' tab is not needed any more:
127 deny {$tab_tags} # this hides 'Tags' tab
128
129 This release converts collation of all DB fields to the utf8_unicode_ci. This
130 procedure may take some time, and could fail if there are rows that differ only
131 by letter case. If this happen, you'll see the failed SQL query in upgrade report
132 with the "Duplicate entry" error message. Feel free to continue using your
133 installation. If desired so, you could eliminate the case-duplicating rows
134 and re-apply the failed query.
135
136 *** Upgrading to 0.20.6 ***
137
138 New MGMT_PROTOS configuration option replaces the TELNET_OBJS_LISTSRC,
139 SSH_OBJS_LISTSRC and RDP_OBJS_LISTSRC options (converting existing settings as
140 necessary). MGMT_PROTOS allows to specify any management protocol for a
141 particular device list using a RackCode filter. The default value
142 ("ssh: {$typeid_4}, telnet: {$typeid_8}") produces "ssh://server.fqdn" for
143 servers and "telnet://switch.fqdn" for network switches.
144
145 *** Upgrading to 0.20.5 ***
146
147 This release introduces the VS groups feature. VS groups is a new way to store
148 and display virtual services configuration. There is a new "ipvs" (VS group)
149 realm. All previously existing VS configuration remains functional and user
150 is free to convert it to the new format, which displays it in a more natural way
151 and allows to generate virtual_server_group keepalived configs. To convert a
152 virtual service to the new format, it is necessary to manually create a VS group
153 object and assign IP addresses to it. The VS group will display a "Migrate" tab
154 to convert the old-style VS objects, which can be removed after a successful
155 conversion.
156
157 The old-style VS configuration becomes DEPRECATED. Its support will be removed
158 in a future major release. So it is strongly recommended to convert it to the
159 new format.
160
161 *** Upgrading to 0.20.4 ***
162
163 Please note that some dictionary items of Cisco Catalyst 2960 series switches
164 were renamed to meet official Cisco classification:
165 2960-48TT => 2960-48TT-L
166 2960-24TC => 2960-24TC-L
167 2960-24TT => 2960-24TT-L
168 2960-8TC => 2960-8TC-L
169 2960G-48TC => 2960G-48TC-L
170 2960G-24TC => 2960G-24TC-L
171 2960G-8TC => 2960G-8TC-L
172 C2960-24 => C2960-24-S
173 C2960G-24PC => C2960-24PC-L
174
175 The DATETIME_FORMAT configuration option used in setting date and time output
176 format now uses a different [1] syntax. During upgrade the option is reset to
177 the default value, which is now %Y-%m-%d (YYYY-MM-DD) per ISO 8601.
178
179 This release intoduces two new configuration options:
180 REVERSED_RACKS_LISTSRC and NEAREST_RACKS_CHECKBOX.
181
182 [1] http://php.net/manual/en/function.strftime.php
183
184 *** Upgrading to 0.20.1 ***
185
186 The 0.20.0 release includes bug which breaks IP networks' capacity displaying on
187 32-bit architecture machines. To fix this, this release makes use of PHP's BC
188 Math module. It is a new reqiurement. Most PHP distributions have this module
189 already enabled, but if yours does not - you need yo recompile PHP.
190
191 Security context of 'ipaddress' page now includes tags from the network
192 containing an IP address. This means that you should audit your permission rules
193 to check there is no unintended allows of changing IPs based on network's
194 tagset. Example:
195 allow {client network} and {New York}
196 This rule now not only allows any operation on NY client networks, but also any
197 operation with IP addresses included in those networks. To fix this, you should
198 change the rule this way:
199 allow {client network} and {New York} and not {$page_ipaddress}
200
201 *** Upgrading to 0.20.0 ***
202
203 WARNING: This release have too many internal changes, some of them were waiting
204 more than a year to be released. So this release is considered "BETA" and is
205 recommended only to curiuos users, who agree to sacrifice the stability to the
206 progress.
207
208 Racks and Rows are now stored in the database as Objects. The RackObject table
209 was renamed to Object. SQL views were created to ease the migration of custom
210 reports and scripts.
211
212 New plugins engine instead of local.php file. To make your own code stored in
213 local.php work, you must move the local.php file into the plugins/ directory.
214 The name of this file does not matter any more. You also can store multiple
215 files in that dir, separate your plugins by features, share them and try the
216 plugins from other people just placing them into plugins/ dir, no more merging.
217
218 $path_to_local_php variable has no special meaning any more.
219 $racktables_confdir variable is now used only to search for secret.php file.
220 $racktables_plugins_dir is a new overridable special variable pointing to
221 plugins/ directory.
222
223 Beginning with this version it is possible to delete IP prefixes, VLANs, Virtual
224 services and RS pools from within theirs properties tab. So please inspect your
225 permissions rules to assure there are no undesired allows for deletion of these
226 objects. To ensure this, you could try this code in the beginning of permissions
227 script:
228
229 allow {userid_1} and {$op_del}
230 deny {$op_del} and ({$tab_edit} or {$tab_properties})
231
232 Hardware gateways engine was rewritten in this version of RackTables. This means
233 that the file gateways/deviceconfig/switch.secrets.php is not used any more. To
234 get information about configuring connection properties and credentials in a new
235 way please visit http://wiki.racktables.org/index.php/Gateways
236
237 This also means that recently added features based on old API (D-Link switches
238 and Linux gateway support contributed by Ilya Evseev) are not working any more
239 and waiting to be forward-ported to new gateways API. Sorry for that.
240
241 Two new config variables appeared in this version:
242 - SEARCH_DOMAINS. Comma-separated list of DNS domains which are considered
243 "base" for your network. If RackTables search engine finds multiple objects
244 based on your search input, but there is only one which FQDN consists of
245 your input and one of these search domains, you will be redirected to this
246 object and other results will be discarded. Such behavior was unconditional
247 since 0.19.3, which caused many objections from users. So welcome this
248 config var.
249 - QUICK_LINK_PAGES. Comma-separated list of RackTables pages to display links
250 to them on top. Each user could have his own list.
251
252 Also some of config variables have changed their default values in this version.
253 This means that upgrade script will change their values if you have them in
254 previous default state. This could be inconvenient, but it is the most effective
255 way to encourage users to use new features. If this behavior is not what you
256 want, simply revert these variables' values:
257 - SHOW_LAST_TAB no => yes
258 - IPV4_TREE_SHOW_USAGE yes =>no (networks' usage is still available
259 by click)
260 - IPV4LB_LISTSRC {$typeid_4} => false
261 - FILTER_DEFAULT_ANDOR or => and (this implicitly enables the feature
262 of dynamic tree shrinking)
263 - FILTER_SUGGEST_EXTRA no => yes (yes, we have extra logical filters!)
264 - IPV4_TREE_RTR_AS_CELL yes => no (display routers as simple text, not
265 cell)
266
267 Also please note that variable IPV4_TREE_RTR_AS_CELL now has third special value
268 besides 'yes' and 'no': 'none'. Use 'none' value if you are experiencing low
269 performance on IP tree page. It will completely disable IP ranges scan for
270 used/spare IPs and the speed of IP tree will increase radically. The price is
271 you will not see the routers in IP tree at all.
272
273 *** Upgrading to 0.19.13 ***
274 A new "date" attribute type has been added. Existing date based fields ("HW
275 warranty expiration", "support contract expiration" and "SW warranty
276 expiration") will be converted to this new type but must be in the format
277 "mm/dd/yyyy" otherwise the conversion will fail.
278
279 *** Upgrading to 0.19.2 ***
280
281 This release is different in filesystem layout. The "gateways" directory has
282 been moved from "wwwroot" directory. This improves security a bit. You can also
283 separate your local settings and add-ons from the core RackTables code. To do
284 that, put a single index.php file into the DocumentRoot of your http server:
285
286 <?php
287 $racktables_confdir='/directory/with/secret.php/and/local.php/';
288 require '/directory_where_you_extracted_racktables_distro/wwwroot/index.php';
289 ?>
290
291 No more files are needed to be available directly over the HTTP. Full list of
292 filesystem paths which could be specified in custom index.php or secret.php:
293 $racktables_gwdir: path to the gateways directory;
294 $racktables_staticdir: path to the directory containing 'pix', 'js', 'css'
295 directories;
296 $racktables_confdir: path where secret.php and local.php are located. It is
297 not recommended to define it in secret.php, cause only
298 the path to local.php will be affected;
299 $path_to_secret_php: Ignore $racktables_confdir when locating secret.php and
300 use the specified path;
301 $path_to_local_php: idem for local.php.
302
303 *** Upgrading to 0.19.0 ***
304
305 The files, which are intended for the httpd (web-server) directory, are now in
306 the "wwwroot" directory of the tar.gz archive. Files outside of that directory
307 are not directly intended for httpd environment and should not be copied to the
308 server.
309
310 This release incorporates ObjectLog functionality, which used to be available as
311 a separate plugin. For the best results it is advised to disable (through
312 local.php) external ObjectLog plugin permanently before the new version is
313 installed. All previously accumulated ObjectLog records will be available
314 through the updated standard interface.
315
316 RackTables is now using PHP JSON extension which is included in the PHP core
317 since 5.2.0.
318
319 The barcode attribute was removed. The upgrade script attempts to preserve the
320 data by moving it to either the 'OEM S/N 1' attribute or to a Log entry. You
321 should backup your database beforehand anyway.
322
323 *** Upgrading to 0.18.x ***
324
325 RackTables from its version 0.18.0 and later is not compatible with RHEL/CentOS
326 (at least with versions up to 5.5) Linux distributions in their default
327 installation. There are yet options to work around that:
328 1. Install RackTables on a server with a different distribution/OS.
329 2. Request Linux distribution vendor to fix the bug with PCRE.
330 3. Repair your RHEL/CentOS installation yourself by fixing its PCRE
331 RPM as explained here: http://bugs.centos.org/view.php?id=3252