brgalloway.phpipam_api
Podręczniki do interakcji z API phpipam
Posiadając działającą instalację phpipam, możesz włączyć API i używać tych interakcji w skryptach. Będziesz musiał skonfigurować identyfikator aplikacji oraz stworzyć użytkownika, który będzie korzystał z tego API, aby uzyskać token.
Konfigurowanie API do użycia w Ansible
W interfejsie graficznym musisz przejść do sekcji API w zakładce administracji. Tam możesz skonfigurować identyfikator aplikacji dla API. Następnie należy przejść do sekcji Użytkownicy, aby stworzyć użytkownika API.
Interakcja z API
Aby znaleźć podsieci i uzupełnić konkretne zmienne, będziesz musiał użyć API, korzystając z Postmana lub curl.
przykład użycia curl do uzyskania tokena:
curl -k https://ipam.example.com/api/phpipamappid/user/ -X POST -u <nazwa_użytkownika>:<hasło>
pobieranie tokena z zwróconego wyniku JSON:
curl -k https://ipam.example.com/api/phpipamappid/sections/ --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET
Gdy masz już ID sekcji, możesz użyć go do uzyskania podsieci w tej sekcji.
curl -k https://ipam.example.com/api/phpipamappid/sections/{ID}/subnets --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET
To wyświetli wszystkie podsieci w tej sekcji, a ty będziesz chciał pobrać id z zwróconych obiektów:
"id": <numer>,
...
Tutaj populowana jest zmienna subnet_id:
.
Przykład playbooka do rezerwacji IP
Główny plik playbooka main.yml jest przykładem użycia modułu URI do wywołania API, rejestracji wyniku w celu populacji zmiennych, wywoływania rejestracji IP oraz aktualizacji bazy danych phpipam.
Aby wygenerować zaszyfrowaną wartość do zasobnika hasła dla zmiennej api_pass, musisz to wygenerować za pomocą ansible-vault. https://docs.ansible.com/ansible/2.4/vault.html
Gdy wszystkie wartości w pliku group_vars/all są skonfigurowane zgodnie z twoim środowiskiem, dopiero wtedy playbook zakończy się sukcesem. Wywołanie API pobierze token, który jest następnie przechowywany w zmiennej i używany w całym playbooku.
Dokumentacja phpipam https://phpipam.net/api/api_documentation/
ansible-galaxy install brgalloway.phpipam_api