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的最新产品版本上进行了测试。
第三方组件的安装将在下一节中介绍。
安装
第三方组件
按照以下说明安装所需的第三方组件。
下载并安装常用工具: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/
gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 exclude=postgresql* #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 exclude=postgresql* ...
Show less
$ 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
编辑dataDirzookeeper配置文件中的属性。
$ 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
Show less
将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
$ 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
$ sudo iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT $ sudo iptables -I INPUT -p tcp -m tcp --dport 9888 -j ACCEPT $ sudo iptables -I INPUT -p tcp -m tcp --dport 9889 -j ACCEPT $ sudo iptables -I INPUT -p tcp -m tcp --dport 9997 -j ACCEPT $ sudo iptables -I INPUT -p tcp -m tcp --dport 9999 -j ACCEPT $ sudo service iptables save
Show less
启动
启动Kaa服务。
$ sudo service kaa-node start
启动后检查日志。
$ cat /var/log/kaa/* | grep ERROR
在Web浏览器中打开管理UI:[http:// YOUR_SERVER_HOST:8080 / kaaAdmin]。将打开一个页面,您可以以Kaa管理员身份登录。