はじめに
ubuntu上にdockerコンテナにてNebox環境を構築
ansible,その他必要なパッケージのインストールを行いzabbixのデバイス登録の自動化を行った。
動作環境
OS
ubuntu on ESXiNetbox Netbox on docker
Ansibleバージョン
ansible 5.1.0 ansible-core 2.12.1
- zabbix
zabbixの環境は前回の記事と同等のものを使用
目次
その他必要なパッケージ
pynetbox netaddr zabbix-api
Netboxの設定
下図にあるcisco1という名前のデバイスをzabbixに登録を行う。
zabbixの事前確認
下図にcisco1という名前のデバイスが登録されていないことを確認。
cisco側にSNMP等の設定を行っていない為、今回はzabbixの登録までとなる。
インベントリファイル
[zabbix] 192.168.100.14
Ansible-playbooks
--- - hosts: zabbix # gather_facts: False user: root connection: local vars: - netbox_url: http://localhost:8000 - netbox_token: 0123456789abcdef0123456789abcdef01234567 tasks: - name: create host local_action: module: community.zabbix.zabbix_host server_url: http://192.168.100.14/zabbix login_user: Admin login_password: zabbix host_name: "{{ query('netbox.netbox.nb_lookup', 'devices',api_filter='manufacture=cisco', api_endpoint=netbox_url, token=netbox_token)[0].value.name }}" visible_name: "{{ query('netbox.netbox.nb_lookup', 'devices',api_filter='manufacture=cisco', api_endpoint=netbox_url, token=netbox_token)[0].value.name }}" description: hostmake host_groups: cisco_router link_templates: Template Net Cisco IOS SNMPv2 status: enabled state: present inventory_mode: disabled ipmi_authtype: null ipmi_privilege: 2 interfaces: - bulk: 1 details: community: '{$SNMP_COMMUNITY}' type: '2' main: 1 useip: 1 ip: "{{ query('netbox.netbox.nb_lookup', 'ip-addresses',api_filter='device=cisco1', api_endpoint=netbox_url, token=netbox_token)[0].value.address | ipaddr('address')}}" dns: "" port: "161" macros: - macro: '{$SNMP_COMMUNITY}' value: router
実行
# ansible-playbook -i hosts netbox-zabbix-add.yml PLAY [zabbix] ******************************************************************************************************************************************************************************* TASK [Gathering Facts] ********************************************************************************************************************************************************************** ok: [192.168.100.14] TASK [create host] ************************************************************************************************************************************************************************** changed: [192.168.100.14 -> localhost] PLAY RECAP ********************************************************************************************************************************************************************************** 192.168.100.14 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
確認
登録されていることを確認
終わりに
なかなか記事の更新ができていないが、備忘録として今後はnetbox/ansible関連の書いていく。 Azure/VMware等にも取り組もうと考えてます。