Flask IPAM, CMDB, DNS Microservice
NvIPAM is an opensource IPAM, DNS, and CMDB solution based on flask restplus.
Unlike legacy IPAM solutions, this one is built from the ground up to be vSphere network aware.
The original plan was to leverage map the networks from vRealize Automation (vRA) reservation to the selected network. However after diving into the IPAM SDK it was determined the networks were not being passed in as a variable.
The workaround (for now) is to map the network name to the pool name to help identify the correct pool when you create a new vRA Network Profile.
It offers the following features;
This project uses PowerDNS authorative and recursor to provide delegate or authoritative DNS for a develop environment.
Deploy or create a CentOS 7 machine using the minimum install.
The requirements for this project can be install using an Ansible playbook, available at [NvIPAM-Ansible-Install] (https://github.com/kovarus/NvIPAM-Ansible-Install).
yum install -y ansible git
ssh-keygen
ssh-copy-id root@localhost
git clone https://github.com/kovarus/NvIPAM-Ansible-Install.git
cd NvIPAM-Ansible-Install
ansible-galaxy install -r requirements.yml
ansible-playbook -i hosts site.yml
You will need to initialize the DB after the installation, then restart/start the services
su - nvipam
cd nvipam
source venv/bin/activate
Initialize the db using Flask Migrate
flask db init
Important
This env.py file excludes the previously created PowerDNS tables.
copy env.py migrations/env.py
flask db migrate
flask db upgrade
Return to root
exit
systemctl enable nvipam.service
systemctl start nvipam.service
systemctl restart nginx.service
Open the browser by entering http://{host ip or fqdn}:5000/api/1.0
Default username & password is admin
& VMware1!
The response will look like this { “message”: “Logged in as admin”,”bearer_token”: “eyJ0eXAiOiJKV1QiLCJhbGciO……}
You will need to add an Authentication Header of Bearer with token retrieved from the previous REST Call.
BSD 3-Clause License
Copyright (c) 2019, Kovarus
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Please look at the [wiki page] (https://github.com/kovarus/NvIPAM/wiki) or submit an [issue] (https://github.com/kovarus/NvIPAM/issues)