ipam/README.md

78 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

2023-03-12 16:58:30 +01:00
# ipam
2023-03-25 21:39:42 +01:00
A cli based [IP Address Management](https://en.wikipedia.org/wiki/IP_address_management)
built with [Go](https://go.dev/) using [Cobra](https://cobra.dev/) and
[Viper](https://github.com/spf13/viper) with optional [PowerDNS](https://www.powerdns.com/auth.html)
API integration.
2023-03-10 17:52:20 +01:00
2023-03-25 21:39:42 +01:00
## Features
`ipam` is a cli based IPAM. It supports:
- Adding, listing, viewing and deleting subnets
- Adding, viewing and deleting single IP addresses with FQDNs
- automatic addition and deletion of forward and reverse records
- import and export configuration
## But why?
In my career as a Network Engineer I worked at a company that developed their own internal CMDB
that was set up as a cli application. I really liked the ease of use and the way you could
quickly do stuff.
So I sat down and started my first Go project and started developing this ipam.
## How do I use the cmdb?
2023-04-05 09:09:05 +02:00
`ipam` is built as a cli app. Once you installed `ipam` and added it to your `$PATH`, you can
- add prefixes with `ipam subnet add 192.168.0.0/24 fancy-subnet-name`
- add IPs to those prefixes with `ipam ip add 192.168.0.1 fqdn.example.com`
- add the next free IP in a prefix with `ipam ip add 192.168.0.0/24 fqdn2.example.com`
- much more (see `ipam (command) --help` for examples)
2023-04-05 09:45:06 +02:00
2023-04-05 09:09:05 +02:00
If PowerDNS integration is enabled in `$HOME/.ipam/ipam.yml`, forward and reverse DNS records
are automatically managed when you add or delete IP addresses with hostnames.
2023-03-25 21:39:42 +01:00
2023-04-10 19:46:13 +02:00
[![Asciicast displaying the usage of the ipam app](https://asciinema.org/a/tT3SbtjsN9bmEE4QgKuanhNcX.svg)](https://asciinema.org/a/tT3SbtjsN9bmEE4QgKuanhNcX)
2023-03-25 21:39:42 +01:00
## How can I contribute to the development?
2023-04-05 09:09:05 +02:00
The main development is happening at https://codeberg.org/lauralani/ipam.
If you find a bug or would like a feature to get added you can
[create a new issue](https://codeberg.org/lauralani/ipam/issues)
or collaborate by forking the repository and
[create a new pull request](https://codeberg.org/lauralani/ipam/pulls).
If you have any questions please also feel free to create a new Issue!
2023-03-15 16:43:20 +01:00
## CLI
```
ipam
A cli based ipam.
2023-03-25 21:39:42 +01:00
You can manage subnets and single IP addresses within those subnets.
ipam can also manage the corresponding DNS records in your PowerDNS Instance.
2023-03-15 16:43:20 +01:00
Usage:
2023-03-25 21:39:42 +01:00
ipam [command]
2023-03-15 16:43:20 +01:00
Available Commands:
2023-03-25 21:39:42 +01:00
completion Generate the autocompletion script for the specified shell
export Export ipam configuration
help Help about any command
import Import ipam configuration
ip manage IP addresses
subnet Manage IP subnets
2023-03-15 16:43:20 +01:00
Flags:
2023-03-25 21:39:42 +01:00
-d, --debug Enable debug mode. (may print sensitive Information, so please watch out!)
-h, --help help for ipam
-v, --version version for ipam
2023-03-15 16:43:20 +01:00
Use "ipam [command] --help" for more information about a command.
```
2023-03-25 21:39:42 +01:00
## License
2023-04-05 09:09:05 +02:00
Copyright 2023 Laura Kalb <dev (at) lauka.net>
2023-03-25 21:39:42 +01:00
This program is Free Software: You can use, study share and improve it at your
will. Specifically you can redistribute and/or modify it under the terms of the
[GNU General Public License](https://www.gnu.org/licenses/gpl.html) as
published by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.