https://kaaproject.github.io/kaa/docs/v0.10.0/Administration-guide/System-installation/Single-node-installation/
單節點安裝
本指南介紹如何在單個Linux節點上安裝和配置Kaa組件。
如果這是您第一次使用Kaa,或者您不確定是否可以手動安裝節點,請使用Kaa Sandbox。Kaa Sandbox模擬已經預先配置的單節點Kaa安裝,因此您可以立即開始開發應用程序。
先決條件
Kaa支持以下操作系統系列,並為每個系列提供安裝包:
- Ubuntu和Debian系統
- Red Hat / CentOS / Oracle系統
注意:本指南經過驗證:
- Ubuntu 14.04 LTS Desktop 64位
- Ubuntu 16.04 LTS桌面64位
- CentOS 6.7 64位
- CentOS 7.2 64位
要使用Kaa,您的系統必須滿足以下最低要求:
- 64位操作系統
- 4 Gb RAM
Kaa需要安裝和配置以下第三方組件:
Kaa已經在MariaDB和PostgreSQL的最新產品版本上進行了測試。
Kaa還需要MongoDB 2.6.9或Cassandra 3.5作為NoSQL數據庫。
第三方組件的安裝將在下一節中介紹。
安裝
第三方組件
按照以下說明安裝所需的第三方組件。
-
下載並安裝常用工具:wget,nc,gzip。
$ sudo yum install wget nc gzip
-
安裝Oracle JDK 8。下載並安裝JDK rpm。
$ cd ~ $ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.rpm" $ sudo yum localinstall jdk-8u60-linux-x64.rpm
更新新JDK的Java替代方案。
$ cd /usr/java/jdk1.8.0_60/ $ sudo alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_60/bin/java 2 $ sudo alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- * 1 /usr/java/jdk1.8.0_60/jre/bin/java + 2 /usr/java/jdk1.8.0_60/bin/java
檢查Java版本。
$ java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
-
安裝SQL DB。Kaa需要MariaDB(默認使用)或PostgreSQL。
按照操作系統的說明進行操作。
從默認存儲庫中排除舊的PostgreSQL,在[base]和[updates]exclude=postgresql*
部分附加一行。
$ sudo nano /etc/yum.repos.d/CentOS-Base.repo ... [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
安裝PostgreSQL 9.4 PGDG文件。
$ sudo yum localinstall https://yum.postgresql.org/9.4/redhat/rhel-7.2-x86_64/pgdg-centos94-9.4-3.noarch.rpm
列出可用的PostgreSQL安裝並安裝PostgreSQL服務器。
$ sudo yum list postgres* $ sudo yum install postgresql94-server
初始化PostgreSQL數據庫。
$ sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb Initializing database ... OK
將數據庫配置為在OS啟動時自動啟動。
$ systemctl enable postgresql-9.4
啟動數據庫。
$ systemctl start postgresql-9.4
使用psql實用程序連接到postgresql-server。
$ sudo -u postgres psql
指定Postgres用戶的密碼(Kaa配置文件中的默認密碼為admin)。
postgres=# \password Enter new password: admin Enter it again: admin
創建一個Kaa數據庫。
CREATE DATABASE "kaa" WITH OWNER "postgres" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0;
更新pg\_hba.conf
文件以允許本地連接。
$ sudo nano /var/lib/pgsql/9.4/data/pg_hba.conf remove lines: local all all peer host all all 127.0.0.1/32 ident add lines: local all all trust host all all 127.0.0.1/32 trust
重啟數據庫。
$ systemctl restart postgresql-9.4
-
下載並提取Zookeeper包。
$ cd /opt $ sudo wget http://www.eu.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz $ sudo tar zxvf zookeeper-3.4.9.tar.gz $ sudo cp zookeeper-3.4.9/conf/zoo_sample.cfg zookeeper-3.4.9/conf/zoo.cfg
創建一個數據目錄。
$ sudo mkdir /var/zookeeper
編輯
dataDir
zookeeper配置文件中的屬性。$ sudo nano /opt/zookeeper-3.4.9/conf/zoo.cfg
... dataDir=/var/zookeeper ...
安裝supervisor實用程序。
$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm $ sudo yum install supervisor
編輯
/etc/supervisord.conf
文件並向其添加有關ZooKeeper的部分。$ sudo nano /etc/supervisord.conf [program:zookeeper] command=/opt/zookeeper-3.4.9/bin/zkServer.sh start-foreground autostart=true autorestart=true startsecs=1
startretries=999 redirect_stderr=false stdout_logfile=/var/log/zookeeper-out stdout_logfile_maxbytes=10MB stdout_logfile_backups=10 stdout_events_enabled=true stderr_logfile=/var/log/zookeeper-err stderr_logfile_maxbytes=100MB stderr_logfile_backups=10 stderr_events_enabled=true將Supervisor配置為在OS啟動時自動啟動。
$ systemctl enable supervisord
啟動Zookeeper。
$ systemctl start supervisord
檢查Zookeeper狀態。
$ sudo supervisorctl zookeeper RUNNING pid 15546, uptime 0:00:41
檢查Zookeeper服務是否正在運行。
$ sudo netstat -ntlp | grep 2181 tcp6 0 0 :::2181 :::* LISTEN 15546/java
-
安裝NoSQL DB。Kaa需要MongoDB(默認使用)或Cassandra。
添加MongoDB yum存儲庫。
$ sudo nano /etc/yum.repos.d/mongodb.repo [mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
安裝MongoDB 2.6。
$ sudo yum install -y mongodb-org
啟動MongoDB。
$ sudo service mongod start
Starting mongod: [ OK ]
驗證MongoDB是否已成功啟動。
$ sudo cat /var/log/mongodb/mongod.log | grep "waiting for connections on port" 2015-09-23T16:39:35.455+0300 [initandlisten] waiting for connections on port 27017
將數據庫配置為在OS啟動時自動啟動。
$ sudo chkconfig mongod on
Kaa服務器組件
要安裝Kaa,您需要下載預先構建的軟件包或從源代碼構建它們。在本指南中,使用了預構建的包。
-
從Kaa下載頁面下載最新的RPM軟件包。
-
解壓縮下載的tarball。
$ tar -xvf kaa-rpm-*.tar.gz
-
安裝節點服務。
$ sudo rpm -i kaa-node.rpm
組態
SQL數據庫
您可以使用MariaDB(默認使用)或PostgreSQL。在配置屬性文件模板是locatied在/etc/kaa-node/conf/
目錄中:maria-dao.properties.template
,mariadb-dao.properties.template
為MariaDB的數據庫和文件postgre-dao.properties.template
,postgresql-dao.properties.template
文件對PostgreSQL。
檢查PostgreSQL用戶名和密碼在服務器配置文件中是否有效。
$ cat /etc/kaa-node/conf/admin-dao.properties | grep jdbc_password jdbc_password=admin $ cat /etc/kaa-node/conf/sql-dao.properties | grep jdbc_password jdbc_password=admin
如果密碼或用戶名不匹配,請編輯配置文件。
$ sudo nano /etc/kaa-node/conf/admin-dao.properties $ sudo nano /etc/kaa-node/conf/sql-dao.properties
要從MariaDB切換到PostgreSQL,請將PostgreSQL配置文件的內容復制到Kaa數據庫配置文件。
$ sudo bash -c "cat /etc/kaa-node/conf/postgre-dao.properties.template > /etc/kaa-node/conf/sql-dao.properties" $ sudo bash -c "cat /etc/kaa-node/conf/postgresql-dao.properties.template > /etc/kaa-node/conf/admin-dao.properties"
NoSQL數據庫
檢查NoSQL數據庫名稱是否正確。
$ cat /etc/kaa-node/conf/nosql-dao.properties | grep nosql_db_provider_name
nosql_db_provider_name=mongodb
如果使用Cassandra,請運行以下命令。
$ sudo cqlsh -f /etc/kaa-node/conf/cassandra.cql $ sudo nano /etc/kaa-node/conf/nosql-dao.properties nosql_db_provider_name=cassandra
網絡接口
要為Operations和Bootstrap服務配置接口,請指定網絡中設備可見的主機名或IP地址。這將允許各種設備與服務器組件通信。
$ sudo nano /etc/kaa-node/conf/kaa-node.properties transport_public_interface=localhost=YOUR_PUBLIC_INTERFACE
火牆
打開管理UI(8080),引導服務(9888,9889)和操作服務(9997,9999)使用的TCP端口。
$ systemctl stop firewalld $ systemctl mask firewalld $ yum install iptables-services $ systemctl enable iptables $ systemctl start iptables $ sudo iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT
啟動
啟動Kaa服務。
$ sudo service kaa-node start
啟動后檢查日志。
$ cat /var/log/kaa/* | grep ERROR
在Web瀏覽器中打開管理UI:[http:// YOUR_SERVER_HOST:8080 / kaaAdmin]。將打開一個頁面,您可以以Kaa管理員身份登錄。