Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

2 仕事:DCNWの設計、構築?
 好きなもの:
 - Ansible 
 - ボードゲーム
 - 数学
 - ケーキ
 Ansible歴:1年6か月
 自己紹介


Slide 3

Slide 3 text

3 A10製品とAnsible

Slide 4

Slide 4 text

4 A10networksとは
 製品概要: - ロードバランサー、セキュリティプラットフォームなど - CLI,GUI,APIが揃ってて ”Cisco” 触った人なら馴染み易い - まだ商用で使えてないけど面白い機能が結構ある

Slide 5

Slide 5 text

5 https://docs.ansible.com/ansible/latest/modules/list_of_network_modules.html モジュールはどうなの?


Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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指定の仕方が変わってる

Slide 11

Slide 11 text

11 メリデメの整理

Slide 12

Slide 12 text

12 メリット: 
 - やりたいこと:モジュール が 1:1で大体ある
 - YAMLで書くため、機器初心者でも可読性が高い
 - 強制的にモジュールのコードを読むことになる
 デメリット:
 - Ansible docのリリースノートに載ってない
 - OSのリリースノートにも載ってない
 - モジュールを使ったサンプルコードが落ちてない
 用法用量は模索中

Slide 13

Slide 13 text

13 まとめ

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

ご清聴ありがとうございました!
 15

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

17 動作確認
 事前ログ取得
 事後ログ取得
 設定変更
 ・どこから何を確認するかを明記 ・「異常がないこと」という記載を一切排除 ・作業前との比較結果  ↑全て比較、一致、含む、含まない で記述 ・設定変更/追加する順序を考える - script投入の順番 - 作業機器の順番 ・作業を切り戻す際の順序を考える ・検証環境で絶対試す 最初からAnsible化することを想定し、 Playbookにし易い手順書を常に心がける。