mirror of https://github.com/Icinga/icinga2.git
Migration: Remove broken script, update documentation for work-in-progress.
Refs #5821
This commit is contained in:
parent
6d93679fe8
commit
f85fae8762
|
@ -2,7 +2,6 @@ debian/tmp/etc/icinga2
|
||||||
debian/config/apt.conf etc/icinga2/conf.d/hosts/localhost
|
debian/config/apt.conf etc/icinga2/conf.d/hosts/localhost
|
||||||
usr/bin/icinga2-build*
|
usr/bin/icinga2-build*
|
||||||
usr/bin/icinga2-sign-key
|
usr/bin/icinga2-sign-key
|
||||||
usr/bin/icinga2-migrate-config
|
|
||||||
usr/sbin/icinga2-*-feature
|
usr/sbin/icinga2-*-feature
|
||||||
usr/sbin/icinga2-setup-agent
|
usr/sbin/icinga2-setup-agent
|
||||||
usr/sbin/icinga2-discover-agent
|
usr/sbin/icinga2-discover-agent
|
||||||
|
|
|
@ -8,14 +8,13 @@ Icinga 2 ships its own config migration script.
|
||||||
|
|
||||||
### <a id="configuration-migration-script"></a> Configuration Migration Script
|
### <a id="configuration-migration-script"></a> Configuration Migration Script
|
||||||
|
|
||||||
TODO
|
In order to migrate existing configuration in Icinga 1.x format
|
||||||
|
the Icinga CLI as part of the Icinga Web 2 project will provide
|
||||||
|
a conversion module.
|
||||||
|
|
||||||
Due to the complexity of the Icinga 1.x configuration format the migration
|
Due to the complexity of the Icinga 1.x configuration format the migration
|
||||||
script might not currently work for all use cases.
|
script might not currently work for all use cases.
|
||||||
|
|
||||||
The config migration script provides support for basic Icinga 1.x
|
|
||||||
configuration format migration to native Icinga 2 configuration syntax.
|
|
||||||
|
|
||||||
The migration script tries to preserve your existing template structure and
|
The migration script tries to preserve your existing template structure and
|
||||||
adds new templates where appropriate. However, the original file structure is
|
adds new templates where appropriate. However, the original file structure is
|
||||||
not preserved.
|
not preserved.
|
||||||
|
@ -23,9 +22,6 @@ not preserved.
|
||||||
The migration script uses templates from the Icinga Template Library where
|
The migration script uses templates from the Icinga Template Library where
|
||||||
possible.
|
possible.
|
||||||
|
|
||||||
# mkdir /etc/icinga2/conf.d/migrate
|
|
||||||
# /usr/bin/icinga2-migrate-config -c /etc/icinga/icinga.cfg -o /etc/icinga2/conf.d/migrate
|
|
||||||
|
|
||||||
### <a id="manual-config-migration"></a> Manual Config Migration
|
### <a id="manual-config-migration"></a> Manual Config Migration
|
||||||
|
|
||||||
For a long-term migration of your configuration you should consider re-creating
|
For a long-term migration of your configuration you should consider re-creating
|
||||||
|
|
|
@ -32,12 +32,6 @@ if(UNIX OR CYGWIN)
|
||||||
)
|
)
|
||||||
|
|
||||||
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink ./icinga2-enable-feature \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_SBINDIR}/icinga2-disable-feature\")")
|
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink ./icinga2-enable-feature \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_SBINDIR}/icinga2-disable-feature\")")
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/migration/icinga2-migrate-config
|
|
||||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
|
|
@ -1,99 +1,12 @@
|
||||||
ICINGA 2 CONVERSION SCRIPT FOR ICINGA 1.x CONFIGURATION
|
Icinga 2 Migration Script
|
||||||
=======================================================
|
=========================
|
||||||
|
|
||||||
This config conversion script provides support for basic Icinga 1.x
|
In order to migrate existing configuration in Icinga 1.x format
|
||||||
configuration format conversion to native Icinga 2.x configuration syntax.
|
the Icinga CLI as part of the Icinga Web 2 project will provide
|
||||||
|
a conversion module.
|
||||||
|
|
||||||
It won't just compile all objects and drop them at once, but keep your
|
For work-in-progress details please check
|
||||||
existing 1.x template structure, only adding a new host->service link relation.
|
|
||||||
|
|
||||||
The script will also detect the "attach service to hostgroup and put
|
https://dev.icinga.org/issues/5821
|
||||||
hosts as members" trick from 1.x and convert that into Icinga2's template
|
https://dev.icinga.org/issues/5929
|
||||||
system.
|
|
||||||
|
|
||||||
Furthermore the old "service with contacts and notification commands" logic
|
|
||||||
will be converted into Icinga2's logic with new notification objects,
|
|
||||||
allowing to define notifications directly on the service definition then.
|
|
||||||
|
|
||||||
Commands will be split by type (Check, Event, Notification) and relinked where
|
|
||||||
possible. The host's check_command is dropped, and a possible host check service
|
|
||||||
looked up, if possible. Otherwise a new service object will be added and linked.
|
|
||||||
|
|
||||||
Notifications will be built based on the service->contact relations, and
|
|
||||||
escalations will also be merged into notifications, having times begin/end as
|
|
||||||
additional attributes. Notification options will be converted into the new Icinga2
|
|
||||||
logic.
|
|
||||||
|
|
||||||
Dependencies and Parents are resolved into host and service dependencies with
|
|
||||||
many objects tricks as well.
|
|
||||||
|
|
||||||
Timeperiods will be converted as is, because Icinga2's ITL provides the legacy-timeperiod
|
|
||||||
template which supports that format for compatibility reasons.
|
|
||||||
|
|
||||||
Custom attributes like custom variables, *_urls, etc will be collected into the
|
|
||||||
custom dictionary, while possible macros are automagically converted into the macro
|
|
||||||
dictionary (freely definable macros in Icinga 2.x).
|
|
||||||
|
|
||||||
All required templates will be inherited from Icinga2's Template Library (ITL).
|
|
||||||
|
|
||||||
Regular expressions are not supported, also for the reason that this is optional in Icinga 1.x
|
|
||||||
|
|
||||||
RUN
|
|
||||||
# mkdir /etc/icinga2/migration
|
|
||||||
# /usr/bin/icinga2-migrate-config -c /etc/icinga/icinga.cfg -o /etc/icinga2/migration/
|
|
||||||
|
|
||||||
HELP
|
|
||||||
# /usr/bin/icinga2-migrate-config -h
|
|
||||||
|
|
||||||
VERBOSE
|
|
||||||
# mkdir /etc/icinga2/migration
|
|
||||||
# /usr/bin/icinga2-migrate-config -v -c /etc/icinga/icinga.cfg -o /etc/icinga2/migration/
|
|
||||||
|
|
||||||
TEST
|
|
||||||
Include /etc/icinga2/migration in /etc/icinga2/icinga2.conf and restart Icinga 2
|
|
||||||
|
|
||||||
# vim /etc/icinga2/icinga2.conf
|
|
||||||
|
|
||||||
include "migration/*.conf"
|
|
||||||
|
|
||||||
# service icinga2 restart
|
|
||||||
|
|
||||||
|
|
||||||
REQUIREMENTS
|
|
||||||
- Perl:
|
|
||||||
Data::Dumper
|
|
||||||
File::Find
|
|
||||||
Storable qw(dclone)
|
|
||||||
Getopt::Long qw(:config no_ignore_case bundling)
|
|
||||||
Pod::Usage
|
|
||||||
|
|
||||||
- Icinga2 ITL
|
|
||||||
|
|
||||||
|
|
||||||
DEBUG
|
|
||||||
Compile Icinga2 with --enable-debug=yes and start it with -x. Alternatively, define the
|
|
||||||
ConsoleLogger Object and set severity to "debug".
|
|
||||||
|
|
||||||
object ConsoleLogger "my-debug-log" {
|
|
||||||
severity = "debug"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
NOTES
|
|
||||||
- Excludes (will be ignored in member lists)
|
|
||||||
- Wildcards (* means all)
|
|
||||||
- additive + to += logic (only for the current object, does not work with users)
|
|
||||||
- Dependencies (host deps and parents are merged)
|
|
||||||
- Commands will be split into Check|Event|Notification Commands
|
|
||||||
- null (disable inheritance) only works non-converted values (not on contacts, commands, etc) being 0
|
|
||||||
- notification_options string w,u,f is converted to
|
|
||||||
notification_{state,type}_filter = (StateFilterWarning | StateFilterUnknown | NotificationFilterFlapping)
|
|
||||||
- service escalations are converted into notifications with times = begin/end
|
|
||||||
begin = first_notification * notification_interval (now a time, not a counter)
|
|
||||||
- custom variables, *_url, *image*, notes, 2d_coords will be collected and stashed into the "custom" dictionary
|
|
||||||
similar to the macros dictionary. note: attributes starting with a number must be quoted.
|
|
||||||
|
|
||||||
TODO
|
|
||||||
- Dependency attributes: failure_criteria, inherits_parents, timeperiods
|
|
||||||
- Flapping Thresholds: old vs new logic
|
|
||||||
- some special object tricks, regex
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue