Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ベンダー開発モジュールの使い方

7cbb95b6efd93edc5597e5270fe9001f?s=47 yascaim
November 20, 2019

 ベンダー開発モジュールの使い方

20191120 Ansiblejp ネットワーク部 LTで使用

7cbb95b6efd93edc5597e5270fe9001f?s=128

yascaim

November 20, 2019
Tweet

More Decks by yascaim

Other Decks in Technology

Transcript

  1. 1 ベンダー開発の
 モジュールの使い方
 (オマケ)
 手順書をPlaybook化
 するときに気にしてる事 @yascaim1

  2. 2 仕事:DCNWの設計、構築?
 好きなもの:
 - Ansible 
 - ボードゲーム
 - 数学


    - ケーキ
 Ansible歴:1年6か月
 自己紹介

  3. 3 A10製品とAnsible

  4. 4 A10networksとは
 製品概要: - ロードバランサー、セキュリティプラットフォームなど - CLI,GUI,APIが揃ってて ”Cisco” 触った人なら馴染み易い -

    まだ商用で使えてないけど面白い機能が結構ある
  5. 5 https://docs.ansible.com/ansible/latest/modules/list_of_network_modules.html モジュールはどうなの?


  6. 6 あるところにはある
 大体1,600くらい(やべー
 https://github.com/a10networks/a10-ansible

  7. 7 用法用量を守らない使い方

  8. 8 Ansibleもくもく会 また企画したろ。 モジュール増えたなぁ とりあえずgit clone したろ。 検証環境で ワークショップの復習だ!

  9. 9 Playbook全部動かない...ッ!

  10. 10 今のところ見つけた差分: - NW機器の接続プロトコルの書き方が違う - パラメータの名前が変わってて”undefined” - パラメータの型が変わってる - パラメータで指定できる値が変わってる

    tasks: - name: Enable ethernet interfaces a10_interface_ethernet: a10_host: "{{ a10_host }}" a10_port: "{{ a10_port }}" a10_username: "{{ a10_username }}" a10_password: "{{ a10_password }}" ifnum: "{{ item.ifnum }}" action: enable state: present partition: test with_items: - { ifnum: 1 } - { ifnum: 2 } tasks: - name: Enable ethernet interfaces a10_interface_ethernet: a10_host: "{{ a10_host }}" a10_port: "{{ a10_port }}" a10_username: "{{ a10_username }}" a10_password: "{{ a10_password }}" a10_protocol: “https” ifnum: "{{ item.ifnum }}" action: enable state: present a10_partition: name: test shared: 0 with_items: - { ifnum: 1 } - { ifnum: 2 } プロトコル指定が requiredなパラメータで増えた パラメータの名前が変わってる 気付いたら辞書型になってる shared指定の仕方が変わってる
  11. 11 メリデメの整理

  12. 12 メリット: 
 - やりたいこと:モジュール が 1:1で大体ある
 - YAMLで書くため、機器初心者でも可読性が高い
 - 強制的にモジュールのコードを読むことになる
 デメリット:


    - Ansible docのリリースノートに載ってない
 - OSのリリースノートにも載ってない
 - モジュールを使ったサンプルコードが落ちてない
 用法用量は模索中
  13. 13 まとめ

  14. 14 - 当然ですが商用環境でいきなりアップデートはやらない - github見て何かが違う!?って思ったらサポートに聞く - 極力、変数はPlaybookの外で管理する - library を別の

    directoryで管理する(ansible.cfgで切替える)
  15. ご清聴ありがとうございました!
 15

  16. 16 おまけ(気を付けてること編)

  17. 17 動作確認
 事前ログ取得
 事後ログ取得
 設定変更
 ・どこから何を確認するかを明記 ・「異常がないこと」という記載を一切排除 ・作業前との比較結果  ↑全て比較、一致、含む、含まない で記述 ・設定変更/追加する順序を考える

    - script投入の順番 - 作業機器の順番 ・作業を切り戻す際の順序を考える ・検証環境で絶対試す 最初からAnsible化することを想定し、 Playbookにし易い手順書を常に心がける。