てくなべ

ネットワーク、自動化などの技術的なことを書いていきます。

ansible

StackStorm の Ansible Pack で利用するPythonパッケージの追加インストール方法

はじめに StackStorm の Ansible Pack を利用して Junos のルーターに接続しようとしたところ、 ncclient is not installed というエラーになってしまいました。 このエラー自身はAnsible 単体で利用した時にも見かけたことがあったので対処方法を知っていま…

StackStorm と Ansible で Cisco IOS ルーターに設定を投入する(st2 run編)

■ はじめに StackStorm と Ansible 連携を試すために、Cisco IOS ルーターに設定を投入する方法を確認しました。 この記事では、環境の準備と st2 run コマンドによる簡単な Ansible 連携の方法をご紹介します。 ■ StackStorm側の準備 StackStorm 本体のイン…

Ansible 2.5.3 で ios_config モジュールのコンフィグバックアップ時に defaults オプションを参照するようになった

■ はじめに ios_config モジュールには、コンフィグのバックアップファイルを生成する際に利用するコマンドを show running-config にするか、show running-config all または full (以降 show run all) にするかを決める、defaults というオプションがあり…

Ansible ios_config モジュールで意図せず chaneged になってしまうバグが 2.5.3 で修正された

はじめに Ansible 2.5.0 - 2.5.2 の ios_configモジュールには、コンフィグが変更されていないにもかかわらず意図せず changed になってしまうバグがありました。2018/05/18 にリリースされた Ansible 2.5.3 で修正されましたので、簡単な動作確認をします。…

Ansible でNW機器のインターフェースが意図通りのVLANに所属しているかチェックする(associated_interfaces)

■ はじめに Ansible 2.4 から、ネットワークモジュールに、設定だけでなく「意図した状態か」チェックする Declarative Intent という機能が追加されました。 参考 https://www.ansible.com/blog/networking-features-in-ansible-2-4 Ansible 2.4 時点では、…

Ansible ネットワークモジュールにおける facts の扱い

■ はじめに Ansible のネットワークモジュールは、通常のモジュールとは facts の扱いが異なります。 この記事では、ネットワークモジュール固有の facts の扱い方についてご紹介します。 想定バージョンは Ansible 2.5.2 です。 ■ 通常の facts は ネットワ…

Ansible 2.5 から facts は ansible_facts.* という名前空間配下でも参照可能

はじめに Ansible 2.5 から facts は ansible_facts.* という名前空間配下でも参照可能になりました。 例 ansilbe_distribution であれば ansible_facts.distribution でも参照可能 ansilbe_nodename であれば ansible_facts.nodename でも参照可能 そのため…

Ansible Network Team によってメンテナンスされているネットワークモジュール一覧

Ansible Network Team によってメンテナンスされているネットワークモジュール一覧は以下のページにまとめられています。 Modules Maintained by the Ansible Network Team — Ansible Documentation (参考リンク) www.redhat.com What networking platforms …

Ansible ネットワークモジュールの aggregate オプションによる繰り返し処理の特徴

■ はじめに Ansible 2.4 から、ネットワークモジュールの一部で、繰り返しを伴う設定を効率的に投入できる aggregate というオプションが利用できるようになりました。 この記事では、既存の with_items による繰り返しとの比較を通じて、動作の紹介をします…

Ansible Night in Tokyo 2018.04 で「Junosモジュールのコネクションタイプの使い分け」という発表をしてきました

■ はじめに 2018/04/26 に開催された Ansible Night in Tokyo 2018.04 で「Junosモジュールのコネクションタイプの使い分け」という発表をさせていただきました。 ansible-users.connpass.com Ansible 2.5 で、ネットワークモジュール向けに network_cli 、 …

JANOG41.5 で「もっと気軽に始めるAnsible」という発表をしてきました

■ はじめに 2018/04/20 に開催された JANOG41.5 Interim Meeting で「もっと気軽に始めるAnsible」という発表をさせていただきました。 janog.connpass.com Ansible はネットワーク機器にも対応しています。YAML形式の定義ファイル(Playbook)を書かずに、…

ansible Ad-Hoc コマンドの callback plugin の指定時は bin_ansible_callbacks = True も必要

■ はじめに Ansible には callback plugin という仕組みがあり、結果出力の形式を変更したりすることができます。 ansible-playbook コマンドでは、ansible.cfg で stdout_callback の指定を、ansible コマンドではこれに加え bin_ansible_callbacks = True …

Ansible の ios_command の出力結果でパスワードが ******** でマスクされる

■ はじめに Ansible には Cisco IOS へ show コマンドを実行できる ios_command モジュールが用意されています。 このモジュールは設計上、コマンド実行結果にパスワードで指定した文字列が含まれる場合、パスワードに関係ない箇所でも******** でマスクする…

Ansible ネットワークモジュールのプチ社内勉強会をしました

■ 目的 本日、社内でAnsibleのネットワークモジュールのプチ勉強会をしました。 本当にプチと言う感じで参加者は数人、資料もほとんど既存資料のリンク集でした。 初めての人には、実際にAnsibleを他人が動かしてるところを見たり、自分で動かしたりすること…

Ansible の panos_object モジュール使用時のエラー「Missing required libraries.」の対策

■ はじめに Ansible には PaloAlto (PAN-OS) 用のモジュールがいくつかあります。これらのモジュールを利用するにあたって、別途Pythonライブラリが必要なものもあります。 たとえば、 アドレスやサービスオブジェクトを操作する panos_object モジュール の…

Ansible の Playbook Debugger を常に起動させる方法(Ansible 2.5 から)

■ はじめに Ansible には Playbook Debugger というPlaybook の実行を途中で止めて、変数の内容を表紙したり変更したりできる機能があります。 これまでは、エラー発生時のみ Debugger を起動させることできたのですが、次期バージョン Ansible 2.5 から、オ…

Ansible 2.5 の情報を一足早く掴むために読みたいページたち

はじめに 現在(2018/02/19)、Ansible 次期バージョンの 2.5 は beta2 となっています。正式リリースは 3月の予定のようです。 この記事では、Ansible 2.5 の情報を一足早く掴むために読んでおきたいページたちをご紹介します。 公式ドキュメントはすべて d…

Ansible の Junos 対応モジュールは標準モジュールとGalaxyモジュールの2種類ある

はじめに Ansible は ネットワーク機器にも対応していて、Juniper の Junos にも対応しています。 Junos対応モジュールは大きく分けて以下の2の種類があります。 Ansible本体に組み込まれているモジュール(以下、標準モジュール) Ansible Galaxy からイン…

Ansible で Cisco IOS からの ping 結果を CSV 出力する

これは Ansible Advent Calendar 2017 の18日目の記事です。 ■ やりたいこと Ansible で Cisco IOS から複数のIPアドレスに対してpingを実行し、その結果をCSVファイルに出力します。本記事では、利用する ios_ping モジュールの説明と、 Playbookのサンプル…

2017年の社内外発表のまとめ(ほぼAnsible)

今年は社内社内外で発表することが増えた年でした。 アウトプットするとフィードバックを頂けるという点では、ブログ等でも同じなのですが、発表の場合はより早く頂ける印象があります。 フィードバックを頂いた皆様や、イベント運営の皆様に感謝いたします…

Ansible の jinja2 フィルタを色々試すときも ansible-console が便利

以前のエントリでもご紹介しましたが、 ansible-console というインタラクティブな Ansible 環境が便利です。 tekunabe.hatenablog.jp 最近、また便利だなと思ったのは使い方は、jinja2 フィルタを色々試すときです。 ・デモ動画 試してみて、やり方が定まっ…

Ansibleのインベントリファイルの拡張子に .ini を使わない方がいい理由

オライリーの「初めてのAnsible」の訳注で初めて知ったのですが、 ansible.cfg の hostfile パラメータや、ansible-playbook コマンドなどの -i オプションでディレクトリごと指定して、複数のインベントリファイルをマージして扱う場合、 拡張子が .ini の…

Ansible の playbook をデバッグしたいときのあれこれ

■ -v オプション ansible-playbook コマンドの -v オプションでデバッグ的な情報が画面に表示されるようになります。 -v、-vv、-vvv といったように、 v の数が多いほど詳細な表示となります。 ■ --step でステップ実行 playbook 中のタスクを一つ一つステッ…

ansible-console はモジュール名やオプションのTAB補完ができて便利

はじめに Ansible 2.1 から ansible-console という、REPL のような対話型コンソール機能があります。 モジュール名やオプションのTAB補完ができて便利なので、動画付きでご紹介します。 デモ動画 以下のデモ動画でお分かりになるかと思います。 補足 確認し…

「3社共催 Ansible セミナー "経験から学ぶ Ansible の活用方法" Part 3」参加メモ

2017/10/06 にレッドハットさんを会場として開催された 「3社共催 Ansible セミナー "経験から学ぶ Ansible の活用方法" Part 3」 に参加してきました、参加メモを掲載いたします。 殴り書きに近い箇所もあるため、貼り付け付けたPDF資料もあわせてご参照し…

NetOpsCoding#5 × ネットワークプログラマビリティ勉強会#13 に参加と登壇してきました

2017/10/10 に NetOpsCoding#5 × ネットワークプログラマビリティ勉強会#13 が開催され、参加と登壇してきました。 簡単な個人的な気付きやメモを記述します。 network-programmability.connpass.com ■ イントロダクション NetOpsCoding#5 introduction from…

AnsibleFest San Francisco 2017 で気になったネットワークとテスト自動化の動画

はじめに 先日行われた AnsibleFest San Francisco 2017 での発表の動画が、26個ほど以下のページに掲載されています。 www.ansible.com 私が特に気になったネットワークとテストの動画を簡単にご紹介します。 ■ ANSIBLE FOR NETWORKS: GOING BEYOND STATIC …

【実機不要】 Ansible の FortiOSモジュールでコンフィグファイルの操作を試す(残課題あり)

■ 1. はじめに Ansible のネットワークモジュールは基本的に動作中の機器に対して操作を行います。 ただし、一部のモジュールでは実機ではなくコンフィグファイルを操作できるモジュールもあります。 この記事では fortios_address モジュールを利用して、Fo…

Ansibleでネットワーク機器のshowコマンド結果をパースする方法まとめ

Ansibleでshowコマンドの結果をパースする方法が増えてきています。 この記事ではCisco IOSを対象として、標準でできるかどうか、どういう情報をパースできるかなどの観点で、4つの方法を簡単にまとめます。 ■ 概要 parse_cli_textfsm フィルター Ansible 2.…

ネットワーク機器のコマンド結果をパースする parse_cli_textfsm フィルタープラグインを試す (Ansible 2.4新機能)

Ansible 2.4 で Ansible でネットワーク機器のコマンド結果をパースするための parse_cli_textfsm というフィルタープラグインが搭載されました。 http://docs.ansible.com/ansible/latest/playbooks_filters.html#network-cli-filters 今回は簡単な例で試し…