KAI knowledge management system. A search engine/document management system written in Java, using Apache Cassandra (3.9) and Hazelcast and the spaCy parser. Uses GRADLE for build. Missing some data-files I still need to upload due to their size.
- building the system
- see below for installing node and others
- cassandra authorization setup
- swagger use / see if services are up
- build the system
gradle clean build createJarDependencies -x test
cd web/admin
grunt build
cd web/search
grunt build
ansible-playbook ansible/setup-cluster-one.yml --extra-vars "web_port=8085 server_port=10080 rf=1 external_name=peter-vm"
sudo apt-get install -y nodejs
sudo apt-get install -y npm
sudo apt-get install -y ruby-full
sudo gem install compass
sudo npm install -g n
sudo n stable
sudo npm install -g yo bower grunt-cli
sudo npm install -g gruntjs/grunt-contrib-imagemin jasmine-core grunt-karma karma karma-phantomjs-launcher phantomjs-prebuilt
cd web/admin
npm install
bower install
Use NodeJS version 5, not 6 or later
node --version
to rollback to version 5:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
exit
nvm ls
nvm install 5
nvm use 5
node --version
cd node_modules/grunt-contrib-imagemin
npm install imagemin@4.0.0
sudo chown -R peter. /home/peter/.config
cd resources/web-app
to serve and debug, will open browser
grunt serve
to build an optimized source
grunt build
edit cassandra.yaml and change the authenticator
authenticator: PasswordAuthenticator
cqlsh -u cassandra -p cassandra
CREATE USER viki with PASSWORD 'password' SUPERUSER;
DROP USER cassandra;
- to get the swagger.json from the api, use the url [http://localhost:8085/api-doc/swagger.json]
- to use the full web interface [http://localhost:8085/swagger/]
Ansible is a powerful tool for deploying and managing servers in clusters. Ansible will ensure that your machines are up-to-date as well as have all the required software and changes. See: http://docs.ansible.com/
Each of the target machines is expected to be a Centos 7 machine (any version). Ansible will install all other necessary software needed for running this service, including the auto OS updater (yum-cron).
- installing Ansible on Ubuntu
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
- setup Ansible on Ubuntu put into:
/etc/ansible/hosts
and
~/ansible_hosts
the values
[kai-single-node]
ip-address-or-hostname-1
ip-address-or-hostname-2
and many more if you need them
- setup the ssh certificates; run as root:
ssh-keygen -t rsa -b 4096
on each of these machines if not already done, then setup yourself on these hosts in /root/.ssh/authorized_keys
to do this use:
ssh-copy-id root@ip-address-or-hostname-1, etc.
- then test these servers using
ansible all -m ping -u root
- before running this script, FIRST BUILD the project
mvn clean install deploy
- run this playbook using
ansible-playbook ansible/setup.yml
- once the playbook has finished successfully you can test the server by browsing to
http://ip-address-or-hostname-1:8085/api/swagger/