ベンダー開発モジュールの使い方
by
yascaim
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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にし易い手順書を常に心がける。