てくなべ (tekunabe)

ansible / network automation / 学習メモ

netbox の検索結果:

JANOG52 Meeting 参加レポート

…ポロジ図を自動生成、NetBox による構成管理。LLDP で取得できる情報のうち、インターフェース名やホスト名を採用して JSON に加工してるそうです。この JSON をもとにして inet-henge や NetBox に渡すという流れです。@codeoutさんの inet-henge、よく使われていますね。 このような仕組みは、実機を正とするか、構成管理DBを正とするか、によって技術的なアプローチも異なってきますが、今回は実機を正とした考え方のようです。 質疑応答の中…

[Ansible/AAP] 書籍「Demystifying Ansible Automation Platform」はAAPの全体と自動化と応用が学べる貴重な書籍

…リプラグインとして netbox.netbox.nb_inventory の使い方が紹介されている点でした。 それから、まさかのインベントリプラグインを自作するためのPythonコード例まで載っていました。 Chapter 8: Creating Execution Environments コンテナによる Ansible の実行環境である Execution Environment (EE)の概要、利用、ビルド、Automation Hub への push 方法などについて…

[Ansible] netbox.netbox.nb_inventory インベントリプラグインの token でJinja2テンプレートが使えるようになった

…ースされたばかりの netbox.netbox コレクション 3.8.0で、こんな changelog がありました。 Allow netbox api access token to be templated by @TWitzenrath in #806 パッと見では分からなかったのですが、元の PR #806を見ると、netbox.netbox.nv_inventory インベントリプラグインのことのようでした。 これまでは平文べた書きか ansible-vault に…

[Ansible] モジュールのオプションのデフォルト値をカスタマイズできる module_defaults

…もとに説明します。 netbox.netbox コレクションの場合 netbox.netbox コレクション 3.8.0 の場合は、meta/runtime.ymlに以下の定義があります。(この定義は 3.8.0 からできました) action_groups: netbox: - netbox_aggregate - netbox_cable - netbox_circuit #...(略)... これは、netbox_aggregate、netbox_cable などモジュ…

[Ansible] ansible-galaxy collection install コマンドは複数のコレクションを指定できる

…e.utils と netbox.netbox という2つのコレクションを一度にインストールしてみます。 $ ansible-galaxy collection install ansible.utils netbox.netbox Starting galaxy collection install process Process install dependency map Starting collection install process Downloading h…

JANOG50 Meeting in Hakodate 参加・登壇レポート

…けではありませんが、NetBox(DCIM/IPAM)の導入事例として、以下の記事をご紹介しました。既存のスプレッドシートをまず正規化したという点が参考になりました。 creators.oisix.co.jp NetBox のでもサイトは https://demo.netbox.dev/ です。具体的にデータが入っているので使い方のイメージがわきやすいと思います。データ登録もできますが、定期的にデータがリセットされます。 塚本さんパート: SSoTの活⽤ 編 -Intent-…

[Ansible] Ansible 2.9 で インストールしたcollection のバージョン一覧を表示する(jq利用)

…: 2.4.0" "netbox.netbox: 3.1.1" "yamaha_network.rtx: 1.0.1" 表示形式はお好みで・・ 補足 ansible-config dump で COLLECTIONS_PATHS の設定拾って、そのディレクトリを対象にするのがもっといいやり方かなと思います。今回は手抜きです。 $ ansible-config dump | grep COLLECTIONS_PATHS COLLECTIONS_PATHS(default) = …

[Ansible] 「つまずき Ansible 【Part30】Ansible 3.0.0b1 を少し探る」ふりかえり

…ity 1.1.0 netbox.netbox 2.0.0 ngine_io.cloudstack 2.0.0 ngine_io.exoscale 1.0.0 ngine_io.vultr 1.1.0 openstack.cloud 1.2.1 openvswitch.openvswitch 1.1.0 ovirt.ovirt 1.3.0 purestorage.flasharray 1.5.1 purestorage.flashblade 1.4.0 sensu.sensu…

[Ansible] NetBox のタグを定義する netbox_tag モジュールの使い方

はじめに NetBox では、デバイスやIPアドレスなど様々なオブジェクトにタグを付けることができます。 NetBox 2.8 までは、タグは予め定義は不要だったのですが、NetBox 2.9 から事前の定義が必要になりました。逆にいうと未定義のタグを適用できません。 こうなると、自動化してる場合は対策が必要です。タグの定義 uri モジュールで API を叩けばできるといばできるのですが、netbox.netbox collection の 1.2.0 で netbox.n…

docker-compose.yml の内容を上書きする docker-compose.override.yml

はじめに 最近、netbox-docker の README.md を見て知ったのですが、docker-compose.yml の内容を上書きする docker-compose.override.yml というファイルがあるそうです。 docker-compose.yml はそのままのこしておき、docker-compose.override.yml でカスタマイズするのに便利そうです。 公式ドキュメントにも記載がありました。 docs.docker.jp netbox-do…

[Ansible] git config に相当する git_config モジュールを試す

…************************************ ok: [netbox01] => (item={'name': 'user.name', 'value': 'sakana'}) ok: [netbox01] => (item={'name': 'user.email', 'value': 'sakana@example.com'}) command モジュールでやってしまっても簡単に実現できるレベルですが、はやり専用モジュールがあるのは便利ですね。

[Ansible] ansible-galaxy collection list で site-packages 配下の Collection も表示させるワンライナー

…ity 1.1.0 netbox.netbox 1.1.0 ngine_io.cloudstack 1.1.0 ngine_io.exoscale 1.0.0 ngine_io.vultr 1.0.0 openstack.cloud 1.2.0 openvswitch.openvswitch 1.1.0 ovirt.ovirt 1.2.3 purestorage.flasharray 1.5.0 purestorage.flashblade 1.4.0 servicenow.…

[NetBox] パッチパネルをデバイスとして表現する

はじめに NetBox は OSS の DCIM/IPAM です。スイッチやルーターなどのデバイス情報を定義したり、IP アドレスの割当状態を管理したりできます。 デバイスの定義を工夫をすると、パッチパネルを模したものを作成できます。 ポイントは、パッチパネルのインターフェースをデバイスの Interfaces ではなく、Front Ports や Rear Ports で定義することです。 これにより、[デバイスA]---[パッチパネル]---[デバイスB] のような接続に…

[Ansible] 「つまずき Ansible 【Part19】モジュールのコードをデバッグしたい」ふりかえり

…以下のとおりです。 NetBox にサイトというオブジェクトを作成する API を uri モジュールで叩きます。 本当は専用のモジュールがあるのですが、ここではよりメジャーなモジュールとして uri を取り上げました。 --- - hosts: netbox01 gather_facts: false connection: local vars: url: http://192.168.1.145:32769/api/dcim/sites/ tasks: - name: …

[Ansible] Ansible 2.10 で pip install ansible --upgarade するとセットの collection もアップグレードされる

…ity 1.0.8 netbox.netbox 1.0.2 ngine_io.cloudstack 1.0.1 ngine_io.exoscale 1.0.0 ngine_io.vultr 1.0.0 openstack.cloud 1.1.0 openvswitch.openvswitch 1.0.5 ovirt.ovirt 1.1.3 purestorage.flasharray 1.4.0 purestorage.flashblade 1.3.0 servicenow.…

[NetBox] カスタムリンクでオブジェクト(obj)のどんな値を参照できるかの調べ方

…めに 以前の記事で、NetBox にカスタムリンクを作成する方法をご紹介しました。 tekunabe.hatenablog.jp この中で、Text や URL の項目では、オブジェクトの名前などの情報を参照できることに触れました。 画面内の説明には Reference the object as {{ obj }} とあり、たしかに {{ obj }} とするとオブジェクト名(デバイスならデバイス名)を参照できました。 {{ obj.site }} のようにすると、名前だけ…

[NetBox] ちょっとした連携に便利なカスタムリンクの作成方法

はじめに NetBox には、各オブジェクトの画面ごとにカスタムリンクを作成できます。 netbox.readthedocs.io カスタムリンク 他のシステムへのリンクも作成できます。また、リンクやテキストにはオブジェクトの名前やJinja2構文を使って動的に変えることもできます。 活用例 例えば、以下のようなことが実現できます。 例1. Git 系サービスへのリンク 予め、GitHub の https://github.com/ユーザー名/config/デバイス名.txt…

[NetBox] Model のグラフ図を出力する

はじめに NetBox には Device や Rack などの様々な管理単位のオブジェクトがあります。Django の Model で定義されいるようなので、その Model を図に出力できたら面白いなと思いました。 調べてみると、やり方がありました。 hideharaaws.hatenablog.com django-extensions というものの機能の一部のようです。 django-extensions.readthedocs.io 早速試してみました。 動作確認環…

[NetBox] カスタムフィールドで独自の設定項目を追加する

はじめに NetBox はオープンソースの IPAM、DCIM です。 github.com たとえば、ネットワーク機器の情報を登録して、インターフェースへ IP アドレスを登録したりできます。 デフォルトでも様々な設定項目がありますが、必要に応じて追加できます。それがカスタムフィールドです。 netbox.readthedocs.io この記事ではかんたんなサンプルで、カスタムフィールドの追加方法を紹介します。 動作確認環境 NetBox 2.8.9 カスタムフィールドを追…

[Ansible] 「つまずき Ansible 【Part10】インベントリーのあれこれ」ふりかえり

…mentation Netbox NetBox は、OSSの IPAM/DCIM ツール。 Device 一覧、これをAnsibleのインベントリとして利用できる netbox inventory plugin を利用する以下の yaml を定義。 netbox.yml --- plugin: netbox api_endpoint: http://netbox01 token: 0123456789abcdef0123456789abcdef01234567 group_b…

[nornir] NETCONF で Cisco IOS XE 機器のコンフィグや状態の情報を取得する

…Ansible や NetBox などがあるようですが、ここでは一番シンプルなインベントリである Simple を利用します。 inventory/hosts.yaml --- ios01: hostname: ios-xe-mgmt-latest.cisco.com port: 10000 # netconf 利用時のデフォルトは 830 username: developer password: dummy platform: ios # netconf の場合はなんでも…

[Ansible] Tower 上のインベントリを CLI Ansible のダイナミックインベントリとして利用する

…inventory、netboxなどがあります。 他に Ansible Tower のインベントリ情報にも対応しています。 この記事では、tower インベントリプラグインを利用して、Ansible Tower 上で定義したインベントリを、CLI の Ansible で利用する方法を紹介します。 動作確認環境 Ansible 2.9.5 Ansible Tower 3.6.3 もくもく会環境を活用させていただきました 設定ファイルの作成 Ansible Tower への接続情…

[Ansible] パターン表記したインベントリの確認は ansible-inventory コマンドが便利

… --graph オプションがあったり、ダイナミックインベントリを指定する機能もあります。 Playbook を用意、実行する前に意図したインベントリかどうか確認するのにとても便利です。 参考 [Ansible] NetBox をインベントリーとして利用する - てくなべ (tekunabe) 【Ansible】インベントリファイルのグループ親子関係の確認には ansible-inventory コマンドの --graph オプションが便利 - てくなべ (tekunabe)

[Ansible] NetBox をインベントリーとして利用する

…す。 ■ はじめに NetBox を インベントリーとして利用する 以前「[Ansible] NetBox モジュールで Site や Device を登録する(Collection モジュール編) - てくなべ (tekunabe)」で、Ansible から NetBox の Device を登録する方法をご紹介しました。 今回は NetBox に登録された Device を、Ansible のインベントリーとして利用する方法をご紹介します。 Ansible 2.8 で追加…

[Ansible] NetBox モジュールで Site や Device を登録する(Collection モジュール編)

…す。 ■ はじめに NetBox とは、IPAM、ラックやデバイス管理機能を持ったWeb UI 付きのオープンソースのソフトウェアです。 Device 管理画面 API を備えていて、Ansible の NetBox モジュールから様々な操作ができます。 ここでは、NetBox の環境を構築した後に、Device を登録するのに必要な一連の作業(Manufacture や Device Role など含む)を Ansible から行う方法をご紹介します。 【目次】 ■ Net…

[Ansible] ansible-doc コマンドで Collection のモジュールのドキュメントを表示する

…tedpacket.netbox_modules という Collection 内の netbox_manufacturer モジュールのドキュメントを表示する場合は、以下のコマンドを実行します。 ansible-doc fragmentedpacket.netbox_modules.netbox_manufacturer ■ おためし 例として、fragmentedpacket.netbox_modules という Collection 内の netbox_manufact…

[Ansible] Ansible 2.8 リリース、便利機能や注意点まとめ

… インベントリ ★ Netbox をインベントリとして利用可能に https://docs.ansible.com/ansible/2.8/plugins/inventory/netbox.html https://twitter.com/akira6592/status/1123091046047444992 便利そう Gitlab runners をインベントリとして利用可能に Ansible dynamic inventory plugin for Gitlab run…