phpIPAM-for-vRA8/README.md

35 lines
2.9 KiB
Markdown

# phpIPAM Integration for vRealize Automation 8.x
This integration allows vRealize Automation 8.x to use [phpIPAM](https://phpipam.net) for assigning static IP addresses to provisioned virtual machines. Built against vRA 8.2.0.12946 and phpIPAM 1.5.
Details on how I built this (as well as notes on how I configured phpIPAM to work correctly with this plugin) can be found here:
https://virtuallypotato.com/integrating-phpipam-with-vrealize-automation-8
## Prerequisites
- phpIPAM 1.5 must be installed, configured, and available over HTTPS
- Consult the [phpIPAM installation docs](https://phpipam.net/documents/installation/)
- Subnets [must be defined in phpIPAM](https://virtuallypotato.com/integrating-phpipam-with-vrealize-automation-8#step-2-configuring-phpipam-subnets).
- (Optional) A [Custom Field](docs/custom_field.md) defined to identify subnets which should be available to vRA.
- Note: I previously used the built-in `isPool` field, but this is not ideal with versions of phpIPAM 1.5 since a [change on April 4, 2022](https://github.com/phpipam/phpipam/commit/7de080b8) which made the subnet and broadcast addresses (`x.x.x.0` and `x.x.x.255`) assignable on networks with this field set. Use a [Custom Field](docs/custom_field.md) instead.
- A trusted SSL certificate is not required; vRA will prompt to confirm the certificate when the connection is initially validated.
## Usage
### From the phpIPAM web interface:
1. **Administration > phpIPAM Settings > Feature Settings** and enable the **API** option.
2. **Administration > phpIPAM Settings > Users** and create a new user to be used by vRA.
3. **Administration > phpIPAM Settings > API** and create a new API key with *Read/Write* permissions and *SSL with User Token* security. Make a note of the selected *App ID* field (not the auto-generated *App Code*).
### In vRealize Automation:
1. Go to **Cloud Assembly > Infrastructure > Integrations** and **Add Integration**.
2. Select the **IPAM** integration type.
3. Give it a name, then click **Manage IPAM Providers > Import Provider Package**.
4. Upload `phpIPAM.zip` (get it [here](https://github.com/jbowdre/phpIPAM-for-vRA8/releases/latest)).
5. Back at the **New Integration** page, click the **Provider** dropdown and select *phpIPAM*.
6. Enter the **API App ID**, **Username**, **Password**, and **Hostname** of the phpIPAM server (fully-qualified name or IP address).
7. (Optional) [Configure the subnet filter](docs/custom_field.md#configure-integration).
7. Click **Validate** to verify the information. It may take a minute or two for the validation to complete.
8. Once validated, click **Add**.
You can then learn how to utilize the new IPAM integration [here](https://docs.vmware.com/en/vRealize-Automation/8.2/Using-and-Managing-Cloud-Assembly/GUID-9AE32BD7-2D1B-4FEE-881F-A0EDE5907D10.html)
See [VMware's IPAM SDK README](README_VMware.md) for information on how to adapt the code if needed.