2019-01-01から1年間の記事一覧
はじめに ターミナルソフトでコマンドを実行して、結果をどこかにコピペしたいとき、画面を遡って範囲指定することはないでしょうか。 画面を遡ってスクロール 遡るのは「あ、行き過ぎた」ということ往々として起こり、少し面倒だと思います。 ※もちろん、も…
はじめに CentOS 7.7 (1908) がリリースされました。 リリースノートの「5. Major Changes」には以下のように記載があります。 Python 3 is now available. Installing the python3 package gives you the Python 3.6 interpreter. IUS Community Project と…
はじめに Anislbe には、値を変換したり取り出したりする、さまざまなフィルター機能があります。 しかし、Playbook を書かく時、なかなか意図通りにフィルターできないこともあるのではないしょうか。 このようなときは、毎回 Playbook を実行するのも手間…
変数 ansible_network_os とは Ansible のネットワークモジュールでは、多くの場合ansible_network_os という変数に、どのプラットフォーム(Cisco IOS、Arista EOS など)を対象とするか指定する必要あります。 サンプルの Playbook でも見かけることは多い…
はじめに 頭の体操なので、実運用で利用するのはおすすめしませんシリーズです。 Playbook は YAML で書きます。ディクショナリの順番には処理上の意味はありません。ところが、慣例上は以下のように hosts から書くことが書くことが多いのでしょうか。 - ho…
■ はじめに Ansible 2.8 では、RESTCONF でネットワーク機器の情報を取得したり、設定を変更したりできる RESTCONF モジュールが導入されました。 以前、本ブログでは、モジュールを利用してIOS-XE へ RESTCONF でアクセスしてインターフェース情報の取得を…
2019/09/05 に、ネットワークプログラマビリティ勉強会 #18で、「show コマンド結果をパースする方法あれこれ」という発表をさせていだきました。サンプルコードが中心だったため、コピペしやすいように、ブログ記事として書きおこします。 ■ 1. はじめに ■ …
■ はじめに Ansible には、IP アドレスに対してさまざまフィルターをかける ipaddrというフィルタープラグインがあります。 過去記事参考: [ipaddr フィルターでプレフィックス表記とネットマスク表記を変換する) このフィルターを使って、IPアドレスのリス…
はじめに Ansible 2.8.0 から、グループ名に利用できる文字が厳格化されました。 たとえば、ハイフンが入っていると不正とみなされ、WARNING が表示されます。 https://www.slideshare.net/akira6592/ansible28update/21 この挙動は、TRANSFORM_INVALID_GROU…
■ はじめに Ansible には、IP アドレスに対してさまざまフィルターをかける ipaddrというフィルタープラグインがあります。 このフィルターを使って、プレフィックス表記とネットマスク表記を相互に変換する方法をまとまめす。 プレフィックス表記からネット…
■ はじめに ansible-playbook コマンドを実行中、流れる実行ログを眺めながら「あとどのくらいのタスクが残っているんだろう?」と考えたことはありませんでしょうか。 counter_enabled というコールバックプラグインを利用すると、全タスク中の何タスク目な…
■ はじめに ansible-playbook コマンドの実行ログで、OKやスキップの分のタスクを非表示にする機能があります。ansible.cfg や環境変数で表示、非表示を切り替えます。 ok なタスクを非表示にする設定 [defaults] display_ok_hosts = no スキップしたタスク…
はじめに 2019/07/24-26 に兵庫県神戸市の神戸国際展示場で開催された JANOG44 Meeting in Kobe に参加、登壇してきました。 本ブログでは、2回に分けてレポートします。 その1 参加編 その2 登壇編 ここからはじめよう、運用自動化 (本記事) その2である本…
はじめに 開会宣言 2019/07/24-26 に兵庫県神戸市の神戸国際展示場で開催された JANOG44 Meeting in Kobe に参加、登壇してきました。 本ブログでは、2回に分けてレポートします。 その1 参加編(本記事) その2 登壇編 ここからはじめよう、運用自動化 その…
■ はじめに Ansible には callback plugin という仕組みがあり、結果出力の形式を変更したりすることができます。 yaml に変更すると、改行コードごとに改行された形で標準出力されます。 本記事でも、callback plugin を yaml に変更する方法ど、出力例をご…
はじめに [Ansible] Ansible 2.8 リリース、便利機能や注意点まとめ - てくなべ (tekunabe) でも少し触れたた通り、Ansible 2.8 から Ansible Collections という機能が実験的サポートとして追加されました。 正直、詳細はまだ理解できていないのですが、名…
はじめに ネットワーク機器のコンフィグファイルをどこかに提示する際、パスワードや IP アドレス、SNMP コミュニティ名などの固有情報をマスクしたり、変更したりする機会はないでしょうか。 netconan はそれを自動で変換してくれるツールです。 github.com…
■ DevLOVE X とは 2019/06/22 - 23 に、DevLOVE X を開催しました。 devlove.doorkeeper.jp devlove.wixsite.com DevLOVE X は、DevLOVEという開発(Develop)を愛する人たちのコミュニティの10周年を記念したイベントです。ことの始まりは2008年6月21日。つま…
はじめに Ansible は、Ansible 2.8 現在 50以上のネットワークプラットフォームに対応しています。 プラットフォームごとに、どのバージョンでテスト、サポートされているかの情報が、探すのにやや手間取ってしまうので、こちらにリンクまとめておきます。 A…
はじめに ※あくまで小ネタの話なので実運用で利用するのはおすすめしません。 YAML は JSON のほぼスーパーセットなのであれば、JSON で Playbook を書けるのでは?と思ったことがあったので試してみました。 Playbook $ cat test.yml [ { "gather_facts": f…
■ エラーの原因と対策 Ansible コントールノードに paramiko (Python の SSHクライアント実装ライブラリ)がインストールされていない環境で、Ansible を実行すると、以下のようなエラーが表示されて異常終了してしまいます。 fatal: [iosao1]: FAILED! => {"…
■ はじめに 2019/05/16 に Ansible 2.8.0 がリリースされました。多数のモジュールの追加や、機能追加、バグ修正、機能削除、機能の非推奨化、仕様変更が含まれています。 大きめなトピックとしては以下のものがあります。 Python のインタープリターを探索…
■ はじめに Ansible 2.8 では、RESTCONF でネットワーク機器の情報を取得したり、設定を変更したりできる RESTCONF モジュールが導入されます。(本記事執筆時現在 RC段階) この記事では restconf_get モジュールを利用して、IOS-XE へ RESTCONF でアクセスし…
■ はじめに 2019/04/26 に開催された JANOG43.5 Interim Meeting で「ネットワークコンフィグ分析ツール Batfish との付き合い方」という発表をさせていただきました。 janog.connpass.com togetter.com Batfish は、ネットワーク機器のコンフィグのさまざま…
question とは ネットワークコンフィギュレーション分析ツール「Batfish」の Python ライブラリである pybatfishでは、question という形で、コンフィグに対してさまざまな検証を行います。question は Available questions というページにまとめられていま…
■ はじめに 以下の記事(以下、元記事)を拝見し、Ansible でもできるかなと思って試してみました。 qiita.com 開発中の Ansible 2.8 で導入予定の read_csv モジュールを利用しています。現在(2019/04/02)安定版の Ansible 2.7 系では利用できませんのでご…
■ はじめに 2019年5月リリース予定の Ansible 2.8 では、CSV ファイルをリストやディクショナリとして読み込む read_csv モジュール が導入されます。カンマ区切りのファイルだけでなく、別のデリミタ(;など)を指定することもできます。 この記事では、 read…
■ はじめに ファイルの内容や変数に改行が含まれている場合、1行ごとにリストにしてループなどの処理をしたい場合があります。そんなときに利用できるのが、 splitlines() です。split() が引数で指定した文字で分割するのに対して、splitlines() は改行で分…
■ はじめに Ansible では、管理対象のホストをグループ化してインベントリファイルに定義できます。Playbook 内にグループを指定すると、指定したグループに所属するホストのみが対象になります。 では「グループAとBに両方に所属しているホスト」を対象にし…
■ はじめに Ansible の Playbook を書いて試すときは、普段 VSCode を使っているため、あまり vim は使っていません。ですが、vim しか使えない環境に置かれたときのために vim で Playbook (YAML) を書くときに便利そうな設定を調べました。 インデント関連…