2018-01-01から1年間の記事一覧
gihyo.jp はじめに Software Design 2018年12月号の Ansible 特集の中の「第3章:Ansibleでネットワーク作業も自動化」という章を寄稿させていただきました。個人的には貴重な経験だったので、経緯や気づきなどを書きたいと思います。 きっかけは継続したア…
ネットワーク機器のコンフィグ解析ツール Batfish には、重複したインターフェースのIPアドレスを検出する機能があります。 Batfish の Python ライブラリpybatfish でいう ipOwners() に、パラメータ duplicatesOnly=True を与えたときの動作です。 以下に…
はじめに ネットワーク機器のコンフィグ解析ツール Batfish には、読み込んだコンフィグのルーターのACLや、ファイアウォールのポリシーの中から、評価されないポリシーを検出する機能があります。 Batfish の Python ライブラリpybatfish でいう filterLine…
■ Batfish 公式の 2つの Docker イメージ Batfish には公式 Docker イメージが2つあります。 イメージ1: batfish/batfish batfish 本体の イメージ イメージ2: batfish/allinone batfish 本体と かんたんにお試しできる Jupyter Notebook とサンプルコンフィ…
■ Batfish とは: 実機に接続することなくコンフィグを検証 Batfish は、ネットワーク機器のコンフィグの様々な検証ができるツールです。 実機に接続する必要はありません。 準備したコンフィグファイルを読み込んでパースし、解析して内部でネットワーク機器…
■ match オプション を none にするとべき等性を考慮しない Ansible には、Cisco IOS 機器にコンフィグ投入などができる ios_config というモジュールがあります。 このモジュールはデフォルトで、べき等性を保とうとする仕様になっています。 大まかな流れ…
■ 現象: 特権ユーザーにもかかわらずエラーに 特定条件下で、Ansible の ios_config モジュール使用時に、特権ユーザーを利用しているにもかかわらず、operation requires privilege escalation というエラーが表示され、Playbook の処理が中断されてしまう…
この翻訳記事は Ansible 公式ブログである THE INSIDE PLAYBOOK の記事、RED HAT ANSIBLE NETWORK AUTOMATION UPDATESを、筆者であるSean Cavanaughさん及びRed Hat の許可を得て翻訳したものです。 先日、今まで最大の AnsibleFest は成功を収めました。Ans…
※2018/12/18 更新: nornir 2.0.0 リリース に伴い、全面的に 2.0.0 対応に更新しました。 ■ nornir とは nornir は、Python 製の新しい自動化フレームワークです。 netmiko や NAPALM も取り込んでいるため、ネットワーク機器にも対応しています。 この記事…
教育資料や発表資料を、分かりやすく、効果的なものにするヒントになるかと思い「インストラクショナルデザイン―教師のためのルールブック」という本を読みました。 インストラクショナルデザイン―教師のためのルールブック作者: 島宗理出版社/メーカー: 米…
■ NAPALM 2.3.3 リリース github.com 2018/10/15 にネットワーク自動化 Python ライブラリである NAPALM 2.3.3がリリースされました。詳細は 2.3.3 CHNGELOG に記載があります。 この記事では、個人的に気になった Docker イメージの追加と、モックの利用法…
■ Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき) 2018/10/12 開催の #ssmjp 2018/10 で「Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき)」という発表をさせていだきました。 Ansibleではじめるサーバ…
SQL の where 句のように ディクショナリのリストから抽出するには selectattr を利用 以下のようなディクショナリのリストがあるとします。DBにおけるテーブルのデータのような構造です。 users: - name: yamada age: 42 - name: tanaka age: 26 - name: su…
■ Ansible 2.7 で pip モジュールの name オプションで、バージョン指定しながら複数のパッケージを指定できるように Ansible の pip モジュールでは、これまで name オプションの値をリストで指定すると、pip install pkgA pkgB pkgC のように、複数のパッ…
エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)作者: 西尾泰和出版社/メーカー: 技術評論社発売日: 2018/08/10メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 「エンジニアの知的生産…
(日本語版はこちら) Sample playbook - hosts: localhost gather_facts: no tasks: - name: invalid attribute test debug: msg: test xxxxx: yyyy # invalid attribute In Ansible version >= 2.6: WARNING $ ansible-playbook -i localhost, attr.yml [WAR…
■ はじめに Ansible 2.7 で、ターゲットホストに到達不能の状態を無視する ignore_unreachable キーワードが追加されました。 changelog New keyword ignore_unreachable for plays and blocks. Allows ignoring tasks that fail due to unreachable hosts, …
(English version) はじめに 以下の例のように、Playbook 内に無効な属性が指定されいる場合のデフォルトの挙動が Ansible 2.7 で変更されました。 - hosts: localhost gather_facts: no tasks: - name: invalid attribute test debug: msg: test xxxxx: yyy…
■ 1. はじめに 2018/10/04 に Ansible 2.7 がリリースされました。 pip install ansible で 2.7.0.0 がインストールされます。 Changelog https://github.com/ansible/ansible/blob/stable-2.7/changelogs/CHANGELOG-v2.7.rst#v2-7-0 ネットワーク対応につい…
Ansible 2.7 で追加されたネットワークモジュールのリスト(rc4版)です。 aci_interface_policy_ospf - Manage OSPF interface policies (ospf:IfPol) bigip_appsvcs_extension - Manage application service deployments bigip_cli_alias - Manage CLI ali…
Playbook Debugger Ansible には、Playbook 実行時に変数値の確認や、オプション値の変更ができる Playbook Debugger という機能があります。 デバッガーの起動条件 Ansible 2.5 以降では、debugger キーワードで、デバッガーの起動条件を指定できます。 た…
■ はじめに 2018/08/28 に開催された「 【祝2周年】他職種×PRの可能性を考える広報LT大会#15@ユニオンテック 」に参加とLTをしてきました。 普段は広報担当の方自身がLTされることが多いようですが、今回は「他職種×PR」ということで、ご縁があってエンジニ…
■ はじめに Ansible 2.7 への ポーティングガイドを眺めていたら、このような記載がありました。 If you specify --tags or --skip-tags multiple times on the command line, Ansible will merge the specified tags together. In previous versions of Ans…
Ansible には インベントリファイル の情報を表示するansible-inventory コマンドがあります。グループの親子関係を階層化して表示する--graph オプションが便利なのでご紹介します。 インベントリファイル 8個のホストを、種別(web/router)や地域、東日本…
■ はじめに 検証環境で、ios_command モジュールや、ios_config モジュールを利用した Playbook 実行時に、以下のようなエラーメッセージに遭遇しました。 fatal: [172.16.0.2]: FAILED! => {"msg": "unable to set terminal parameters"} 自分が調べた方法…
はじめに 2018/08/18 に開催された、カイゼン・ジャーニー・カンファレンスの登壇者の皆様資料を、私が見つけた範囲でまとめます。登壇者のみなさまありがとうございました。 もし他にもありましたら、 @akira6592 まで教えていたけると助かります。更新いた…
■ はじめに 現在開発中の Ansible 2.7 (develブランチ) で、ネットワーク機器への 設定系 コマンドを投入するモジュール cli_config が登場しました。 なお、同じく Ansible 2.7 で開発中の 参照系 コマンドを実行するモジュール cli_command については過去…
Ansible には ping モジュールや net_ping モジュールなど、モジュール名に ping が含まれるものがいくつかあります。 名前は似ていますが、どこからどこへの ping なのか、何のプロトコルを使うのか、などの点で性質が異なります。 例えば、 公式ドキュメン…
(このツイートのブログ版です) どこで聞いたか覚えてないのですが、Ansible の Playbook のタスクで 「when による条件をつけるとき、タスクの最後に指定するのが違和感がある。プログラムの if 分だと頭につけるが。」という意見があって、when はどこで…
■ はじめに Ansible には junos_facts という Juniper Junos の機器のファクトを収集するモジュールがあります。 通常であれば、 ansible_net_version または、 ansible_facts.net_version という変数で、Junos のバージョンを取得できるのですが、(そそら…