てくなべ (tekunabe)

ansible / network / automation / StackStorm

ansible

「Ansibleもくもく会 2019.01 ネットワーク編 in 富士通」にメンターとして参加しました

はじめに 2019/01/ に Ansible のハンズオンイベント「Ansibleもくもく会 2019.01 ネットワーク編 in 富士通」が、 富士通ソリューションスクエア PLYで開催されました。 ansible-users.connpass.com 本イベントに、メンターとして参加させていただいたので…

ネットワークのテスト自動化に利用できそうなツールまとめ

はじめに サーバーのテスト自動化といえば、 Serverspec や Testinfra 、infrataster などが有名ですが、ネットワークのテスト自動化については、みんなが口をそろえて名前を出すものがないような印象です。一方で、リスクの観点から設定変更の自動化より先…

[Ansible] Junos の設定投入後に commit せずに candidate config を取得する

■ はじめに Ansible は、Juniper Junos のネットワーク機器に対応していて、情報の取得や設定変更ができます。 Junos は設定投入後に commit することによって、実際の動作に反映されます。設定変更の流れの中で、commit 前の candidate config を確認したい…

[Ansible] 公式 lint ツール、ansible-lint 4.0.0 リリース。新しいドキュメントサイトやデフォルトルール追加など

■ はじめに Ansible Playbook の 書式をチェックする lint ツール ansilbe-lint のバージョン 4.0.0 が 2018/12/18 にリリースされました。 以下 changelog から引用 New documentation site docs.ansible.com/ansible-lint Additional default rules for an…

[Ansible] ios_config モジュールの backup オプションによるバックアップで意図しないバックアップファイルが削除されるバグについて (Ansible 2.7.5 現在)

■ はじめに Ansible には Cisco IOS ネットワーク機器に設定変更コマンドを実行する ios_config モジュールがあります。 ios_config モジュールには、backup という、設定変更前のコンフィグを事前に Ansible 側に保存するオプションがあります。 デフォルト…

[Ansible] ios_config モジュールの src で指定するファイルの内容には正しいインデントが必要

これは Ansible Blogger 2018 (sponsored by Red Hat) Advent Calendar 2018 の22日目の記事です。 ■ はじめに Ansible には、 Cisco IOS ネットワーク機器に対して設定変更コマンドを実行できる ios_config モジュールがあります。 ios_config モジュール…

[Ansible] AWX から Cisco IOS と Juniper Junos を操作する

■ はじめに Ansible には GUI 付きの Ansible Tower という製品があります。そのアップストリーム版 OSS にあたるものとして AWX があります。 AWXのダッシュボード画面 この記事では、AWX から IOS と Junos の機器に対して簡単な操作(show versionの実行…

[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 ユーザー会というコミュニティ主催とするハンズオンの…

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

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

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

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

[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でネットワーク作業も自動化」という章を寄稿させていただきました。個人的には貴重な経験だったので、経緯や気づきなどを書きたいと思います。 きっかけは継続したア…

【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…

#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 のように、複数のパッ…

[Ansible] The invalid attribute in Playbook causes error by default in Ansible 2.7

(日本語版はこちら) 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】ホストに到達不能だった状態を無視する ignore_unreachable について(Ansible 2.7 新機能)

■ はじめに Ansible 2.7 で、ターゲットホストに到達不能の状態を無視する ignore_unreachable キーワードが追加されました。 changelog New keyword ignore_unreachable for plays and blocks. Allows ignoring tasks that fail due to unreachable hosts, …

【Ansible】Ansible 2.7 からデフォルトで無効なタスク属性があるとエラーになる

(English version) はじめに 以下の例のように、Playbook 内に無効な属性が指定されいる場合のデフォルトの挙動が Ansible 2.7 で変更されました。 - hosts: localhost gather_facts: no tasks: - name: invalid attribute test debug: msg: test xxxxx: yyy…

【Ansible】Ansible 2.7 リリース、Mikrotik RouterOS などに対応。マルチベンダー対応コマンドモジュールの登場など、ネットワーク対応も強化

■ 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】Ansible 2.7 で追加されたネットワークモジュールのリスト(rc4)

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…

【Ansible】 Playbook Debugger を特定のタスクだけ起動する方法

Playbook Debugger Ansible には、Playbook 実行時に変数値の確認や、オプション値の変更ができる Playbook Debugger という機能があります。 デバッガーの起動条件 Ansible 2.5 以降では、debugger キーワードで、デバッガーの起動条件を指定できます。 た…

【Ansible】--tags オプションを複数した時にタグをマージするバージョンとしないバージョンがある

■ はじめに 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…