All Projects → viert → inventoree

viert / inventoree

Licence: other
Inventoree leads you through the chaos of your infrastructure

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to inventoree

Ralph
Ralph is the CMDB / Asset Management system for data center and back office hardware.
Stars: ✭ 1,701 (+7631.82%)
Mutual labels:  cmdb
Opendevops
CODO是一款为用户提供企业多混合云、一站式DevOps、自动化运维、完全开源的云管理平台、自动化运维平台
Stars: ✭ 2,990 (+13490.91%)
Mutual labels:  cmdb
itop-datacenter-view
Extension for iTop: Easily manage & visualize your racks, enclosures and datacenter devices.
Stars: ✭ 24 (+9.09%)
Mutual labels:  cmdb
Glpi
GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.
Stars: ✭ 2,278 (+10254.55%)
Mutual labels:  cmdb
Chain
链喵 CMDB 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Stars: ✭ 240 (+990.91%)
Mutual labels:  cmdb
tryorama
Toolset to manage Holochain conductors and facilitate test scenarios
Stars: ✭ 28 (+27.27%)
Mutual labels:  conductor
Cmdb
cmdb saltstack
Stars: ✭ 1,013 (+4504.55%)
Mutual labels:  cmdb
iTop-CN
iTop in chinese
Stars: ✭ 36 (+63.64%)
Mutual labels:  cmdb
Fusioninventory For Glpi
FusionInventory plugin for GLPI
Stars: ✭ 241 (+995.45%)
Mutual labels:  cmdb
AndroidStarterAlt
A sample View-based Android app using the MVP architecture. It uses Mosby, Dagger2, RxJava, retrofit, LoganSquare, requery, EventBus, Conductor.
Stars: ✭ 27 (+22.73%)
Mutual labels:  conductor
Codo Cmdb
基于Tornado实现的一套资产管理系统、支持AWS、阿里云、腾讯云、华为云自动拉取资产信息等
Stars: ✭ 205 (+831.82%)
Mutual labels:  cmdb
Opensa
资产管理、资产采集、灰度发布、反向代理、批量任务、任务编排、计划任务、日志审计、权限管理、角色管理、部门管理、运维自动化
Stars: ✭ 220 (+900%)
Mutual labels:  cmdb
cmdb
基于 python 3.7 + django 2.2.3 + AdminLTE-3.0.0-beta.1 实现的资产管理系统。
Stars: ✭ 50 (+127.27%)
Mutual labels:  cmdb
Ansible Cmdb
Ansible-cmdb takes the output of Ansible's fact gathering and converts it into a static HTML overview page (and other things) containing system configuration information.
Stars: ✭ 2,003 (+9004.55%)
Mutual labels:  cmdb
introspector
A schema and set of tools for using SQL to query cloud infrastructure.
Stars: ✭ 61 (+177.27%)
Mutual labels:  cmdb
Cmdb
运维平台
Stars: ✭ 67 (+204.55%)
Mutual labels:  cmdb
Opsmanage
自动化运维平台: 代码及应用部署CI/CD、资产管理CMDB、计划任务管理平台、SQL审核|回滚、任务调度、站内WIKI
Stars: ✭ 2,849 (+12850%)
Mutual labels:  cmdb
onix
A reactive configuration manager designed to support Infrastructure as a Code provisioning, and bi-directional configuration management providing a single source of truth across multi-cloud environments.
Stars: ✭ 89 (+304.55%)
Mutual labels:  cmdb
generator-android-conductor
🤖 I generate some code .... beep beep
Stars: ✭ 17 (-22.73%)
Mutual labels:  conductor
itop-extensions
my extensions of itop
Stars: ✭ 27 (+22.73%)
Mutual labels:  cmdb

Inventoree

Inventoree leads you through the chaos of your infrastructure

Disclaimer: inventoree (previously known as conductor) is nothing more than a servers inventory. Originally such a project was created at Yandex to help system engineers to store and classify their servers combining them into groups which are combined into projects. Inventoree is able to watch for your data structure consistency and check users' permissions to modify it. With a fast and well structured REST API it can be used by various CMS systems like Saltstack, Chef, Puppet and Ansible as an extra filter for running states and commands. With built-in inventoree tags and custom fields one can store roles of groups or individual servers which is convenient for use as an extra data for state formulas.

Original version of conductor has an ability to track deployment and packages movement among repositories which won't be implemented in Inventoree.

Important: this version is not based on the original one but created from scratch using absolutely separate technologies.

Development bootstrap

Being in deep development and moving from one laptop to another, from MacOSX to Windows and Linux, the current inventoree version has become very easy to set up.

  • Clone repo and cd into its' directory.
  • Run pip install -r requirements.txt to install the python requirements. Using virtualenv is highly recommended
  • This version requires mongodb 2.6+ server to be installed on localhost with inventoree itself. You can change this behaviour in config/db.py file. Although it's tracked by git and no mechanism has been created for custom configuration yet. So just put mongodb right alongside your inventoree installation, it's just the most appropriate solution at the moment.
  • Run ./micro.py index to create indexes. Be sure your mongodb server is up and running.
  • Run ./micro.py shell to start project shell. If you have IPython installed in your virtualenv, it will be used automatically.
  • Create a supervisor user like described below:
from app.models import User
user = User(username="<your_nickname>", password_raw="<your_password_in_plaintext>", supervisor=True)
user.save()
  • Exit the shell using Ctrl-D and run ./micro.py run to start python development server. By default it binds on port 5000, you can check it with a browser or something like curl using url http://localhost:5000/api/v1/account/me - it will give you Unauthorized error.
  • cd to reactapp and run npm install to install React.js and all the react application dependencies. You must have node.js 6+ installed
  • Run npm start to build react application, don't be scared when it starts your browser automatically.
  • Log in using your supervisor username and password

Experimental Web UI

Inventoree has a new nice looking redesigned web ui written using vue.js. To replace the original one follow the steps:

  • Update webui submodule using git submodule init; git submodule update. This will pull the new ui sources from inventoree-ui repository into webui directory
  • Instead of "cd-ing into reactapp" step cd into webui and run npm install to install Vue.js and all its dependencies. You must have node.js 6+ installed.
  • Run npm run dev to build the application and serve it using built-in nodejs http server. To create optimized production-ready static files use npm run build instead.

Note on external authentication

Example authorizer (via vk.com) is located in plugins folder. The only thing is mandatory in authorizer is the get_authentication_url method. If this method returns an actual url like https://oauth.vk.com/authorize?client_id=... the button EXTERNAL AUTH appears on Login page automatically (and leads to that url). In case of example vk authorizer there's a NAME class property assigned which makes button text change to VK LOGIN.

The second thing you have to do is create a special handler in flask (that's why authorizers get flask app in constructor) which is supposed to handle callbacks from external auth services (All modern authentication systems like OAuth, SAML SSO and OpenID act like this). This handler is aimed to find an actual local user related to external user data you receive. If user doesn't exist, your task is to create it first and connect to the external data (ext_id field in User model serves for this purpose and is indexed by default). Next time user logins your handler should find it by ext_id.

The last task you have to do in callback handler is put the local _id field of found user instance to session["user_id"] - that's how Inventoree gets user authenticated.

Don't forget to set AUTHORIZER="<YourAuthorizer>" in app config to actually set up your authorizer. All plugins in plugins directory are loaded automatically but no authorizer is set until configured explicitly.

Roadmap

v6.12

  • Tag search UI
  • Applications Registry API
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].