Skip to main content

Установка Fledge

Встановлення Fledge за умовчанням є простим: залежно від використання ви можете встановити нову версію з вихідного коду або з попередньо зібраного пакета. У середовищах, де стандартні параметри не підходять, вам потрібно буде виконати кілька додаткових кроків. У цьому розділі описано інсталяцію Fledge за замовчуванням і найпоширеніші скрипти, коли адміністраторам потрібно змінити поведінку за замовчуванням.

Встановлення Fledge зі збірки

Після того, як ви зібрали Fledge, дотримуючись інструкцій, представлених в , ви можете виконати інсталяцію за замовчуванням за допомогою команди make install. За замовчуванням Fledge встановлюється зі збірки в кореневому каталозі /usr/local/fledge. Оскільки кореневий каталог / є захищеним розташуванням системи, вам знадобляться права суперкористувача для виконання команди. Тому, якщо ви не є суперкористувачем, вам слід увійти як суперкористувач або скористатися командою sudo.

$ sudo make install
mkdir -p /usr/local/fledge
Installing Fledge version 1.8.0, DB schema 2
-- Fledge DB schema check OK: Info: /usr/local/fledge is empty right now. Skipping DB schema check.
cp VERSION /usr/local/fledge
cd cmake_build ; cmake /home/fledge/Fledge/
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- system
-- thread
-- chrono
-- date_time
-- atomic
-- Found SQLite version 3.11.0: /usr/lib/x86_64-linux-gnu/libsqlite3.so
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- system
-- thread
-- chrono
-- date_time
-- atomic
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fledge/Fledge/cmake_build
cd cmake_build ; make
make[1]: Entering directory '/home/fledge/Fledge/cmake_build'
...

Ось основні кроки встановлення:

  • Створіть каталог /usr/local/fledge, якщо він не існує
  • Створіть код, який ще не скомпільовано та не зібрано
  • Створіть усі необхідні цільові каталоги та скопіюйте виконувані файли, скрипти та файли конфігурації
  • Змініть право власності на каталог data, якщо користувач інсталяції є суперкористувачем (ми рекомендуємо запускати Fledge як звичайного користувача, тобто не як суперкористувача).

Fledge тепер присутній у /usr/local/fledge і готовий до запуску. Початковий скрипт знаходиться в каталозі /usr/local/fledge/bin

$ cd /usr/local/fledge/
$ ls -l
total 32
drwxr-xr-x 2 root root 4096 Apr 24 18:07 bin
drwxr-xr-x 4 fledge fledge 4096 Apr 24 18:07 data
drwxr-xr-x 4 root root 4096 Apr 24 18:07 extras
drwxr-xr-x 4 root root 4096 Apr 24 18:07 plugins
drwxr-xr-x 3 root root 4096 Apr 24 18:07 python
drwxr-xr-x 6 root root 4096 Apr 24 18:07 scripts
drwxr-xr-x 2 root root 4096 Apr 24 18:07 services
-rwxr-xr-x 1 root root 37 Apr 24 18:07 VERSION

$ bin/fledge
Usage: fledge {start|start --safe-mode|stop|status|reset|kill|help|version}

$ bin/fledge help
Usage: fledge {start|start --safe-mode|stop|status|reset|kill|help|version}
Fledge v1.3.1 admin script
The script is used to start Fledge
Arguments:
start - Start Fledge core (core will start other services).
start --safe-mode - Start in safe mode (only core and storage services will be started)
stop - Stop all Fledge services and processes
kill - Kill all Fledge services and processes
status - Show the status for the Fledge services
reset - Restore Fledge factory settings
WARNING! This command will destroy all your data!
version - Print Fledge version
help - This text

$ bin/fledge start
Starting Fledge......
Fledge started.

Змінні середовища

In order to operate, Fledge requires two environment variables:

  • FLEDGE_ROOT: the root directory for Fledge. The default is /usr/local/fledge
  • FLEDGE_DATA: the data directory. The default is $FLEDGE_ROOT/data, hence whichever value FLEDGE_ROOT has plus the data sub-directory, or /usr/local/fledge/data in case FLEDGE_ROOT is set as default value.

The setenv.sh script

У папці extras/scripts щойно встановленого Fledge ви можете знайти скрипт setenv.sh. Цей скрипт можна використовувати для встановлення змінних середовища, які використовує Fledge, і оновлення вашої змінної середовища PATH. Ви можете викликати скрипт зі своєї оболонки або додати ту саму команду до скрипту .profile:

$ cat /usr/local/fledge/extras/scripts/setenv.sh
#!/bin/sh

##--------------------------------------------------------------------
## Copyright (c) 2018 OSIsoft, LLC
##
## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License.
## You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
##--------------------------------------------------------------------

#
# This script sets the user environment to facilitate the administration
# of Fledge
#
# You can execute this script from shell, using for example this command:
#
# source /usr/local/fledge/extras/scripts/setenv.sh
#
# or you can add the same command at the bottom of your profile script
# {HOME}/.profile.
#

export FLEDGE_ROOT="/usr/local/fledge"
export FLEDGE_DATA="${FLEDGE_ROOT}/data"

export PATH="${FLEDGE_ROOT}/bin:${PATH}"
export LD_LIBRARY_PATH="${FLEDGE_ROOT}/lib:${LD_LIBRARY_PATH}"

$ source /usr/local/fledge/extras/scripts/setenv.sh

The fledge.service script

Іншим файлом, доступним у папці extras/scripts, є скрипт fledge.service. Цей скрипт можна використовувати для встановлення Fledge як сервіс Linux. Якщо ви бажаєте це зробити, ми рекомендуємо встановити пакет Fledge, але якщо у вас є спеціальна збірка або з інших причин ви віддаєте перевагу працювати з Fledge, створеним із вихідного коду, цей скрипт буде дуже корисним.

Ви можете встановити Fledge як сервіс, виконавши такі прості кроки:

  • Після команди make install скопіюйте fledge.service з простою назвою fledge у папку /etc/init.d.
  • Виконайте команду systemctl enable fledge.service, щоб увімкнути Fledge як сервіс
  • Виконайте команду systemctl start fledge.service, якщо ви хочете запустити Fledge
$ sudo cp /usr/local/fledge/extras/scripts/fledge.service /etc/init.d/fledge
$ sudo systemctl status fledge.service
● fledge.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
$ sudo systemctl enable fledge.service
fledge.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable fledge
$ sudo systemctl status fledge.service
● fledge.service - LSB: Fledge
Loaded: loaded (/etc/init.d/fledge; bad; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd-sysv-generator(8)
$ sudo systemctl start fledge.service
$ sudo systemctl status fledge.service
● fledge.service - LSB: Fledge
Loaded: loaded (/etc/init.d/fledge; generated)
Active: active (running) since Thu 2020-05-28 18:42:07 IST; 9min ago
Docs: man:systemd-sysv-generator(8)
Process: 5047 ExecStart=/etc/init.d/fledge start (code=exited, status=0/SUCCESS)
Tasks: 27 (limit: 4680)
CGroup: /system.slice/fledge.service
├─5123 python3 -m fledge.services.core
├─5331 /usr/local/fledge/services/fledge.services.storage --address=0.0.0.0 --port=34827
├─8119 /bin/sh tasks/north_c --port=34827 --address=127.0.0.1 --name=OMF to PI north
└─8120 ./tasks/sending_process --port=34827 --address=127.0.0.1 --name=OMF to PI north
...

Встановлення пакета Debian

У нас є версії Fledge, доступні для вас як пакети Debian. Перевірте щоб переглянути доступні версії та платформи.

Отримання та встановлення пакета Debian

Перевірте щоб знайти пакет для встановлення

Після завантаження пакета встановіть його за допомогою команди apt-get. Ви можете використовувати apt-get, щоб інсталювати локальний пакет Debian і автоматично отримати всі необхідні пакети, визначені як передумови для Fledge. Зауважте, що вам може знадобитися встановити пакет від імені суперкористувача (або за допомогою команди sudo) і спочатку перемістити пакет до каталогу кешу apt (/var/cache/apt/archives).

Наприклад, якщо ви інсталюєте Fledge на машині Intel x86_64, ви можете ввести цю команду, щоб завантажити пакет:

$ wget https://fledge-iot.s3.amazonaws.com/1.8.0/ubuntu1804/x86_64/fledge-1.8.0_x86_64_ubuntu1804.tgz
--2020-05-28 18:24:12-- https://fledge-iot.s3.amazonaws.com/1.8.0/ubuntu1804/x86_64/fledge-1.8.0_x86_64_ubuntu1804.tgz
Resolving fledge-iot.s3.amazonaws.com (fledge-iot.s3.amazonaws.com)... 52.217.40.188
Connecting to fledge-iot.s3.amazonaws.com (fledge-iot.s3.amazonaws.com)|52.217.40.188|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 24638625 (23M) [application/x-tar]
Saving to: ‘fledge-1.8.0_x86_64_ubuntu1804.tgz’

fledge-1.8.0_x86_64_ubuntu1804.tg 100%[============================================================>] 23.50M 4.30MB/s in 8.3s

2020-05-28 18:24:26 (2.84 MB/s) - ‘fledge-1.8.0_x86_64_ubuntu1804.tgz’ saved [24638625/24638625]

Ми рекомендуємо спочатку виконати update-upgrade-update системи, потім ви можете розпакувати файл fledge-1.8.0_x86_64_ubuntu1804.tgz і скопіювати пакет Fledge у каталог apt cache і встановити його.

$ sudo apt update
Hit:1 http://gb.archive.ubuntu.com/ubuntu xenial InRelease
...
$ sudo apt upgrade
...
$ sudo apt update
...
$ sudo cp fledge-1.8.0-x86_64.deb /var/cache/apt/archives/.
...
$ sudo apt install /var/cache/apt/archives/fledge-1.8.0-x86_64.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'fledge' instead of '/var/cache/apt/archives/fledge-1.8.0-x86_64.deb'
The following packages were automatically installed and are no longer required:
...
Unpacking fledge (1.8.0) ...
Setting up fledge (1.8.0) ...
Resolving data directory
Data directory does not exist. Using new data directory
Installing service script
Generating certificate files
Certificate files do not exist. Generating new certificate files.
Creating a self signed SSL certificate ...
Certificates created successfully, and placed in data/etc/certs
Generating auth certificate files
CA Certificate file does not exist. Generating new CA certificate file.
Creating ca SSL certificate ...
ca certificate created successfully, and placed in data/etc/certs
Admin Certificate file does not exist. Generating new admin certificate file.
Creating user SSL certificate ...
user certificate created successfully for admin, and placed in data/etc/certs
User Certificate file does not exist. Generating new user certificate file.
Creating user SSL certificate ...
user certificate created successfully for user, and placed in data/etc/certs
Setting ownership of Fledge files
Calling Fledge package update script
Linking update task
Changing setuid of update_task.apt
Removing task/update
Create link file
Copying sudoers file
Setting setuid bit of cmdutil
Enabling Fledge service
fledge.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable fledge
Starting Fledge service

Як ви можете бачити з результату, інсталяція автоматично реєструє Fledge як сервіс, тому вона з’явиться під час запуску та вже запущена, коли ви завершите команду.

Перевірте щойно встановлений пакет:

$ sudo dpkg -l | grep fledge
ii fledge 1.8.0 amd64 Fledge, the open source platform for the Internet of Things

Ви також можете перевірити сервіс, який зараз працює:

$ sudo systemctl status fledge.service
● fledge.service - LSB: Fledge
Loaded: loaded (/etc/init.d/fledge; generated)
Active: active (running) since Thu 2020-05-28 18:42:07 IST; 9min ago
Docs: man:systemd-sysv-generator(8)
Process: 5047 ExecStart=/etc/init.d/fledge start (code=exited, status=0/SUCCESS)
Tasks: 27 (limit: 4680)
CGroup: /system.slice/fledge.service
├─5123 python3 -m fledge.services.core
├─5331 /usr/local/fledge/services/fledge.services.storage --address=0.0.0.0 --port=34827
├─8119 /bin/sh tasks/north_c --port=34827 --address=127.0.0.1 --name=OMF to PI north
└─8120 ./tasks/sending_process --port=34827 --address=127.0.0.1 --name=OMF to PI north
...

Перевірте, чи працює Fledge за допомогою команди fledge:

$ /usr/local/fledge/bin/fledge status
Fledge v1.8.0 running.
Fledge Uptime: 162 seconds.
Fledge records: 0 read, 0 sent, 0 purged.
Fledge does not require authentication.
=== Fledge services:
fledge.services.core
...
=== Fledge tasks:
...

Не забудьте додати setenv.sh, доступний у каталозі /usr/local/fledge/extras/scripts*, до скрипту запуску користувача .profile, якщо ви хочете мати легкий доступ до інструментів Fledge, і ...

...Вітаємо! Це все, що вам потрібно зробити, тепер Fledge готовий до запуску.

Оновлення або зниження версії Fledge

Оновити або знизити Fledge, починаючи з версії 1.2, так само просто, як установити його з нуля: просто дотримуйтесь інструкцій у попередньому розділі щодо встановлення, і пакет подбає про шлях оновлення/пониження. Встановлення не продовжиться, якщо немає шляху для оновлення або пониження поточної встановленої версії. Ви все одно повинні перевірити попередні умови, перш ніж застосовувати оновлення. Зрозуміло, що старі дані не будуть втрачені, за потреби буде оновлено/понижено схему.

Видалення пакета Debian

Використовуйте команду apt чи apt-get для видалення Fledge:

$ sudo apt purge fledge
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libmodbus-dev libmodbus5
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
fledge*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 160251 files and directories currently installed.)
Removing fledge (1.8.0) ...
Fledge is currently running.
Stop Fledge service.
Kill Fledge.
Disable Fledge service.
fledge.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable fledge
Remove Fledge service script
Reset systemctl
Cleanup of files
Remove fledge sudoers file
(Reading database ... 159822 files and directories currently installed.)
Purging configuration files for fledge (1.8.0) ...
Cleanup of files
Remove fledge sudoers file
dpkg: warning: while removing fledge, directory '/usr/local/fledge' not empty so not removed

Команда також видаляє встановлений сервіс. Ви можете помітити попередження в останньому рядку виводу команди: це пов’язано з тим, що каталог даних (/usr/local/fledge/data by default) не було видалено на випадок, якщо адміністратор захоче проаналізувати або повторно використати дані.