てくなべ (tekunabe)

ansible / network automation / 学習メモ

2024-01-01から1ヶ月間の記事一覧

[Ansible] ansible-lint で hosts ディレクティブに変数が含まれると発生するエラーの対処案2つ

はじめに hosts: "{{ targets }}" のように、hosts に変数を利用していると、ansible-lint のチェックで変数未定義のエラーになってしまいます。 $ ansible-lint debug.yml WARNING Listing 1 violation(s) that are fatal syntax-check[specific]: The fiel…

[Ansible] 公式ドキュメントのあのページ、どこにいった?を探す

はじめに コレクションというモジュール類の管理単位がだいぶ浸透してきてると思いますが、それに伴ってか、ドキュメント上にも変化が見られます。 もともとAnsible本体側にあったページがコレクション側に移動してたりします。 コレクション側に移動してい…

[TTP] スペース含めて値を取得する

ttp

はじめに ネットワーク機器の show コマンドのパーサーとして TextFSM や TTP (Template Text Parser) を使い分けています。 個人的には TTP が直感的に使える一方で、ちょっとしたことでつまずくことがあります。 例えば今回紹介する、スペースを含めて値を…

[Ansible] 組織内でのみ使うコレクションの名前空間「local」が公式ドキュメントに明示された

そもそもコレクションとは Ansible は現在、モジュール類の管理はコレクションという単位でまとめられています。 このコレクションは「名前空間(namespace).コレクション名」という形式で識別されます。例えば、ansible.utisl や cisco.ios などです。 コレ…

[Ansible] コレクションが置いてある場所を基準に分類してみる

はじめに コレクションの分類の仕方にはいろいろな観点があります。 例えば、どこからそのコレクションを入手できるか、マネージドノードはどいういう特性か(サーバー、ネットワーク、クラウドなど)などです。 最近私の周りで少し話題になったので、この記…

[Ansible] ロールの実行に必要な変数のチェック「だけ」する(ロールの処理自体はしない)

はじめに 以前の記事でもご紹介しましたが、ロールの実行に必要な変数をチェックする「Role argument validation」という機能があります。 tekunabe.hatenablog.jp ロールの meta/argument_specs.yml というファイルに、どういう変数が必須か、型は何かなど…

[Ansible] antsibull の発音とスペル

はじめに Ansible の周辺にはさまざまなツールがあります。 その中に、antsibullや antsibull-docs、antsibull-changelogのように、antsibull という言葉を含むツールがあります。 この antsibull (よくスペルを間違えます)が、なぜこのようなスペルなのか…

[Ansible] assert モジュールと ansible.utils.fact_diff フィルターを組み合わせてエラーメッセージをわかりやすくする

はじめに 以前の記事でもご紹介した、ansible.utils.fact_diff フィルター のちょっとした活用方法です。 ansible.utils.fact_diff 「モジュール」ではなく「フィルター」なので、別のモジュールのオプションに組み込めます。 この特性を活用して、ansible.b…

[Ansible] パス文字列からディレクトリ名や親ディレクトリ名を遡って抽出する

はじめに Ansible には、パス文字列からディレクトリを抽出するための ansible.builtin.dirname というフィルターがあります。 正規表現などのパターンマッチングするより、こういう専用のフィルターがあるならそれを使うのが良いかなと思います。 応用する…

「Pythonとネットワークの自動化基礎検定」を受験してきました

はじめに 周囲のエンジニアは息を吸うように色々受験(そして合格)されているようなのですが、私はしばらく何もやっていませんでした。確か直近は、4年前の DevNet Associates(失効)。 久々に、なにかやってみとうと思っていたところ「Pythonによるネット…