mirror of
https://github.com/elastic/logstash.git
synced 2025-04-25 23:27:19 -04:00
This new command replace the old workflow of `pack`, `unpack` and the `install --local`, and wrap all the logic into one uniform way of installing plugins. The work is based on the flow developed for installing an x-pack inside Logstash, when you call prepare-offline-pack, the specified plugins and their dependencies will be packaged in a zip. And this zip can be installed with the same flow as the pack. Definition: Source Logstash: Where you run the prepare-offline-pack. Target Logstash: Where you install the offline package. PROS: - If you install a .gem in the source logstash, the .gem and his dependencies will be bundled. - The install flow doesn't need to have access to the internet. - Nothing special need to be setup in the target logstash environment. CONS: - The is one minor drawback, the plugins need to have their JARS bundled with them for this flow to work, this is currently the case for all the official plugins. - The source Logstash need to have access to the internet when you install plugins before packaging them. Usage examples: bin/logstash-plugin prepare-offline-pack logstash-input-beats bin/logstash-plugin prepare-offline-pack logstash-filter-jdbc logstash-input-beats bin/logstash-plugin prepare-offline-pack logstash-filter-* bin/logstash-plugin prepare-offline-pack logstash-filter-* logstash-input-beats How to install: bin/logstash-plugin install file:///tmp/logstash-offline-plugins-XXXX.zip Fixes #6404
21 lines
640 B
Ruby
21 lines
640 B
Ruby
# encoding: utf-8
|
|
require "bootstrap/util/compress"
|
|
require "fileutils"
|
|
|
|
class LogStash::PluginManager::PackCommand < LogStash::PluginManager::Command
|
|
def archive_manager
|
|
zip? ? LogStash::Util::Zip : LogStash::Util::Tar
|
|
end
|
|
|
|
def file_extension
|
|
zip? ? ".zip" : ".tar.gz"
|
|
end
|
|
|
|
def signal_deprecation_warning_for_pack
|
|
message =<<-EOS
|
|
The pack and the unpack command are now deprecated and will be removed in a future version of Logstash.
|
|
See the `prepare-offline-pack` to update your workflow. You can get documentation about this by running `bin/logstash-plugin prepare-offline-pack --help`
|
|
EOS
|
|
puts message
|
|
end
|
|
end
|