More Related Content
Similar to Ansible 2.5 におけるネットワークモジュールのトピック(rc1版) (11)
Ansible 2.5 におけるネットワークモジュールのトピック(rc1版)
- 3. 自己紹介
3
名前 横地 晃 @akira6592
所属 株式会社エーピーコミュニケーションズ
担当 ネットワークの設計構築
最近の出来事 会議室の名前が Kingyo になった
- 4. 本日の内容
4
Ansible とネットワーク対応
Ansible 2.5 におけるネットワークモジュールのトピック
• 1. ドキュメントの整備
• 2. ベストプラクティス
• 3. 対応プラットフォームの追加
• 4. コネクションタイプの追加
• 5. ログの改善
• 6. 特権モード移行方法の追加
• 7. Persistent Connectionの仕様変更
- 8. Ansible 2.5 の概要
2018/03/06 時点のバージョン
• Ansible 2.5.0 rc1 (stable-2.5 ブランチ)
• 正式リリースは3月中予定
変更点の例
• 280個以上のモジュール追加
• loop、debugger キーワードの導入
• ネットワークモジュール関連も色々(後述)
インストール方法
• pip install ansible==2.5.0rc1
8
・CHANGELOG
https://github.com/ansible/ansible/blob/stable-2.5/changelogs/CHANGELOG-v2.5.rst
本日のメイン
- 11. ドキュメントの内容
Getting Started (ここから読むのがよさそう)
ベストプラクティス (後述)
トラブルシューティング
コマンド出力結果の条件判断方法
各プラットフォームで利用するオプション
11
http://docs.ansible.com/ansible/devel/network/index.html
探しやすく、詳しくなった
- 13. ベストプラクティスの内容
フォルダ構成
group_vars の利用
• コネクション、OSの種類、認証情報の指定
特権モード移行の指定方法
• become を利用(ios/eos)
13
ネットワークモジュール用のベストプラクティスが公開
.
├── facts-demo.yml
├── group_vars
│ ├── eos.yml
│ └── ios.yml
└── inventory
などなど・・・詳細は
http://docs.ansible.com/ansible/devel/network/user_guide/network_best_practices_2.5.html
- 14. ansible_connection: network_cli
ansible_network_os: ios
ansible_user: myiosuser
ansible_ssh_pass: !vault |
$ANSIBLE_VAULT;1.1;AES256
3462343131333634313 (略)
ansible_become: yes
ansible_become_method: enable
group_vars 配下のファイルのサンプル
14
引用元
http://docs.ansible.com/ansible/devel/network/user_guide/network_best_practices_2.5.html
コネクションタイプ
(4.で後述)
特権モード関連
(6.で後述)
例: group_vars/ios.yml
- 16. 新たに7つのプラットフォームに対応
1. Brocade Ironware
2. Cisco NSO
3. Fortinet Fortimanager (Fortigateは2.3から対応)
4. Infoblox NIOS
5. Lenovo ENOS
6. Mellanox ONYX
7. Nokia NetAct
16
引用元
https://www.ansible.com/blog/coming-soon-networking-features-in-ansible-2.5
- 21. (参考)ログサンプル
21
TASK [command] ***************************************************************
fatal: [192.168.1.13]: FAILED! => {"changed": false, "msg": "unable to open shell. Please see:
https://docs.ansible.com/ansible/network_debug_troubleshooting.html#unable-to-open-shell"}
TASK [command] ***************************************************************
fatal: [192.168.1.13]: FAILED! => {"msg": "Authentication failed."}
2.4
2.5
・ 認証エラー(ios_command)
TASK [command] ***************************************************************
fatal: [192.168.1.13]: FAILED! => {"changed": false, "msg": "unable to open shell. Please see:
https://docs.ansible.com/ansible/network_debug_troubleshooting.html#unable-to-open-shell"}
TASK [command] ***************************************************************
fatal: [192.168.1.13]: FAILED! => {"msg": "timed out"}
2.4
2.5
・ 接続タイムアウト(ios_command)
- 23. 2.4 では provider を利用
23
- hosts: ios
connection: local
tasks:
- name: command
ios_command:
commands:
- show run
provider:
auth_pass: adminpassxx
authorize: true
local コネクションと provider オプションを利用
(ネットワークモジュール固有の書き方)
・Playbook
- 24. 2.5 では become も利用可(ios/eos)
24
- hosts: ios
tasks:
- name: command
ios_command:
commands:
- show run
ansible_connection: network_cli
ansible_network_os: ios
ansible_user: user99
ansible_ssh_pass: userpass99
ansible_become: yes
ansible_become_method: enable
ansible_become_pass: enablepass99
network_cli コネクションと become オプションを利用
・Playbook ・group_vars/ios.yml
- 29. 参考資料
29
Ansible 2.5 全体
CHANGELOG
◦ https://github.com/ansible/ansible/blob/stable-2.5/changelogs/CHANGELOG-v2.5.rst
Ansible 2.5 への移行ガイド (devel)
◦ http://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.5.html
Ansible 2.5 ネットワーク関連
Ansible for Network Automation (devel)
◦ http://docs.ansible.com/ansible/devel/network/index.html
COMING SOON: NETWORKING FEATURES IN ANSIBLE 2.5
◦ https://www.ansible.com/blog/coming-soon-networking-features-in-ansible-2.5
おまけ:Ansible でネットワーク機器を操作したい時に参考になりそうな日本語情報
http://tekunabe.hatenablog.jp/entry/2017/04/06/231243
※ 2.5正式リリース後、公式ドキュメントURL中の “devel” は “latest” に変更される見込みです(差し替え)