diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | INFO.yaml | 8 | ||||
-rw-r--r-- | LICENSE | 2 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | app/install/calipso-installer.py | 40 | ||||
-rw-r--r-- | docs/conf.py | 1 | ||||
-rw-r--r-- | docs/conf.yaml | 3 | ||||
-rw-r--r-- | docs/index.rst | 2 | ||||
-rw-r--r-- | docs/release/install-guide.pdf | bin | 151053 -> 152041 bytes | |||
-rw-r--r-- | docs/release/install-guide.rst | 189 | ||||
-rw-r--r-- | docs/release/monitoring-guide.pdf | bin | 259887 -> 260593 bytes | |||
-rw-r--r-- | docs/release/monitoring-guide.rst | 16 | ||||
-rw-r--r-- | docs/requirements.txt | 2 | ||||
-rw-r--r-- | tox.ini | 6 |
14 files changed, 161 insertions, 112 deletions
@@ -6,3 +6,5 @@ mongo*.conf mongo_access.log .DS_Store +.tox +docs/_build/* @@ -4,6 +4,10 @@ project_creation_date: 'March 21st 2017' project_category: '' lifecycle_state: '' project_lead: &opnfv_calipso_ptl + name: 'Koren Lev' + email: 'korenlev@gmail.com' + company: 'gmail.com' + id: 'KorenLev' primary_contact: *opnfv_calipso_ptl issue_tracking: type: 'jira' @@ -33,10 +37,6 @@ committers: email: 'fbrockne@cisco.com' company: 'cisco.com' id: 'brockners' - - name: 'Koren Lev' - email: 'korenlev@gmail.com' - company: 'gmail.com' - id: 'KorenLev' - name: 'Yaron Yogev' email: 'yaronyogev@gmail.com' company: 'gmail.com' @@ -1,4 +1,4 @@ -Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) +Copyright (c) 2018 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others Licensed under the Apache License, Version 2.0 (the "License"); @@ -1,4 +1,4 @@ -Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) +Copyright (c) 2018 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/app/install/calipso-installer.py b/app/install/calipso-installer.py index ccb9cdc..008ff38 100644 --- a/app/install/calipso-installer.py +++ b/app/install/calipso-installer.py @@ -1,6 +1,6 @@ ############################################################################### -# Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) # -# and others # +# Copyright (c) 2017-2018 Koren Lev (Cisco Systems), # +# Yaron Yogev (Cisco Systems), Ilia Abashin (Cisco Systems) and others # # # # All rights reserved. This program and the accompanying materials # # are made available under the terms of the Apache License, Version 2.0 # @@ -20,17 +20,16 @@ import socket # by default, we want to use the docker0 interface ip address for inter-contatiner communications, # if hostname argument will not be provided as argument for the calipso-installer import os +import errno dockerip = os.popen('ip addr show docker0 | grep "\<inet\>" | awk \'{ print $2 }\' | awk -F "/" \'{ print $1 }\'') local_hostname = dockerip.read().replace("\n", "") C_MONGO_CONFIG = "/local_dir/calipso_mongo_access.conf" -H_MONGO_CONFIG = "/home/calipso/calipso_mongo_access.conf" +H_MONGO_CONFIG = "calipso_mongo_access.conf" PYTHONPATH = "/home/scan/calipso_prod/app" C_LDAP_CONFIG = "/local_dir/ldap.conf" -H_LDAP_CONFIG = "/home/calipso/ldap.conf" +H_LDAP_CONFIG = "ldap.conf" - -calipso_volume = {'/home/calipso': {'bind': '/local_dir', 'mode': 'rw'}} RESTART_POLICY = {"Name": "always"} # environment variables definitions @@ -289,7 +288,7 @@ def start_ui(host, dbuser, dbpassword, webport, dbport): root_url = "ROOT_URL=http://{}:{}".format(host, str(webport)) mongo_url = "MONGO_URL=mongodb://{}:{}@{}:{}/calipso" \ .format(dbuser, dbpassword, host, str(dbport)) - ports = {'3000/tcp': webport} + ports = {'4000/tcp': webport} DockerClient.containers.run(image_name, detach=True, name=name, @@ -393,6 +392,12 @@ parser.add_argument("--dbpassword", type=str, default="calipso_default", required=False) +parser.add_argument("--home", + help="Home directory for configuration files " + "(default=/home/calipso)", + type=str, + default="/home/calipso", + required=False) parser.add_argument("--command", help="'start-all' or 'stop-all' the Calipso containers " "(default=None)", @@ -405,7 +410,9 @@ parser.add_argument("--copy", type=str, default=None, required=False) + args = parser.parse_args() +calipso_volume = {args.home: {'bind': '/local_dir', 'mode': 'rw'}} print("\nrunning installer against host:", args.hostname, "\n") @@ -432,11 +439,16 @@ while container != "all" and container not in container_names: if container == "q": exit() +# create local directory on host, raise error if it doesn't exists +try: + os.makedirs(os.path.join(args.home, 'log/calipso')) +except OSError as e: + if e.errno != errno.EEXIST: + raise # starting the containers per arguments: if action == "start": - # building /home/calipso/calipso_mongo_access.conf and - # /home/calipso/ldap.conf files, per the arguments: + # building mongo.conf and ldap.conf files, per the arguments: calipso_mongo_access_text = \ "server {}\n" \ "user {}\n" \ @@ -459,13 +471,15 @@ if action == "start": "group_member_attribute member" ldap_text = ldap_text.format(LDAP_PWD_ATTRIBUTE, args.hostname, LDAP_USER_PWD_ATTRIBUTE) - print("creating default", H_MONGO_CONFIG, "file...\n") - calipso_mongo_access_file = open(H_MONGO_CONFIG, "w+") + mongo_file_path = os.path.join(args.home, H_MONGO_CONFIG) + print("creating default", mongo_file_path, "file...\n") + calipso_mongo_access_file = open(mongo_file_path, "w+") time.sleep(1) calipso_mongo_access_file.write(calipso_mongo_access_text) calipso_mongo_access_file.close() - print("creating default", H_LDAP_CONFIG, "file...\n") - ldap_file = open(H_LDAP_CONFIG, "w+") + ldap_file_path = os.path.join(args.home, H_LDAP_CONFIG) + print("creating default", ldap_file_path, "file...\n") + ldap_file = open(ldap_file_path, "w+") time.sleep(1) ldap_file.write(ldap_text) ldap_file.close() diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..86ab8c5 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1 @@ +from docs_conf.conf import * # flake8: noqa diff --git a/docs/conf.yaml b/docs/conf.yaml new file mode 100644 index 0000000..2a91f61 --- /dev/null +++ b/docs/conf.yaml @@ -0,0 +1,3 @@ +--- +project_cfg: opnfv +project: calipso diff --git a/docs/index.rst b/docs/index.rst index 7e960d8..53018dc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,3 +1,5 @@ +.. _calipso-release-guide: + .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 .. (c) OPNFV and others. diff --git a/docs/release/install-guide.pdf b/docs/release/install-guide.pdf Binary files differindex 1bc24f5..c6476b8 100644 --- a/docs/release/install-guide.pdf +++ b/docs/release/install-guide.pdf diff --git a/docs/release/install-guide.rst b/docs/release/install-guide.rst index 28bba01..be0d3da 100644 --- a/docs/release/install-guide.rst +++ b/docs/release/install-guide.rst @@ -1,12 +1,6 @@ | Calipso.io | Installation Guide -Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others -All rights reserved. This program and the accompanying materials -are made available under the terms of the Apache License, Version 2.0 -which accompanies this distribution, and is available at -http://www.apache.org/licenses/LICENSE-2.0 - |image0| Project “Calipso” tries to illuminate complex virtual networking with @@ -46,10 +40,10 @@ Calipso.io Installation Guide 1 3.2 Fuel scenarios 7 -1. Pre Requisites +Pre Requisites =============== -1.1 Pre Requisites for Calipso “all in one” application +Pre Requisites for Calipso “all in one” application ---------------------------------------------------- Calipso’s main application is written with Python3.5 for Linux @@ -108,11 +102,13 @@ Calipso.io Installation Guide 1 **sudo pip3 install docker** -4. Git : https://git-scm.com/book/en/v2/Getting-Started-Installing-Git + **sudo pip3 install inflect (>0.2.5)** + +1. Git : https://git-scm.com/book/en/v2/Getting-Started-Installing-Git -5. Docker : https://docs.docker.com/engine/installation/ +2. Docker : https://docs.docker.com/engine/installation/ -1.2 Pre Requisites for Calipso UI application +Pre Requisites for Calipso UI application ------------------------------------------ Calipso UI is developed and maintained using Meteor Framework @@ -122,10 +118,10 @@ Calipso.io Installation Guide 1 required steps for installing the Calipso UI with several options are listed below. -2. Installation Options +Installation Options ==================== -2.1 Monolithic App +Monolithic App --------------- For development use, one might require Calipso to be installed as a @@ -143,16 +139,16 @@ Calipso.io Installation Guide 1 **git clone https://git.opnfv.org/calipso/** -4. Move to the default install directory: **cd calipso** +1. Move to the default install directory: **cd calipso** -5. Setup Python3 environment for calipso: +2. Setup Python3 environment for calipso: **export PYTHONPATH=/home/calipso/calipso/app** -6. Follow quick-start guide on how to use calipso modules for monolithic +1. Follow quick-start guide on how to use calipso modules for monolithic scenario, and run each module manually. -2.2 Micro Services App, single line install +Micro Services App, single line install --------------------------------------- For most users, this will be the fastest and more reliable install @@ -163,10 +159,12 @@ Calipso.io Installation Guide 1 1. Follow steps 1- 5 per section 2.1 above. -2. Install the following python3 libraries using pip3 : docker, pymongo +2. Install Docker : https://docs.docker.com/engine/installation/ + +3. Install the following python3 libraries using pip3 : docker, pymongo -3. Although Calipso installer can download all needed containers, if - they does not exist locally already, we recommend doing a manual +4. Although Calipso installer can download all needed containers, if + they doesn’t exist locally already, we recommend doing a manual download of all 7 containers, providing better control and logging: **sudo docker login** # use your DockerHub username and password to @@ -181,8 +179,8 @@ Calipso.io Installation Guide 1 **sudo docker pull korenlev/calipso:api** # api container for application integration - **sudo docker pull korenlev/calipso:sensu** # sensu server container - for monitoring + **sudo docker pull korenlev/calipso:monitor** # sensu server + container for monitoring **sudo docker pull korenlev/calipso:mongo** # calipso mongo DB container @@ -191,7 +189,7 @@ Calipso.io Installation Guide 1 **sudo docker pull korenlev/calipso:ldap** # calipso ldap container -4. Check that all containers were downloaded and registered +1. Check that all containers were downloaded and registered successfully: **sudo docker images** @@ -206,7 +204,7 @@ Calipso.io Installation Guide 1 **korenlev/calipso scan 1ee60c4e61d5 6 hours ago 1.1GB** - **korenlev/calipso sensu a8a17168197a 6 hours ago 1.65GB** + **korenlev/calipso monitor a8a17168197a 6 hours ago 1.65GB** **korenlev/calipso mongo 17f2d62f4445 22 hours ago 1.31GB** @@ -214,7 +212,7 @@ Calipso.io Installation Guide 1 **korenlev/calipso ldap 316bc94b25ad 2 months ago 269MB** -5. Run the calipso installer using single line arguments: +1. Run the calipso installer using single line arguments: **python3 calipso/app/install/calipso-installer.py--command start-all --copy q** @@ -222,7 +220,7 @@ Calipso.io Installation Guide 1 This should launch all calipso modules in sequence along with all needed configuration files placed in /home/calipso. -2.3 Micro Services App, customized single line install +Micro Services App, customized single line install -------------------------------------------------- Calipso app includes the following directory in its default @@ -276,28 +274,38 @@ Calipso.io Installation Guide 1 an optional argument, default ‘calipso’ (calipso-mongo container’s default) is deployed if not used. -7. **--dbpassword ** - - Allows to enter a password to be used for mongoDB access on the host, - an optional argument, default ‘calipso\_default’ (calipso-mongo - container’s default) is deployed if not used. - -8. **--apiport ** - Allows to enter a TCP port to be used for the Calipso API (default=8000) - -9. **--uchiwaport ** - Allows to enter a TCP port to be used for the Sensu UI (default=3000) - -10. **--rabbitmport ** - Allows to enter a TCP port to be used for the RabbitMQ mgmt (default=15672) - -11. **--sensuport ** - Allows to enter a TCP port to be used for the Sensu API (default=4567) - -12. **--rabbitport ** - Allows to enter a TCP port to be used for the RabbitMQ BUS (default=5671) - -2.4 Micro Services App, customized interactive install +7. **--dbpassword** + + Allows to enter a password to be used for mongoDB access on the + host, an optional argument, default ‘calipso\_default’ + (calipso-mongo container’s default) is deployed if not used. + +1. **--apiport** + + Allows to enter a TCP port to be used for the Calipso API + (default=8000) + +1. **--uchiwaport** + + Allows to enter a TCP port to be used for the Sensu UI + (default=3000) + +1. **--rabbitmport** + + Allows to enter a TCP port to be used for the RabbitMQ mgmt + (default=15672) + +1. **--sensuport** + + Allows to enter a TCP port to be used for the Sensu API + (default=4567) + +1. **--rabbitport** + + Allows to enter a TCP port to be used for the RabbitMQ BUS + (default=5671) + +Micro Services App, customized interactive install -------------------------------------------------- Calipso’s application containers can be initiated and stopped @@ -308,7 +316,7 @@ Calipso.io Installation Guide 1 1. **Action? (stop, start, or 'q' to quit):** 2. **Container? (all, calipso-mongo, calipso-scan, calipso-listen, - calipso-ldap, calipso-api, calipso-sensu, calipso-ui or 'q' to + calipso-ldap, calipso-api, calipso-monitor, calipso-ui or 'q' to quit):** 3. **create initial calipso DB ? (copy json files from 'db' folder to @@ -320,7 +328,7 @@ automatically creates and place 2 configuration files under those are mandatory configuration files used by calipso containers to interact with each other! -2.5 OPNFV Options +OPNFV Options ============= Although calipso is designed for any VIM and for enterprise use-cases @@ -330,35 +338,58 @@ with Apex for OPNFV. APEX scenarios --------------- -When using apex to install OPNFV, the Triple-O based OpenStack is -installed automatically and calipso installation can be initiated -automatically after apex completes the VIM installation process for -a certain scenario. - -In this case setup_apex_environment.py can be used for creating a new environment automatically into mongoDB and UI of Calipso, -instead of using the calipso UI to do that as typical user would do, then detailed scanning can start immediately, -the following options are available for setup_apex_environment.py: - -m [MONGO_CONFIG], --mongo_config [MONGO_CONFIG] - name of config file with MongoDB server access details - (Default: /local_dir/calipso_mongo_access.conf) - -d [CONFIG_DIR], --config_dir [CONFIG_DIR] - path to directory with config data (Default: - /home/calipso/apex_setup_files) - -i [INSTALL_DB_DIR], --install_db_dir [INSTALL_DB_DIR] - path to directory with DB data (Default: - /home/calipso/Calipso/app/install/db) - -a [APEX], --apex [APEX] - name of environment to Apex host - -e [ENV], --env [ENV] - name of environment to create(Default: Apex-Euphrates) - -l [LOGLEVEL], --loglevel [LOGLEVEL] - logging level (default: "INFO") - -f [LOGFILE], --logfile [LOGFILE] - log file (default: - "/home/calipso/log/apex_environment_fetch.log") - -g [GIT], --git [GIT] - URL to clone Git repository (default: - https://git.opnfv.org/calipso) + When using apex to install OPNFV, the Triple-O based OpenStack is + installed automatically and calipso installation can be initiated + automatically after apex completes the VIM installation process for + a certain scenario. + + In this case setup\_apex\_environment.py can be used for creating a + new environment automatically into mongoDB and UI of Calipso + (instead of using the calipso UI to do that as typical user would + do), then detailed scanning can start immediately, the following + options are available for setup\_apex\_environment.py: + + **-m [MONGO\_CONFIG], --mongo\_config [MONGO\_CONFIG]** + + **name of config file with MongoDB server access details** + + **(Default: /local\_dir/calipso\_mongo\_access.conf)** + + **-d [CONFIG\_DIR], --config\_dir [CONFIG\_DIR]** + + **path to directory with config data (Default:** + + **/home/calipso/apex\_setup\_files)** + + **-i [INSTALL\_DB\_DIR], --install\_db\_dir [INSTALL\_DB\_DIR]** + + **path to directory with DB data (Default:** + + **/home/calipso/Calipso/app/install/db)** + + **-a [APEX], --apex [APEX]** + + **name of environment to Apex host** + + **-e [ENV], --env [ENV]** + + **name of environment to create(Default: Apex-Euphrates)** + + **-l [LOGLEVEL], --loglevel [LOGLEVEL]** + + **logging level (default: "INFO")** + + **-f [LOGFILE], --logfile [LOGFILE]** + + **log file (default:** + + **"/home/calipso/log/apex\_environment\_fetch.log")** + + **-g [GIT], --git [GIT]** + + **URL to clone Git repository (default:** + + **https://git.opnfv.org/calipso)** Fuel scenarios --------------- diff --git a/docs/release/monitoring-guide.pdf b/docs/release/monitoring-guide.pdf Binary files differindex 2d075e5..40f5b8b 100644 --- a/docs/release/monitoring-guide.pdf +++ b/docs/release/monitoring-guide.pdf diff --git a/docs/release/monitoring-guide.rst b/docs/release/monitoring-guide.rst index dd0f047..de87ca0 100644 --- a/docs/release/monitoring-guide.rst +++ b/docs/release/monitoring-guide.rst @@ -1,12 +1,6 @@ | Calipso.io | Monitoring Guide -Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others -All rights reserved. This program and the accompanying materials -are made available under the terms of the Apache License, Version 2.0 -which accompanies this distribution, and is available at -http://www.apache.org/licenses/LICENSE-2.0 - |image0| Project “Calipso” tries to illuminate complex virtual networking with @@ -28,7 +22,7 @@ Calipso.io Monitoring Guide 1 1.1 Calipso monitoring provisioning 3 -1.2 Calipso-sensu container 5 +1.2 Calipso-monitor container 5 2 Monitoring configurations 5 @@ -67,7 +61,7 @@ Monitoring deployment options config files and all needed plugins and scripts on all clients and the central server. -2. Calipso sensu module: listens for the results of the customized +2. Calipso monitor module: listens for the results of the customized events and updates the inventories with state and statuses, while generating all related messages. @@ -168,8 +162,8 @@ Calipso monitoring provisioning |image1| -Calipso-sensu container ------------------------ +Calipso-monitor container +------------------------- Once sensu clients and all needed configurations and plugins are deployed properly, the sensu server should start receiving results @@ -655,6 +649,6 @@ Calipso Apex monitoring integration .. |image0| image:: media/image1.png :width: 6.50000in :height: 4.27153in -.. |image1| image:: media/image10.png +.. |image1| image:: media/image2.png :width: 6.50000in :height: 3.62708in diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..9fde2df --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,2 @@ +lfdocs-conf +sphinx_opnfv_theme @@ -4,12 +4,12 @@ envlist = docs,docs-linkcheck skipsdist = true [testenv:docs] -deps = -r{toxinidir}/etc/requirements.txt +deps = -rdocs/requirements.txt commands = sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html echo "Generated docs available in {toxinidir}/docs/_build/html" whitelist_externals = echo [testenv:docs-linkcheck] -deps = -r{toxinidir}/etc/requirements.txt -commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck
\ No newline at end of file +deps = -rdocs/requirements.txt +commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck |