-
Notifications
You must be signed in to change notification settings - Fork 8.5k
[dev_docs] How to build a kibana distributable tutorial #99827
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
mistic
merged 16 commits into
elastic:master
from
mistic:how-to-build-a-kibana-distributable-tutorial
May 24, 2021
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
ee26fcc
docs(NA): [dev docs] Add how to build a Kibana distributable tutorial
mistic e95a38c
Merge remote-tracking branch 'upstream/master' into how-to-build-a-ki…
mistic 01f6a99
Merge remote-tracking branch 'upstream/master' into how-to-build-a-ki…
mistic e671ac7
Merge remote-tracking branch 'upstream/master' into how-to-build-a-ki…
mistic 955aef8
docs(NA): including last step about building a kibana distributable t…
mistic d8eb88f
docs(NA): add dev docs images
mistic d173731
docs(NA): include image for target folder with os packages and distri…
mistic 563ef74
docs(NA): apply feedback received on the PR review
mistic ad08913
chore(NA): add rpm to brew
mistic 4714d3d
chore(NA): update dev_docs/tutorials/building_a_kibana_distributable.mdx
mistic b0c3198
chore(NA): update dev_docs/tutorials/building_a_kibana_distributable.mdx
mistic ad343ec
docs(NA): update docker names to capitalized
mistic 16f87fc
Merge branch 'master' into how-to-build-a-kibana-distributable-tutorial
kibanamachine 0e791a3
Merge branch 'master' into how-to-build-a-kibana-distributable-tutorial
kibanamachine 04e43cd
Merge branch 'master' into how-to-build-a-kibana-distributable-tutorial
kibanamachine ee10bdf
Merge branch 'master' into how-to-build-a-kibana-distributable-tutorial
kibanamachine File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Binary file added
BIN
+1.22 MB
dev_docs/assets/target_folder_with_a_kibana_distributable_and_os_packages.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,135 @@ | ||
| --- | ||
| id: kibDevTutorialBuildingDistributable | ||
| slug: /kibana-dev-docs/tutorial/building-distributable | ||
| title: Building a Kibana distributable | ||
| summary: Learn how to build a Kibana distributable | ||
| date: 2021-05-10 | ||
| tags: ['kibana', 'onboarding', 'dev', 'tutorials', 'build', 'distributable'] | ||
| --- | ||
|
|
||
| On the course of that tutorial it will be possible to learn more about how we can create a Kibana distributable | ||
| as well as handle its different main configurations. | ||
|
|
||
| At any given point, you can get CLI help running the following command: | ||
|
|
||
| ```bash | ||
| yarn build --help | ||
| ``` | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| For the basic steps of the build we only require you to use one of the following operating systems: | ||
|
|
||
| - Linux | ||
| - macOS | ||
|
|
||
| However if as part of the build you also want to generate Linux installation packages (deb, rpm) or Docker images there | ||
| are other dependencies to have in mind as those installation packages and Docker images generation are run using fpm, dpkg, rpm, and Docker. | ||
|
|
||
| ### For Linux Installation Packages Build | ||
|
|
||
| Please make sure you have the following dependencies installed: | ||
|
|
||
| #### Install FPM dependencies | ||
|
|
||
| **On OSX/macOS:** | ||
|
|
||
| ```bash | ||
| brew install gnu-tar rpm | ||
| ``` | ||
|
|
||
| **On Red Hat systems (Fedora 22 or older, CentOS, etc):** | ||
|
|
||
| ```bash | ||
| yum install ruby-devel gcc make rpm-build rubygems | ||
| ``` | ||
|
|
||
| **On Fedora 23 or newer:** | ||
|
|
||
| ```bash | ||
| dnf install ruby-devel gcc make rpm-build libffi-devel | ||
| ``` | ||
|
|
||
| **On Oracle Linux 7.x systems:** | ||
|
|
||
| ```bash | ||
| yum-config-manager --enable ol7_optional_latest | ||
| yum install ruby-devel gcc make rpm-build rubygems | ||
| ``` | ||
|
|
||
| **On Debian-derived systems (Debian, Ubuntu, etc):** | ||
|
|
||
| ```bash | ||
| apt-get install ruby ruby-dev rubygems build-essential | ||
| ``` | ||
|
|
||
| #### Install FPM | ||
|
|
||
| Finally install fpm with the gem tool with: | ||
|
|
||
| ```bash | ||
| gem install fpm -v 1.5.0 | ||
| ``` | ||
|
|
||
| ### For Docker Images Build | ||
|
|
||
| For Docker, the installation instructions can be found at [Install Docker Engine](https://docs.docker.com/engine/install/). | ||
|
|
||
|
|
||
| ## Create a Kibana distributable | ||
|
|
||
| In a great majority of the use cases where we need to build a Kibana distributable, we just need the archives containing the | ||
| node executable and the bundled code of the application. | ||
|
|
||
| By doing that Linux installation packages and Docker images will be excluded and as a result, the build will be quicker. | ||
|
|
||
| We can do it by simply running: | ||
|
|
||
| ```bash | ||
| yarn build --skip-os-packages | ||
| ``` | ||
|
|
||
| Note that we used `--skip-os-packages` which will skip the OS packages build. | ||
|
|
||
| > In case you are testing something and running that same command a couple of times, `--skip-node-download` can be used | ||
| to speed up the process by a little. | ||
|
|
||
| At the end of the process a Kibana distributable was created in a `target` folder created relative to your repository checkout. | ||
| The folder will look like the following: | ||
|
|
||
|  | ||
|
|
||
| ## Controlling the log levels | ||
|
|
||
| By default, when building the distributable, the `debug` log level will be used across all the steps. | ||
| That default setting should give us a good amount of information about the tasks being done. | ||
|
|
||
| To turn it off you can run the build along `--no-debug` flag. At that point that information will no longer be printed out. | ||
|
|
||
| For a longer and verbose logging than `debug` there is other option that can be passed along the build command which is `--verbose`. | ||
|
|
||
| ## Create a Kibana distributable with Linux installation packages and Docker images | ||
|
|
||
| If you comply with every prerequisite and dependency listed above, then there is also the option to create a Kibana distributable along with | ||
| Linux installation packages like rpm and deb or Docker images. | ||
|
|
||
| To achieve it, you can run: | ||
|
|
||
| ```bash | ||
| yarn build | ||
| ``` | ||
|
|
||
| At the end you will get the Kibana distributable archives plus the Docker images and both an rpm and a deb package. | ||
|
|
||
| To specify just a single installation package or Docker images to build instead of all of them you can add rpm, deb or docker-images as an argument: | ||
|
|
||
| ```bash | ||
| yarn build --deb | ||
| yarn build --rpm | ||
| yarn build --docker-images | ||
| ``` | ||
|
|
||
| Again the distributable contents resulting from running the build command can be found in a `target` folder created relative to the repository after the build completes. | ||
| It will look something like: | ||
|
|
||
|  | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.