Revert "- rebase against master branch"
[racktables] / 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 (
5 *******************************************************
6 * *
8 * *
9 *******************************************************
11 *** I. SERVER ***
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.
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.
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.
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.
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.
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.
51 *** FreeBSD 8
52 * Apache/PHP:
53 # make -C /usr/ports/www/apache13-modssl install
54 # make -C /usr/ports/www/php5-session install
55 [X] CLI Build CLI version
56 [X] APACHE Build Apache module
57 [X] MULTIBYTE Enable zend multibyte support
58 # make -C /usr/ports/graphics/php5-gd install
59 # make -C /usr/ports/databases/php5-pdo_mysql install
60 # make -C /usr/ports/devel/pcre install
61 !!! Enable UTF-8 support ............ : yes
62 !!! Unicode properties .............. : yes
63 # make -C /usr/ports/devel/php5-pcre install
64 # make -C /usr/ports/converters/php5-mbstring install
65 [X] REGEX Enable multibyte regex support
67 # make -C /usr/ports/net-mgmt/php5-snmp install
68 # make -C /usr/ports/net/php5-ldap install
70 *** II. FILES ***
71 Unpack the tar.gz/zip archive to a directory of your choice and configure Apache
72 httpd to use "wwwroot" subdirectory as a new DocumentRoot. Alternatively,
73 symlinks to "wwwroot" or even to "index.php" from an existing DocumentRoot are
74 also possible and often adisable (see README.Fedora).
76 *** III. INSTALLER ***
77 Open the configured RackTables URL and you will be prompted to configure
78 and initialize the application.
80 *******************************************************
81 * *
83 * *
84 *******************************************************
86 0. BACKUP YOUR DATABASE and check the release notes below before actually
87 starting the upgrade.
88 1. Remove all existing files except configuration (the "inc/secret.php" file)
89 and local plugins (in the "plugins" directory).
90 2. Put the contents of the new tar.gz/zip archive into the place.
91 3. Open the RackTables page in a browser. The software will detect version
92 mismatch and display a message telling to log in as admin to finish
93 the upgrade.
94 4. Do that and report any errors to the bug tracker or the mailing list.
96 *******************************************************
97 * *
99 * *
100 *******************************************************
102 *** Upgrading to 0.21.0 ***
104 This release uses database triggers for consistency measures. The database
105 user account must have the 'TRIGGER' privilege, which was introduced in
106 MySQL 5.1.7.
108 Cable paths can be traced and displayed in a graphical format. This requires
109 the Image_GraphViz PEAR module (
111 New MGMT_PROTOS configuration option replaces the TELNET_OBJS_LISTSRC,
112 SSH_OBJS_LISTSRC and RDP_OBJS_LISTSRC options (converting existing settings as
113 necessary). MGMT_PROTOS allows to specify any management protocol for a
114 particular device list using a RackCode filter. The default value
115 ("ssh: {$typeid_4}, telnet: {$typeid_8}") produces "ssh://server.fqdn" for
116 servers and "telnet://switch.fqdn" for network switches.
118 *** Upgrading to 0.20.5 ***
120 This release introduces the VS groups feature. VS groups is a new way to store
121 and display virtual services configuration. There is a new "ipvs" (VS group)
122 realm. All previously existing VS configuration remains functional and user
123 is free to convert it to the new format, which displays it in a more natural way
124 and allows to generate virtual_server_group keepalived configs. To convert a
125 virtual service to the new format, it is necessary to manually create a VS group
126 object and assign IP addresses to it. The VS group will display a "Migrate" tab
127 to convert the old-style VS objects, which can be removed after a successful
128 conversion.
130 The old-style VS configuration becomes DEPRECATED. Its support will be removed
131 in a future major release. So it is strongly recommended to convert it to the
132 new format.
134 *** Upgrading to 0.20.4 ***
136 Please note that some dictionary items of Cisco Catalyst 2960 series switches
137 were renamed to meet official Cisco classification:
138 2960-48TT => 2960-48TT-L
139 2960-24TC => 2960-24TC-L
140 2960-24TT => 2960-24TT-L
141 2960-8TC => 2960-8TC-L
142 2960G-48TC => 2960G-48TC-L
143 2960G-24TC => 2960G-24TC-L
144 2960G-8TC => 2960G-8TC-L
145 C2960-24 => C2960-24-S
146 C2960G-24PC => C2960-24PC-L
148 The DATETIME_FORMAT configuration option used in setting date and time output
149 format now uses a different [1] syntax. During upgrade the option is reset to
150 the default value, which is now %Y-%m-%d (YYYY-MM-DD) per ISO 8601.
152 This release intoduces two new configuration options:
155 [1]
157 *** Upgrading to 0.20.1 ***
159 The 0.20.0 release includes bug which breaks IP networks' capacity displaying on
160 32-bit architecture machines. To fix this, this release makes use of PHP's BC
161 Math module. It is a new reqiurement. Most PHP distributions have this module
162 already enabled, but if yours does not - you need yo recompile PHP.
164 Security context of 'ipaddress' page now includes tags from the network
165 containing an IP address. This means that you should audit your permission rules
166 to check there is no unintended allows of changing IPs based on network's
167 tagset. Example:
168 allow {client network} and {New York}
169 This rule now not only allows any operation on NY client networks, but also any
170 operation with IP addresses included in those networks. To fix this, you should
171 change the rule this way:
172 allow {client network} and {New York} and not {$page_ipaddress}
174 *** Upgrading to 0.20.0 ***
176 WARNING: This release have too many internal changes, some of them were waiting
177 more than a year to be released. So this release is considered "BETA" and is
178 recommended only to curiuos users, who agree to sacrifice the stability to the
179 progress.
181 Racks and Rows are now stored in the database as Objects. The RackObject table
182 was renamed to Object. SQL views were created to ease the migration of custom
183 reports and scripts.
185 New plugins engine instead of local.php file. To make your own code stored in
186 local.php work, you must move the local.php file into the plugins/ directory.
187 The name of this file does not matter any more. You also can store multiple
188 files in that dir, separate your plugins by features, share them and try the
189 plugins from other people just placing them into plugins/ dir, no more merging.
191 $path_to_local_php variable has no special meaning any more.
192 $racktables_confdir variable is now used only to search for secret.php file.
193 $racktables_plugins_dir is a new overridable special variable pointing to
194 plugins/ directory.
196 Beginning with this version it is possible to delete IP prefixes, VLANs, Virtual
197 services and RS pools from within theirs properties tab. So please inspect your
198 permissions rules to assure there are no undesired allows for deletion of these
199 objects. To ensure this, you could try this code in the beginning of permissions
200 script:
202 allow {userid_1} and {$op_del}
203 deny {$op_del} and ({$tab_edit} or {$tab_properties})
205 Hardware gateways engine was rewritten in this version of RackTables. This means
206 that the file gateways/deviceconfig/switch.secrets.php is not used any more. To
207 get information about configuring connection properties and credentials in a new
208 way please visit
210 This also means that recently added features based on old API (D-Link switches
211 and Linux gateway support contributed by Ilya Evseev) are not working any more
212 and waiting to be forward-ported to new gateways API. Sorry for that.
214 Two new config variables appeared in this version:
215 - SEARCH_DOMAINS. Comma-separated list of DNS domains which are considered
216 "base" for your network. If RackTables search engine finds multiple objects
217 based on your search input, but there is only one which FQDN consists of
218 your input and one of these search domains, you will be redirected to this
219 object and other results will be discarded. Such behavior was unconditional
220 since 0.19.3, which caused many objections from users. So welcome this
221 config var.
222 - QUICK_LINK_PAGES. Comma-separated list of RackTables pages to display links
223 to them on top. Each user could have his own list.
225 Also some of config variables have changed their default values in this version.
226 This means that upgrade script will change their values if you have them in
227 previous default state. This could be inconvenient, but it is the most effective
228 way to encourage users to use new features. If this behavior is not what you
229 want, simply revert these variables' values:
230 - SHOW_LAST_TAB no => yes
231 - IPV4_TREE_SHOW_USAGE yes =>no (networks' usage is still available
232 by click)
233 - IPV4LB_LISTSRC {$typeid_4} => false
234 - FILTER_DEFAULT_ANDOR or => and (this implicitly enables the feature
235 of dynamic tree shrinking)
236 - FILTER_SUGGEST_EXTRA no => yes (yes, we have extra logical filters!)
237 - IPV4_TREE_RTR_AS_CELL yes => no (display routers as simple text, not
238 cell)
240 Also please note that variable IPV4_TREE_RTR_AS_CELL now has third special value
241 besides 'yes' and 'no': 'none'. Use 'none' value if you are experiencing low
242 performance on IP tree page. It will completely disable IP ranges scan for
243 used/spare IPs and the speed of IP tree will increase radically. The price is
244 you will not see the routers in IP tree at all.
246 *** Upgrading to 0.19.13 ***
247 A new "date" attribute type has been added. Existing date based fields ("HW
248 warranty expiration", "support contract expiration" and "SW warranty
249 expiration") will be converted to this new type but must be in the format
250 "mm/dd/yyyy" otherwise the conversion will fail.
252 *** Upgrading to 0.19.2 ***
254 This release is different in filesystem layout. The "gateways" directory has
255 been moved from "wwwroot" directory. This improves security a bit. You can also
256 separate your local settings and add-ons from the core RackTables code. To do
257 that, put a single index.php file into the DocumentRoot of your http server:
259 <?php
260 $racktables_confdir='/directory/with/secret.php/and/local.php/';
261 require '/directory_where_you_extracted_racktables_distro/wwwroot/index.php';
262 ?>
264 No more files are needed to be available directly over the HTTP. Full list of
265 filesystem paths which could be specified in custom index.php or secret.php:
266 $racktables_gwdir: path to the gateways directory;
267 $racktables_staticdir: path to the directory containing 'pix', 'js', 'css'
268 directories;
269 $racktables_confdir: path where secret.php and local.php are located. It is
270 not recommended to define it in secret.php, cause only
271 the path to local.php will be affected;
272 $path_to_secret_php: Ignore $racktables_confdir when locating secret.php and
273 use the specified path;
274 $path_to_local_php: idem for local.php.
276 *** Upgrading to 0.19.0 ***
278 The files, which are intended for the httpd (web-server) directory, are now in
279 the "wwwroot" directory of the tar.gz archive. Files outside of that directory
280 are not directly intended for httpd environment and should not be copied to the
281 server.
283 This release incorporates ObjectLog functionality, which used to be available as
284 a separate plugin. For the best results it is advised to disable (through
285 local.php) external ObjectLog plugin permanently before the new version is
286 installed. All previously accumulated ObjectLog records will be available
287 through the updated standard interface.
289 RackTables is now using PHP JSON extension which is included in the PHP core
290 since 5.2.0.
292 The barcode attribute was removed. The upgrade script attempts to preserve the
293 data by moving it to either the 'OEM S/N 1' attribute or to a Log entry. You
294 should backup your database beforehand anyway.
296 *** Upgrading to 0.18.x ***
298 RackTables from its version 0.18.0 and later is not compatible with RHEL/CentOS
299 (at least with versions up to 5.5) Linux distributions in their default
300 installation. There are yet options to work around that:
301 1. Install RackTables on a server with a different distribution/OS.
302 2. Request Linux distribution vendor to fix the bug with PCRE.
303 3. Repair your RHEL/CentOS installation yourself by fixing its PCRE
304 RPM as explained here: