てくなべ (tekunabe)

ansible / network / automation / StackStorm

Arista EOS の検証用コンテナ版「cEOS-lab」の環境構築手順(1台編)

これは Network engineering Advent Calendar 2018 の17日目の記事です。 ■ はじめに Arista EOS には、コンテナ版の「cEOS」という製品があります。この cEOS の検証用として無償の「cEOS-lab」というものがあります。 2018年11月に開催された Red Hat Foru…

[Ansible] group_vars 配下にグループ名の「ディレクトリ」を用意すると複数の変数ファイルをまとめられる

■ はじめに 例えば、グループ名が junos の場合、 gourp_vars/junos.yml のような ファイルを用意して、グループ共通で利用する変数を定義すできます。このとき、ファイル名はグループ名(ここでは junos)を含む形式に固定されます。 応用的なやり方として、g…

[Ansible] 2018年のAnsible ネットワークモジュールのアップデートまとめ(詳細版)

これは Ansible Advent Calendar 2018 の15日目の記事です。 ■ はじめに 2018年、Ansible は 2.5、2.6、2.7 とバージョンアップを重ねてきました。ネットワーク関連では、新規対応プラットフォームやモジュールの追加の他にも、ネットワークモジュール用コネ…

[Ansible] ansible-playbook コマンドの -e (--extra-vars) オプションは変数ファイル名も指定できる

-e (--extra-vars) オプションとは ansible-playbook コマンドには、-e(または --extra-bars) という、extra vars(一番優先される変数の種類)を指定するオプションがあります。複数指定する場合は、複数の -e オプションを使用します。 ansible-playbook…

[Ansible] Playbook Debugger でタスク変数の値を変更してもタスクに反映されない現象について

■ はじめに Ansible には Playbook Debugger という、Playbook 実行時に変数の値を確認、変更などできる機能があります。 参考 Playbook Debugger 使えばきっと一目置かれるAnsibleのちょっと高度な機能 Ansible の Playbook Debugger を常に起動させる方法…

[Ansible] ios_config モジュールはデフォルトでは copy run start しない

■ デフォルトでは copy run start によるコンフィグ保存をしない Ansible には、Cisco IOS ネットワーク機器に対して設定変更などができる ios_config モジュールがあります。 lines オプションなどを利用して実行したいコマンドを指定します。 使用例 - nam…

Ansibleもくもく会を誘致して自社会場で開催した話

■ はじめに 2018/12/10 に弊社を会場として「Ansibleもくもく会 2018.12 ネットワーク編 in エーピーコミュニケーションズ」を開催しました。 ansible-users.connpass.com Ansibleもくもく会は、Ansible ユーザー会というコミュニティ主催とするハンズオンの…

トップエスイーセミナー「Infrastructure as Code によるITインフラの継続的改善」に参加してきました

iac

■ はじめに 2018/12/07 に開催された、トップエスイーセミナー「Infrastructure as Code によるITインフラの継続的改善」に参加してきました。 トップエスイーセミナーとは 社会人エンジニア向けにソフトウェア工学の教育を提供しているトップエスイーが開催…

[Ansible] null コールバックプラグインをためしてみた

はじめに:コールバックプラグインとは Ansible には コールバックプラグインという仕組みがあり、たとえば json コールバックプラグインを利用すると、ansible-playbook 実行結果の表示は JSON に変更できます。 Ansible 2.5 から null コールバックプラグ…

[Batfish] allinone イメージの Jupyter Notebook から自前のコンフィグディレクトリを利用可能にする方法

これは Batfish Advent Calendar 2018 の8日目の記事です。 ■ はじめに ネットワークコンフィグ分析ツール Batfish には公式 Docker イメージが2つあります。 イメージ1: batfish/batfish batfish 本体の イメージ イメージ2: batfish/allinone batfish 本体…

ネットワークエンジニアがはじめてプルリクを出した話(Ansible)

これは DevLOVE Advent Calendar 2018 の 6日目の記事です。 はじめに DevLOVE のコンセプトは以前は以下の2つでした。 開発の楽しさを発見しよう。広げよう。 開発の現場を前進させよう。 今年は 3つめが追加されました。 自分から越境しよう。 越境とは何…

[Batfish] 重複したインターフェースのIPアドレスを検出する(IOS/Junos混在編)

これは Batfish Advent Calendar 2018 の6日目の記事です。 ネットワーク機器のコンフィグ解析ツール Batfish には、重複したインターフェースのIPアドレスを検出する機能があります。 以前は、Cisco IOS のコンフィグを対象に試しました。 tekunabe.hatenab…

[Batfish] ネットワーク名とスナップショット名の関係

これは Batfish Advent Calendar 2018 の2日目の記事です。 ■ はじめに ネットワークコンフィグ解析ツール Batfish は、ネットワーク機器のコンフィグファイルなどを読み込んで、 ACL や経路などの妥当性をチェックできます。 読み込みの際に、ネットワーク…

[Batfish/Ansible] Batfish と Ansible によるネットワークコンフィグ事前検証のウェビナーのまとめ

これは Batfish Advent Calendar 2018 の1日目の記事です。 先日、Ansible と Batfish を使ったネットワークコンフィグの事前検証についてのウェビナーがあり、Ansible 公式サイトに動画も公開されました。 この記事では、動画の内容のまとめと補足をしたい…

[Ansible] グループ変数を活用したネットワーク機器への Syslog サーバー追加

この記事は、Software Design 2018年12月号 の 特集1「[超速]入門 Ansible」内の「第3章:Ansibleでネットワーク作業も自動化」(以下、基本編)の続きです。 ソフトウェアデザイン 2018年12月号作者: 中島倫明,横地晃,齊藤秀喜,楠正憲,三廻部大,鷲北賢,くつ…

Software Design 2018年12月号の Ansible 特集に寄稿しました(ウラ話など)

gihyo.jp はじめに Software Design 2018年12月号の Ansible 特集の中の「第3章:Ansibleでネットワーク作業も自動化」という章を寄稿させていただきました。個人的には貴重な経験だったので、経緯や気づきなどを書きたいと思います。 きっかけは継続したア…

[Batfish] 重複したインターフェースのIPアドレスを検出する(Cisco IOS編)

ネットワーク機器のコンフィグ解析ツール Batfish には、重複したインターフェースのIPアドレスを検出する機能があります。 Batfish の Python ライブラリpybatfish でいう ipOwners() に、パラメータ duplicatesOnly=True を与えたときの動作です。 以下に…

[Batfish] SRX(Junos)上の評価されないポリシーを検出する

はじめに ネットワーク機器のコンフィグ解析ツール Batfish には、読み込んだコンフィグのルーターのACLや、ファイアウォールのポリシーの中から、評価されないポリシーを検出する機能があります。 Batfish の Python ライブラリpybatfish でいう filterLine…

[Batfish] 単体の Docker イメージと pybatfish の環境構築方法

■ Batfish 公式の 2つの Docker イメージ Batfish には公式 Docker イメージが2つあります。 イメージ1: batfish/batfish batfish 本体の イメージ イメージ2: batfish/allinone batfish 本体と かんたんにお試しできる Jupyter Notebook とサンプルコンフィ…

[Batfish] ネットワーク機器のコンフィグを読み込んでルーティングなどの様々な検証ができるツール「Batfish」の紹介

■ Batfish とは: 実機に接続することなくコンフィグを検証 Batfish は、ネットワーク機器のコンフィグの様々な検証ができるツールです。 実機に接続する必要はありません。 準備したコンフィグファイルを読み込んでパースし、解析して内部でネットワーク機器…

【Ansible】ios_config モジュールでべき等性を考慮せずにコンフィグを投入する方法(match: none)

■ match オプション を none にするとべき等性を考慮しない Ansible には、Cisco IOS 機器にコンフィグ投入などができる ios_config というモジュールがあります。 このモジュールはデフォルトで、べき等性を保とうとする仕様になっています。 大まかな流れ…

【Ansible】ios_config モジュールで特権ユーザーにもかかわらず operation requires privilege escalation が発生する不具合について(2.7.1で修正)

■ 現象: 特権ユーザーにもかかわらずエラーに 特定条件下で、Ansible の ios_config モジュール使用時に、特権ユーザーを利用しているにもかかわらず、operation requires privilege escalation というエラーが表示され、Playbook の処理が中断されてしまう…

RED HAT ANSIBLE NETWORK AUTOMATION のアップデート情報(翻訳)

この翻訳記事は Ansible 公式ブログである THE INSIDE PLAYBOOK の記事、RED HAT ANSIBLE NETWORK AUTOMATION UPDATESを、筆者であるSean Cavanaughさん及びRed Hat の許可を得て翻訳したものです。 先日、今まで最大の AnsibleFest は成功を収めました。Ans…

【nornir】Python 製自動化フレームワーク「nornir」かんたんチュートリアル(Ansibleと比較しながら)

■ nornir とは nornir は、Python 製の新しい自動化フレームワークです。バージョン 1.0.0 は2018年5月にリリースされました。 netmiko や NAPALM も取り込んでいるため、ネットワーク機器にも対応しています。 この記事では、ネットワーク機器を対象とした…

「インストラクショナルデザイン―教師のためのルールブック」個人的まとめ

教育資料や発表資料を、分かりやすく、効果的なものにするヒントになるかと思い「インストラクショナルデザイン―教師のためのルールブック」という本を読みました。 インストラクショナルデザイン―教師のためのルールブック作者: 島宗理出版社/メーカー: 米…

ネットワーク自動化 Python ライブラリ NAPALM 2.3.3 リリース、公式 Docker イメージ追加など

■ NAPALM 2.3.3 リリース github.com 2018/10/15 にネットワーク自動化 Python ライブラリである NAPALM 2.3.3がリリースされました。詳細は 2.3.3 CHNGELOG に記載があります。 この記事では、個人的に気になった Docker イメージの追加と、モックの利用法…

#ssmjp 2018/10 で「Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき)」という発表をしました

■ Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき) 2018/10/12 開催の #ssmjp 2018/10 で「Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき)」という発表をさせていだきました。 Ansibleではじめるサーバ…

【Ansible】データから「select * from users where name="hoge"」的な抽出ができる selectattr

SQL の where 句のように ディクショナリのリストから抽出するには selectattr を利用 以下のようなディクショナリのリストがあるとします。DBにおけるテーブルのデータのような構造です。 users: - name: yamada age: 42 - name: tanaka age: 26 - name: su…

【Ansible】pip モジュールでバージョン指定しながら複数のパッケージを指定できるようになった(Ansible 2.7新機能)

■ Ansible 2.7 で pip モジュールの name オプションで、バージョン指定しながら複数のパッケージを指定できるように Ansible の pip モジュールでは、これまで name オプションの値をリストで指定すると、pip install pkgA pkgB pkgC のように、複数のパッ…

「エンジニアの知的生産術」個人的まとめ

エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)作者: 西尾泰和出版社/メーカー: 技術評論社発売日: 2018/08/10メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 「エンジニアの知的生産…